达梦数据库单机部署

发布时间:2026/7/22 3:48:48
达梦数据库单机部署 文章目录前言一、操作系统环境准备创建专用用户修改主机名、关闭防火墙创建目录并授权二、操作系统参数调优调整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.swappiness10告诉内核尽量少用swap分区。数据库追求的是速度用swap会严重拖慢性能。kernel.core_pattern当数据库崩溃时会在/dmcore目录生成core文件方便事后分析原因调整limits.conf资源限制操作系统默认会对进程能打开的文件数、能创建的进程数做限制。数据库需要同时处理大量连接和文件必须解除这些限制关闭SELinuxSELinux是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_NUM15236\PAGE_SIZE32\EXTENT_SIZE32\LOG_SIZE2048\CHARSET0\CASE_SENSITIVEY\SYSDBA_PWDDameng1234\SYSAUDITOR_PWDDameng1234参数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# 添加到系统profileechoexport MALLOC_ARENA_MAX1/etc/profile# 添加到dmdba用户profileechoexport MALLOC_ARENA_MAX1/home/dmdba/.bash_profile# 修改服务启动脚本sed-is/ARENA_MAX4/ARENA_MAX1/g/dmdbms/bin/DmServiceDMSERVER可以理解为每个线程都想要自己的小仓库结果仓库太多反而浪费。设置MALLOC_ARENA_MAX1就是告诉大家只有一个仓库都来这里取。开启归档日志归档日志是数据库恢复的生命线。没有归档一旦数据损坏就无法恢复到故障前的状态。# 使用disql连接数据库cd/dmdbms/bin ./disql SYSDBA/Dameng1234 SQLALTER DATABASE MOUNT;SQLALTER DATABASE ARCHIVELOG;SQLALTER DATABASE ADD ARCHIVELOGDEST/dmarch, TYPELOCAL, FILE_SIZE2048, SPACE_LIMIT51200;SQLALTER DATABASE OPEN;MOUNT将数据库置于装载状态不允许读写ARCHIVELOG开启归档模式ADD ARCHIVELOG添加归档配置SPACE_LIMIT51200表示归档空间上限约50GB开启异步SQL日志sqllogSQL日志记录了所有执行的SQL语句是性能分析和问题排查的利器。SQLSP_SET_PARA_VALUE(1,SVR_LOG,1);然后编辑/dmdata/DAMENG/sqllog.iniBUF_TOTAL_SIZE20480# 总缓冲区大小BUF_SIZE2048# 单块缓冲区大小ASYNC_FLUSH1# 异步写入不阻塞业务SQL_TRACE_MASK2:3:25:28# 只记录关键操作MIN_EXEC_TIME1000# 只记录超过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、归档、备份收尾验证 重启后检查服务、参数生效上述为部署检查清单。