达梦数据库单机部署
2026/7/24 14:32: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.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、归档、备份
收尾验证 重启后检查服务、参数生效

上述为部署检查清单。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询