前言
学习动力,源于兴趣和需求,最近接到内部需求,说要本地部署一个DM8给开发同学进行做开发适配,然后就开始了进行部署之旅。
下载地址如下:

选择对应版本,进行下载安装包。
一、安装前准备
1、新建用户
安装前必须创建 dmdba 用户,禁止使用 root 用户安装数据库。
groupadd dinstall -g 2001
useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
passwd dmdba
2、配置系统参数
在 Linux、Solaris、AIX 和 HP-UNIX 等系统中,操作系统默认会对程序使用资源进行限制。如果不取消对应的限制,则数据库的性能将会受到影响。
---设置永久生效:
vi /etc/security/limits.conf
dmdba soft nice 0
dmdba hard nice 0
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
----登录到dmdba验证:

3、目录规划、创建及授权
mkdir -p /data/dm8/Server
mkdir -p /data/dm8/data
mkdir -p /data/dm8/arch
chown -R dmdba:dinstall /data/dm8
chmod -R 755 /data/dm8
二、开始进行数据库安装
1、挂载镜像
切换到 root 用户,将 DM 数据库的 iso 安装包保存在任意位置
cd /data/soft/dm8
mount -o loop dm8_20251016_x86_CentOS7_64.iso /mnt
2、命令行安装
切换至 dmdba 用户下,在 /mnt 目录下使用命令行安装数据库程序,依次执行以下命令安装 DM 数据库
su - dmdba
cd /mnt

3、执行命令安装
./DMInstall.bin -i
按需求选择安装语言,没有 key 文件选择 "n",时区按需求选择一般选择 "21",安装类型选择"1",安装目录按实际情况配置。
。。。。。
安装过程比较简单,不做介绍,根据提示选择即可。
以普通用户执行安装,需要使用root用户单独执行:
/data/dm8/Server/script/root/root _installer.sh
4、配置环境变量
切换到 root 用户进入 dmdba 用户的根目录下,配置对应的环境变量。DM_HOME 变量和动态链接库文件的加载路径在程序安装成功后会自动导入.
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/data/dm8/Server/bin"
export DM_HOME="/data/dm8/Server"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
5、配置实例
DM 数据库在 Linux 环境支持命令行配置实例以及图形化配置实例
使用 dmdba 用户配置实例,进入到 DM 数据库安装目录下的 bin 目录中。


需要注意的是 页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 、空格填充模式 (BLANK_PAD_MODE) 、页检查模式(PAGE CHECK) 等部分参数,一旦确定无法修改,在初始化实例时确认需求后谨慎设置。
部分参数解释如下:
page_size:数据文件使用的页大小。取值范围 4、8、16、32,单位:KB。缺省值为 8。可选参数。选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降。数据库创建成功后无法再修改页大小,可通过系统函数 SF_GET_PAGE_SIZE()获取系统的页大小。
extent_size:数据文件使用的簇大小,即每次分配新的段空间时连续的页数。取值范围 16、32、64。单位:页数。缺省值为 16。可选参数。数据库创建成功后无法再修改簇大小,可通过系统函数 SF_GET_EXTENT_SIZE()获取系统的簇大小。
case_sensitive: 标识符大小写敏感。当大小写敏感时,小写的标识符应用""括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,系统比较函数会将大写字母全部转为小写字母再进行比较。取值:Y、y、1 表示敏感;N、n、0 表示不敏感。缺省值为 Y。可选参数。此参数在数据库创建成功后无法修改,可通过系统函数 SF_GET_CASE_SENSITIVE_FLAG()或 CASE_SENSITIVE()查询设置的参数置。
charset:字符集选项。取值范围 0、1、2。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。缺省值为 0。可选参数。此参数在数据库创建成功后无法修改,可通过系统函数 SF_GET_UNICODE_FLAG()或 UNICODE()查询设置的参数置。
BLANK_PAD_MODE:设置字符串比较时,结尾空格填充模式是否兼容 ORACLE。1:兼容;0:不兼容。缺省值为 0。可选参数。此参数在数据库创建成功后无法修改,可通过查询 V$PARAMETER 中的 BLANK_PAD_MODE 参数名查看此参数的设置值。
PAGE_CHECK:PAGE_CHECK 为页检查模式。取值范围 0、1、2、3。0:禁用页校验;1:开启页校验并使用 CRC 校验;2:开启页校验并使用指定的 HASH 算法进行校验;3:开启页校验并使用快速 CRC 校验。缺省值为 3。可选参数。在数据库创建成功后无法修改。
在实际使用中,初始化时建议提前设置好 COMPATIBLE_MODE 的参数值,便于更好的兼容其他数据库。
./dminit path=/data/dm8/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=N CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBSERVER PORT_NUM=5237 SYSDBA_PWD=********* SYSAUDITOR_PWD=**********

6、命令行注册服务
DM 提供了将 DM 服务脚本注册成操作系统服务的脚本,同时也提供了卸载操作系统服务的脚本。注册和卸载脚本文件所在目录为安装目录的"/script/root"子目录下。
注册服务脚本为 dm_service_installer.sh,用户可以使用注册服务脚本将服务脚本注册成为操作系统服务。注册服务需使用 root 用户进行注册,使用 root 用户进入数据库安装目录的 /script/root 下,如下所示:

[root@dbtest root]# ./dm_service_installer.sh -t dmserver -dm_ini /data/dm8/data/DMTEST/dm.ini -p DMTEST
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMTEST.service to /usr/lib/systemd/system/DmServiceDMTEST.service.
创建服务(DmServiceDMTEST)完成
###启动数据库
[root@dbtest root]# systemctl start DmServiceDMTEST
[root@dbtest root]# systemctl status DmServiceDMTEST
● DmServiceDMTEST.service - DM Instance Service(DmServiceDMTEST).
Loaded: loaded (/usr/lib/systemd/system/DmServiceDMTEST.service; enabled; vendor preset: disabled)
Active: active (running) since 一 2025-12-15 17:28:37 CST; 9s ago
Process: 1890 ExecStart=/data/dm8/Server/bin/DmServiceDMTEST start (code=exited, status=0/SUCCESS)
Main PID: 1913 (dmserver)
CGroup: /system.slice/DmServiceDMTEST.service
└─1913 /data/dm8/Server/bin/dmserver path=/data/dm8/data/DMTEST/dm.ini -noconsole
7、验证和连接数据库

8、兼容性参数设置
--开启MySQL语法兼容模式(核心参数)
SP_SET_PARA_VALUE(2, 'COMPATIBLE_MODE', 4);
-- 参数值说明:
0:不兼容,
1:兼容 SQL92 标准
2:兼容 ORACLE
3:兼容 MS SQL SERVER
4:兼容 MYSQL
5:兼容 DM6
6:兼容 TERADATA。
-- 设置JSON语法解析兼容MySQL模式
SP_SET_PARA_VALUE(2, 'JSON_MODE', 2);
-- 兼容MySQL模式下大字段比较处理
SP_SET_PARA_VALUE(1, 'ENABLE_BLOB_CMP_FLAG', 2);
-- 开启存储过程同义词
sp_set_para_value(1,'ENABLE_PL_SYNONYM',1);
--兼容MySQL的GROUP BY宽松模式
SP_SET_PARA_VALUE(1, 'GROUP_OPT_FLAG', 0);
-- 0:宽松模式(匹配MySQL)
-- 1:严格模式(达梦默认,遵循SQL标准)
执行设置之后需要重启数据库生效,重启之后验证:

好了,本次DM8配置安装过程就结束了,还是比较简单的,后续再做其他分享。