达梦数据库管理系统DM9是武汉达梦数据库股份有限公司于2026年4月正式发布的第9代迭代产品,在DM8基础上完成了450余项新特性升级。DM9采用“集中式+分布式+TP+AP+AI”一体化架构,一套代码支持集中式与分布式两种部署模式,并内置向量引擎与智能体技术。
本文基于Red Hat Enterprise Linux 7.9 x86_64环境,使用dm9_20260514_x86_centos7_64.iso安装介质,通过命令行方式完成DM9单机版的完整安装部署。文章涵盖从环境准备、软件安装、实例初始化、服务注册到连接验证的全流程,适合初次上手DM9的运维人员与开发人员参考。
规范化部署是生产环境稳定运行的基础,建议提前做好目录与资源规划。
| 项目 | 规划内容 | 说明 |
|---|---|---|
| 操作系统 | Red Hat Enterprise Linux 7.9 / CentOS 7 / Kylin V10 | x86_64架构,Glibc 2.12及以上版本 |
| 主机IP | 192.168.126.156 | 根据实际环境调整 |
| 安装用户 | dmdba | 专属数据库管理用户 |
| 用户组 | dinstall | 专属数据库管理组 |
| 软件安装目录 | /opt/dm/dmdbms | 存放数据库软件 |
| 数据目录 | /dmdata/data | 存放实例数据文件 |
| 归档目录 | /dmdata/arch | 存放归档日志 |
| 备份目录 | /dmdata/bak | 存放备份文件 |
| 监听端口 | 5236 | 达梦默认端口,取值范围1024~65534 |
达梦数据库安装包可通过官方下载页面获取:
dm9_20260514_x86_centos7_64.isoDM9提供多种产品系列,用户可根据实际需求选择:
测试环境中建议关闭防火墙和SELinux,避免安装过程中的网络和权限问题。
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭SELinux(临时生效)
setenforce 0
# 永久关闭(修改配置文件)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
达梦数据库严禁使用root用户安装和运行,必须创建专属用户。
# 创建用户组
groupadd -g 4001 dinstall
# 创建用户(指定UID、主组、家目录)
useradd -u 4001 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
# 设置密码(请使用强密码)
passwd dmdba
参数说明:
-g指定主组,-m创建家目录,-d指定家目录路径,-s指定登录Shell。
# 创建软件安装目录
mkdir -p /opt/dm/dmdbms
# 创建数据、归档、备份目录
mkdir -p /dmdata/data
mkdir -p /dmdata/arch
mkdir -p /dmdata/bak
# 修改目录属主和属组
chown -R dmdba:dinstall /opt/dm
chown -R dmdba:dinstall /dmdata
# 设置目录权限
chmod -R 755 /opt/dm
chmod -R 755 /dmdata
达梦数据库在高并发场景下需要打开大量文件,需调整系统限制。
编辑/etc/security/limits.conf文件,添加以下内容:
cat >> /etc/security/limits.conf << EOF dmdba soft core unlimited dmdba hard core unlimited dmdba soft nofile 65535 dmdba hard nofile 65535 dmdba soft nproc 65535 dmdba hard nproc 65535 dmdba soft data unlimited dmdba hard data unlimited EOF
注意:修改该文件后需重新登录dmdba用户才能生效。可使用
ulimit -n验证,预期输出应为65535。
编辑/etc/sysctl.conf,添加数据库相关内核参数:
cat >> /etc/sysctl.conf << EOF
kernel.sem = 250 32000 100 128
fs.file-max = 6553500
vm.swappiness = 10
vm.overcommit_memory = 0
fs.aio-max-nr = 1048576
EOF
# 使配置生效
sysctl -p
# 使用root用户挂载ISO镜像
mount -o loop /root/dm9_20260514_x86_centos7_64.iso /mnt/
# 查看挂载内容
ls -l /mnt/
# 应能看到 DMInstall.bin 等文件
对于无图形界面的服务器环境,推荐使用命令行方式进行安装。DM9提供了与DM8兼容的命令行安装方式。
# 切换至dmdba用户
su - dmdba
# 进入挂载目录
cd /mnt/
# 执行命令行安装
./DMInstall.bin -i
安装过程交互如下:
步骤1:系统校验与选择安装语言
安装程序会自动检查GLIBC_VERSION和硬件架构,校验通过后继续执行。
安装语言:
1) 简体中文
2) English
请输入选项[1]:1
步骤2:许可协议
阅读并同意《DM9许可协议与服务条款》?
1) 阅读
2) 同意并继续
3) 不同意并退出
请输入选项[2]:2
步骤3:选择安装组件
安装组件 (多选, 逗号分隔):
1) 服务器
2) 客户端工具
请输入选项[1,2]:1,2
说明:DM客户端程序主要包括管理工具Manager、数据迁移工具DTS、控制台工具Console、性能监控工具Monitor、审计分析工具Analyzer,以及ODBC、JDBC、DPI、Python、PHP等各类驱动程序。
步骤4:指定安装目录
指定安装目录[/home/dmdba/dmdbms]:/opt/dm/dmdbms
步骤5:许可证文件
请输入Key文件的路径地址[dm.key]:
# 直接回车跳过,使用试用版,有效期约一年
步骤6:确认安装
确认安装?[y/n]:y
安装成功后显示:
达梦数据库DM9安装完成
安装目录: /opt/dm/dmdbms
请以root用户执行脚本: /opt/dm/dmdbms/script/root/root_installer.sh
# 切换至root用户
su - root
# 执行安装脚本
/opt/dm/dmdbms/script/root/root_installer.sh
执行成功后,DM9会注册以下系统服务:
移动 /opt/dm/dmdbms/dm_svc.conf 到/etc目录
创建DmAuditMonitorService服务
创建服务(DmAuditMonitorService)完成
创建DmJobMonitorService服务
创建服务(DmJobMonitorService)完成
创建DmInstanceMonitorService服务
创建服务(DmInstanceMonitorService)完成
创建DmAPService服务
创建服务(DmAPService)完成
启动DmAPService服务
与DM8的差异:DM9新增了3个监控服务——DmAuditMonitor(实时审计监控)、DmJobMonitor(实时作业监控)、DmInstanceMonitor(实例实时监控),这是DM9在可观测性方面的重要增强。这三类服务均为单实例服务,即一个DM系统各只需运行一个。
安装程序会自动在/home/dmdba/.bash_profile中配置环境变量:
cat /home/dmdba/.bash_profile | grep DM
# 应显示:export DM_HOME="/opt/dm/dmdbms" && export PATH="$PATH:$DM_HOME/bin"
如果未自动配置,可手动添加:
echo 'export DM_HOME=/opt/dm/dmdbms' >> /home/dmdba/.bash_profile
echo 'export PATH=$PATH:$DM_HOME/bin' >> /home/dmdba/.bash_profile
source /home/dmdba/.bash_profile
以下参数一经设置,在数据库生命周期内无法更改,务必谨慎选择。
| 参数 | 含义 | 推荐值 | 说明 |
|---|---|---|---|
| PAGE_SIZE | 数据页大小 | 32 | 可选4/8/16/32,单位KB,缺省8。页越大单条记录长度上限越大,但空间利用率可能下降 |
| EXTENT_SIZE | 簇大小 | 32 | 可选16/32/64,单位页,缺省16。每次分配段空间时连续的页数 |
| CASE_SENSITIVE | 大小写敏感 | 视业务而定 | 可选Y/N/1/0,缺省Y。Oracle迁移建议Y,MySQL迁移建议N |
| CHARSET/UNICODE_FLAG | 字符集 | 1(UTF-8)或0(GB18030) | 0=GB18030(支持GB18030-2022版本),1=UTF-8(支持UNICODE 12.0版本),2=EUC-KR |
| LOG_SIZE | 单个重做日志大小 | 2048 | 64位版取值范围2568192MB,缺省4096MB;32位版2562048MB,缺省2048MB |
| DB_NAME | 数据库名称 | DAMENG | 仅支持_、$、字母数字组合,不超过128字符,首字符不能是数字 |
| INSTANCE_NAME | 实例名称 | DMSERVER | 仅支持_、$、字母数字组合,不超过16字符,首字符不能是数字 |
| PORT_NUM | 监听端口 | 5236 | 取值范围1024~65534 |
| SYSDBA_PWD | SYSDBA密码 | 自定义 | 必须符合口令策略,包含大小写字母和数字,不能与用户名相同 |
| SYSAUDITOR_PWD | 审计员密码 | 自定义 | 必须符合口令策略,包含大小写字母和数字 |
dminit是DM数据库的初始化命令行工具,位于安装目录的/bin目录下。系统管理员可通过其提供的各种参数,设置数据库存放路径、页大小、簇大小、大小写敏感、字符集等,创建出满足用户需要的数据库。
语法格式:
dminit KEYWORD=value { KEYWORD=value }
注意:参数、等号和值之间不能有空格(例如PAGE_SIZE=16)。不带参数运行dminit时,系统会引导用户进行设置。可使用
dminit HELP查看帮助信息。
# 切换至dmdba用户
su - dmdba
cd /opt/dm/dmdbms/bin
# 执行初始化(请将密码替换为强密码)
./dminit PATH=/dmdata/data \
PAGE_SIZE=32 \
EXTENT_SIZE=32 \
CASE_SENSITIVE=Y \
CHARSET=1 \
LOG_SIZE=2048 \
DB_NAME=DAMENG \
INSTANCE_NAME=DMSERVER \
PORT_NUM=5236 \
SYSDBA_PWD=Dameng@2026 \
SYSAUDITOR_PWD=Audit@2026
执行成功输出:
initdb V9
db version: 0x7000d # 0x7000d 标识DM9
file dm.key not found, use default license!
License will expire on 2027-04-17
create dm database success. 2026-09-06 08:19:36
使用dm_service_installer.sh脚本将实例注册为操作系统服务。
# 切换至root用户
su - root
# 注册实例服务
/opt/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver \
-dm_ini /dmdata/data/DAMENG/dm.ini \
-p DMSERVER
成功输出:
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
# 启动实例
systemctl start DmServiceDMSERVER
# 查看状态
systemctl status DmServiceDMSERVER
# Active: active (running)
# 设置开机自启
systemctl enable DmServiceDMSERVER
# 切换至dmdba用户
su - dmdba
cd /opt/dm/dmdbms/bin
密码不含@等特殊字符时,直接使用双引号包裹即可:
./disql SYSDBA/"Sysdba_123"@localhost:5236
密码含@时,必须使用单引号包裹密码,再整体用双引号括起,避免Shell和disql解析器将@误判为连接分隔符:
./disql SYSDBA/'"Dameng@2026"'@127.0.0.1:5236
验证结果(实测通过):
服务器[127.0.0.1:5236]:处于普通打开状态
登录使用时间 : 5.715(ms)
disql V9
省略主机名,使用默认localhost同样可行:
./disql SYSDBA/'"Dameng@2026"':5236
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 5.050(ms)
disql V9
以下写法会导致 @ 被误解析为连接分隔符,报错提示将密码的一部分当作主机名:
# ❌ 错误写法——密码中的@被当作分隔符
./disql SYSDBA/"Dameng@2026"@localhost:5236
# 报错: comm_inet_server_connect_port cannot get the address information, servername is 2026@localhost
根本原因:即使外层加了双引号,disql解析器内部仍会将密码中的@识别为<username>/<password>@<host>语法中的分隔符,导致实际解析为SYSDBA/Dameng@2026@localhost:5236,主机名变成2026@localhost。
| 密码情况 | 命令 | 说明 |
|---|---|---|
| 不含特殊字符 | disql SYSDBA/"Sysdba_123"@localhost:5236 |
双引号包裹即可 |
| 含@ | disql SYSDBA/'"Dameng@2026"'@127.0.0.1:5236 |
单引号+双引号嵌套,推荐 |
| 含@(省略主机名) | disql SYSDBA/'"Dameng@2026"':5236 |
默认localhost |
| 含@(交互式,最安全) | disql /nolog → CONN SYSDBA/'"Dameng@2026"'@127.0.0.1:5236 |
密码不暴露在命令行历史中 |
关键技术要点:
'"Dameng@2026"'中,最外层双引号由Shell解析,用于保护空格等特殊字符不被Shell拆分;内层单引号由disql解析器识别,用于将密码中的@作为普通字符处理,而不是连接分隔符。
-- 查看实例状态
SELECT INSTANCE_NAME, STATUS$ FROM V$INSTANCE;
-- 预期:DMSERVER | OPEN
-- 查看版本信息
SELECT * FROM V$VERSION;
-- 预期:DM Database Server 64 V9, DB Version: 0x7000d
-- 查看数据库信息
SELECT NAME, CREATE_TIME, ARCH_MODE FROM V$DATABASE;
-- 预期:DAMENG | 2026-09-06 08:19:36 | N(未开启归档)
-- 查看数据页大小(建库后不可修改)
SELECT SF_GET_PAGE_SIZE();
-- 查看簇大小(建库后不可修改)
SELECT SF_GET_EXTENT_SIZE();
-- 查看大小写敏感标志(建库后不可修改)
SELECT SF_GET_CASE_SENSITIVE_FLAG();
| 操作 | 命令 |
|---|---|
| 启动 | systemctl start DmServiceDMSERVER |
| 停止 | systemctl stop DmServiceDMSERVER |
| 重启 | systemctl restart DmServiceDMSERVER |
| 状态 | systemctl status DmServiceDMSERVER |
| 开机自启 | systemctl enable DmServiceDMSERVER |
| 关闭自启 | systemctl disable DmServiceDMSERVER |
DM9中的服务脚本分为两类:
第一类(不支持修改模板名称,位于bin目录下):每个DM系统只需运行一个
DmAPService — DM辅助进程服务DmAuditMonitorService — 实时审计监控服务(DM9新增)DmJobMonitorService — 实时作业监控服务(DM9新增)DmInstanceMonitorService — 实例实时监控服务(DM9新增)第二类(支持修改模板名称,位于bin/service_template目录下):可在同一物理机器上运行一个或多个
DmServer — 数据库实例服务DmWatchService — 守护进程服务DmMonitorService — 监视器服务DmASMSvrService / DmASMSvrmService — ASM相关服务DmCSService / DmCSSMonitorService — CSS相关服务| 对比维度 | DM8 | DM9 |
|---|---|---|
| 架构模式 | 集中式为主 | 集中式+分布式一体化 |
| 版本号标识 | 0x7000a/b | 0x7000d |
| 监控服务 | DmAPService | 新增AuditMonitor/JobMonitor/InstanceMonitor |
| 安装与建库 | 分步操作 | 图形化安装可一步完成 |
| 回滚表空间管理 | 事务独占回滚页 | 多事务共享,空间利用率提升 |
| 性能 | — | 单机TPC-C提升100%,TPC-H提升126% |
| 升级路径 | — | DM8用户可平滑升级至DM9 |
DM9作为达梦数据库的里程碑式版本,在架构、性能、智能化等方面实现了全面跃升。其单机部署方式延续了DM8的成熟操作习惯,命令行安装流程高度一致,这使得从DM8向DM9的迁移具备了平滑的技术路径。与此同时,DM9新增的AuditMonitor、JobMonitor、InstanceMonitor三大监控服务,以及集中式与分布式一体化的架构能力,为数据库的可观测性和可扩展性提供了更强支撑,也让技术团队在部署之初就能享受到版本升级带来的长期红利。
本文以一次真实的安装过程为线索,完整呈现了从环境准备到连接验证的各个环节。全文贯穿着两个核心原则:一是关键参数(页大小、字符集、大小写敏感)必须在建库前确定,因为一经设置便无法更改;二是连接环节需注意密码特殊字符的转义处理,这是大量初次使用者容易卡住的地方。掌握了这两点,单机部署便不再是难题。
当数据库成功启动、disql提示符出现的那一刻,您已经完成了DM9单机部署的最关键一步。接下来,无论是开启归档、配置SQL日志,还是进一步探索数据守护集群、读写分离等高级特性,都可以从容推进——达梦官方文档(位于$DM_HOME/doc目录)和社区资源将为您提供持续的技术支撑。
文章
阅读量
获赞
