本章节主要介绍在生产环境中(Linux 系统)规范化部署 DM 数据库单机环境。
服务器硬件需求
按实际业务需求,选择合适的服务器,参考如下:
| 硬件 | 要求 |
|---|---|
| 物理内存 | >= 16 GB |
| 交换区 | Swap 空间>=物理内存 |
| /tmp大小 | > 1000 MB |
| 网络 | 物理机器需要 2 个网卡,2 个网卡做 band |
| 磁盘 | 根据实际应用系统需要挂载合适大小磁盘 |
| 时间服务器 | 按机房要求配置连接时间服务器 |
操作系统要求
操作系统版本安装
DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。
目录与存储规划
| 用途 | 目录路径 | 备注 |
|---|---|---|
| 数据库软件安装目录 | /dm8 | 可用空间> 50 GB |
| 实例安装目录 | /dmdata | 单独挂载性能最好的磁盘建议 SSD |
| 归档日志存放目录 | /dmarch | 单独挂载磁盘 |
| 备份文件存放目录 | /dmbak | 单独挂载磁盘 |
用户与组
DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组 (dinstall)。
执行以下命令,新建用户组 dinstall。
groupadd dinstall |
执行以下命令,新建用户 dmdba。
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba |
执行以下命令,修改 dmdba 用户密码。
passwd dmdba |
输入密码并确认。
用户资源限制
执行以下命令,修改 dmdba 用户资源限制。
vim /etc/security/limits.conf |
文件末尾添加如下内容:
dmdba soft core unlimited |
用户环境变量
执行以下命令,修改 dmdba 用户环境变量。
vi /home/dmdba/.bash_profile |
文件末尾添加如下内容:
export DM_HOME=/dm8 |
防火墙设置
生产环境应该对特定客户端开放数据库监听端口,并修改 DM 数据库默认的 5236 监听端口。
安装数据库
软件申请
可访问达梦云适配中心下载试用,下载 DM8 数据库试用版,如需其他版本,请联系达梦销售人员。
查询操作系统(内核)版本,CPU 架构命令:uname -a。

如上图所示,需申请 rh7,x86 版本数据库软件。
以 iso 文件安装包为例,安装包命名规则如下:dm8_20200930_x86_rh6_64_ent_8.1.1.134.iso
dm8:数据库大版本为 dm8 |
安装数据库软件
将安装包上传到服务器后使用 root 用户挂载 iso 安装包文件到 /mnt 目录下。
mount -oloop dm8_20200930_x86_rh6_64_ent_8.1.1.134.iso /mnt |

执行以下命令,切换到 dmdba 用户。
su - dmdba |
执行以下命令,切换到 /mnt 目录下。
cd /mnt |
执行以下命令,查看文件。
ll |

执行 DMInstall.bin 文件开始安装,选择【-i】参数以命令行方式安装。
./DMInstall.bin -i |
- 选择安装程序的语言 c/C 为中文,e/E 为英文。
- 提示是否安装 key 文件,输入 N 跳过。
- 选择时区,21 即东 8 区。
- 选择安装类型,默认典型安装(包含所有内容)。

- 选择软件安装目录,为之前规划的目录
/dm8。 - 确认安装目录。
- 确认安装概要。

- 开始安装。

- 安装完成后,按照系统提示使用 root 用户执行脚本。
/dm8/script/root/root_installer.sh |
提示 DmAPService 服务启动成功,则安装完成。
使用 dminit 工具初始化实例
执行以下命令,切换到 /dm8/bin 目录。
cd /dm8/bin |

注意初始化参数中除了 path 参数必须指定,其它参数都有默认值,如果需求与默认值不同,初始化的时候请指定需要的值。因为部分参数初始化后是无法修改的例如:page_size(页大小),charset(字符集),case_sensitive(大小写敏感)等。更多参数
./dminit help查看,是否无法修改的参数可以查询 v$dm_ini 视图,para_type=’READ ONLY’ 表示无法修改。
启动实例
以系统服务方式启动实例,DM 提供脚本将数据库实例注册为操作系统服务。
root 用户下切换到 /dm8/script/root/
cd /dm8/script/root/ |
执行以下命令,执行脚本注册服务。
./dm_service_installer.sh -t dmserver -p dmserver -dm_ini /dmdata/DAMENG/dm.ini |

服务名为 DmService+-p 参数后的内容,即 DmServicedmserver。
提示
-t指服务类型是 dmserver;-p为服务名的后缀;-dm_ini为实例的 dm.ini 文件的绝对路径。
执行以下命令,以服务方式启动实例。
systemctl start DmServicedmserver |
关闭实例
对于以服务方式启动的实例,则以服务方式关闭实例。
systemctl stop DmServicedmserver |
建议每个实例都建议注册为操作系统服务,这样不仅方便启动和关闭实例,而且注册为服务后,在服务器重启时,实例将随系统启动而自动启动。
连接数据库
执行以下命令,切换到 /dm8/bin 目录。
cd /dm8/bin |
执行以下命令,使用 disql 工具连接数据库。
./disql SYSDBA/SYSDBA@localhost:5236 |
登录成功,如下图所示:

提示默认创建的实例,管理员用户 SYSDBA 的密码为 SYSDBA ,实例端口为 5236,字符集为 GB18030,大小写敏感。
参数优化
安装完成需要调整 dm.ini 文件参数。
| 参数名称 | 参数含义 | 参数默认值 | 参数建议 |
|---|---|---|---|
| BUFFER | 系统缓冲区大小,以 MB 为单位 | 100 | 系统物理内存的 60%~80% |
| BUFFER_POOLS | BUFFER 系统分区数 | 19 | 物理内存 64 GB 以下 53 GB 以上 |
| HJ_BUF_GLOBAL_SIZE | HASH 连接操作符的数据总缓存大小,以 MB 为单位 | 500 | 5000 |
| HJ_BUF_SIZE | 单个 HASH 连接操作符的数据总缓存大小,以 MB 为单位 | 50 | 500 |
| DICT_BUF_SIZE | 字典缓冲区大小,以 MB 为单位 | 5 | 100 |
| TASK_THREADS | 任务线程个数 | 4 | cpu 核数 |
| IO_THR_GROUPS | 非 Windows 下有效,表示 IO 线程组个数 | 2 | cpu 核数/2 |
| MAX_SESSIONS | 系统允许同时连接的最大数 | 100 | 1000 |
| MAX_SESSION_STATEMENT | 单个会话上允许同时打开的语句句柄最大数 | 100 | 20000 |
| CACHE_POOL_SIZE | SQL 缓冲池大小,以 MB 为单位 | 20 | 200 |
参考脚本如下:
|
注意修改完参数后,需要重启数据库生效。
归档配置
生产环境必须开启归档日志,且必须限制归档日志保留量,限制方法:
- 设置归档空间大小限制即指定
SPACE_LIMIT参数(单位是 MB)。 - 定期删除归档日志(设置定时作业)。
例如开启归档并限制归档空间为 100 GB,如下所示:
alter database mount; |
定制备份策略
上线前必须规划好备份策略,可以使用 DM 作业系统,定时备份。
根据应用需求,定制备份策略如下所示:
| 备份类型 | 备份周期 | 备份时间 |
|---|---|---|
| 全量备份 | 每周 | 每周五23点 |
| 增量备份 | 每天 | 除周五外每天23点 |
| 删除备份 | 每天 | 每天23点30 |
执行以下命令,创建作业系统表。
SP_INIT_JOB_SYS(1); |
全量备份(每周五23点全备)
call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,''); |
增量备份(每周除周五外每天23点增量备份)
call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,''); |
备份定期删除(每天23:30删除14天前备份)
call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,''); |
注意备份的基本要求是:保留最少一次全备+全备(或者全备后的增备)时间点到当前的全部归档日志。删除备份前尽量将备份文件拷贝到单独的备份服务器上。




