文章目录
- 前言
- 一、操作系统环境准备
- 创建专用用户
- 修改主机名、关闭防火墙
- 创建目录并授权
- 二、操作系统参数调优
- 调整sysctl.conf(内核参数)
- 调整limits.conf(资源限制)
- 关闭SELinux
- 禁用透明大页
- 调整磁盘调度算法
- 三、安装数据库软件
- 挂载安装包
- 执行安装
- 四、初始化数据库实例
- 使用dminit工具初始化
- 参数
- 注册数据库服务
- 启动数据库
- 五、部署后配置
- 调整MALLOC_ARENA_MAX
- 开启归档日志
- 开启异步SQL日志(sqllog)
- 配置定时备份
- 六、收尾工作
- 总结
前言
在敲命令之前,我们需要先做好目录规划。需要规划以下目录:
/dmdbms 数据库软件安装目录 用来存放达梦二进制程序、工具包
/dmdata 数据文件目录 用来存放数据库实例的实际数据
/dmarch 归档日志目录 用于数据库恢复
/dmbak 备份文件目录 用来定时备份文件
/dmcore CORE文件目录 用于存放系统崩溃时的诊断信息
提示:以下是本篇文章正文内容,下面案例可供参考
一、操作系统环境准备
创建专用用户
禁止使用root用户安装和运行数据库。
创建专用用户,可以只负责数据库相关的事情,即使出问题也不会影响整个的安全
修改主机名、关闭防火墙
修改主机名是为了单机环境方便识别管理
关闭防火墙可以减少网络层面的复杂性
创建目录并授权
chown将目录所有者改为dmdba用户,chmod 777赋予读写执行权限。
二、操作系统参数调优
调整sysctl.conf(内核参数)
vm.swappiness=10:告诉内核尽量少用swap分区。数据库追求的是速度,用swap会严重拖慢性能。
kernel.core_pattern:当数据库崩溃时,会在/dmcore目录生成core文件,方便事后分析原因
调整limits.conf(资源限制)
操作系统默认会对进程能打开的文件数、能创建的进程数做限制。
数据库需要同时处理大量连接和文件,必须解除这些限制
关闭SELinux
SELinux是Linux的安全模块,但它的严格限制经常导致数据库无法正常读写文件
禁用透明大页
透明大页是Linux内核的一个特性,它会自动将内存页合并成大页。
对数据库来说,这种"自动合并"会导致性能波动和内存管理问题。
调整磁盘调度算法
机械硬盘推荐mq-deadline,固态硬盘推荐none
三、安装数据库软件
挂载安装包
# 切换为dmdba用户(重要!)su- dmdba# 挂载ISO文件mount-oloop dm8_xxx.iso /mntcd/mnt执行安装
./DMInstall.bin-i-i参数表示命令行安装模式(无图形界面)。安装过程中需要选择:
语言:选择中文
Key文件:开发版可以直接跳过
时区:选择 Asia/China
安装类型:选择 典型安装(Typical)
安装目录:/dmdbms
安装完成后,必须切换回root用户执行一个脚本:
su- root /dmdbms/script/root/root_installer.sh这个脚本会注册dmap服务(达梦的辅助进程,用于备份等操作)
四、初始化数据库实例
使用dminit工具初始化
su- dmdbacd/dmdbms/bin ./dminitPATH=/dmdata\PORT_NUM=15236\PAGE_SIZE=32\EXTENT_SIZE=32\LOG_SIZE=2048\CHARSET=0\CASE_SENSITIVE=Y\SYSDBA_PWD=Dameng@1234\SYSAUDITOR_PWD=Dameng@1234参数
PAGE_SIZE、CASE_SENSITIVE、CHARSET这三个参数一旦初始化完成就无法修改!如果选错,只能删除实例重新初始化。所以在执行之前一定要和业务方确认清楚。
注册数据库服务
为了让数据库能够开机自启,需要注册为系统服务:
su- root /dmdbms/script/root/dm_service_installer.sh-tdmserver\-dm_ini/dmdata/DAMENG/dm.ini-pDMSERVER这个命令会在/etc/systemd/system/下生成DmServiceDMSERVER.service文件
启动数据库
su- dmdba /dmdbms/bin/DmServiceDMSERVER start五、部署后配置
实例启动只是"能用",要"好用"还需要一系列配置。
调整MALLOC_ARENA_MAX
# 添加到系统profileecho"export MALLOC_ARENA_MAX=1">>/etc/profile# 添加到dmdba用户profileecho"export MALLOC_ARENA_MAX=1">>/home/dmdba/.bash_profile# 修改服务启动脚本sed-i"s/ARENA_MAX=4/ARENA_MAX=1/g"/dmdbms/bin/DmServiceDMSERVER可以理解为每个线程都想要自己的"小仓库",结果仓库太多反而浪费。设置MALLOC_ARENA_MAX=1就是告诉大家"只有一个仓库,都来这里取"。
开启归档日志
归档日志是数据库恢复的生命线。没有归档,一旦数据损坏就无法恢复到故障前的状态。
# 使用disql连接数据库cd/dmdbms/bin ./disql SYSDBA/Dameng@1234 SQL>ALTER DATABASE MOUNT;SQL>ALTER DATABASE ARCHIVELOG;SQL>ALTER DATABASE ADD ARCHIVELOG'DEST=/dmarch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=51200';SQL>ALTER DATABASE OPEN;MOUNT:将数据库置于装载状态(不允许读写)
ARCHIVELOG:开启归档模式
ADD ARCHIVELOG:添加归档配置,SPACE_LIMIT=51200表示归档空间上限约50GB
开启异步SQL日志(sqllog)
SQL日志记录了所有执行的SQL语句,是性能分析和问题排查的利器。
SQL>SP_SET_PARA_VALUE(1,'SVR_LOG',1);然后编辑/dmdata/DAMENG/sqllog.ini:
BUF_TOTAL_SIZE=20480# 总缓冲区大小BUF_SIZE=2048# 单块缓冲区大小ASYNC_FLUSH=1# 异步写入,不阻塞业务SQL_TRACE_MASK=2:3:25:28# 只记录关键操作MIN_EXEC_TIME=1000# 只记录超过1秒的慢SQL配置完成后刷新:
SQL> SP_REFRESH_SVR_LOG_CONFIG();
配置定时备份
这一步是重中之重
达梦提供了内置的定时作业系统。以下配置每天23:00全量备份,自动删除30天前的备份:
-- 初始化作业系统CALLSP_INIT_JOB_SYS(1);-- 创建备份作业CALLSP_CREATE_JOB('bakall_delall',1,0,'',0,0,'',0,'每天23:00全量备份、删除30天前的全量备份');CALLSP_JOB_CONFIG_START('bakall_delall');-- 备份步骤CALLSP_ADD_JOB_STEP('bakall_delall','bakall',6,'01020000/dmbak',3,1,0,0,null,0);-- 删除步骤(30天前的备份)CALLSP_ADD_JOB_STEP('bakall_delall','delall',0,'SF_BAKSET_BACKUP_DIR_ADD(''disk'',''/dmbak''); CALL SP_DB_BAKSET_REMOVE_BATCH(''disk'',SYSDATE-30);',1,1,0,0,null,0);-- 定时调度:每天23:00CALLSP_ADD_JOB_SCHEDULE('bakall_delall','bakall_delall_time01',1,1,1,0,0,'23:00:00',null,'2019-01-01 01:01:01',null,'');CALLSP_JOB_CONFIG_COMMIT('bakall_delall');对于大多数业务场景,每天一次全量备份+归档日志的组合,可以在30天内恢复到任意时间点。增量备份虽然节省空间,但恢复时需要"全量+所有增量"依次应用,恢复时间更长
六、收尾工作
所有配置完成后,最后一步是重启服务器验证一切正常
# 停止服务su- dmdba /dmdbms/bin/DmAPService stop /dmdbms/bin/DmServiceDMSERVER stop# 重启服务器su- rootreboot重启后需要检查:
数据库服务是否自动启动:ps -ef | grep dmdba
透明大页是否禁用:cat /sys/kernel/mm/transparent_hugepage/enabled(应显示[never])
磁盘调度是否正确:cat /sys/block/vdb/queue/scheduler
备份文件是否生成:检查/dmbak目录
总结
阶段 关键检查项
环境准备 创建dmdba用户、关闭防火墙
系统调优 禁用透明大页、调整limits
软件安装 使用dmdba用户、执行root脚本
实例初始化 PAGE_SIZE/CHARSET/CASE_SENSITIVE确认
部署后配置 MALLOC_ARENA_MAX、归档、备份
收尾验证 重启后检查服务、参数生效
上述为部署检查清单。