达梦数据库安装与配置详细
1. 引言
1.1 达梦数据库简介
达梦数据库管理系统(简称 DM)是由武汉达梦数据库股份有限公司研制的一款具有完全自主知识产权的高性能、高安全性、高可靠性的国产大型通用数据库管理系统。它广泛应用于政府、金融、电信、能源、交通、教育等众多关乎国计民生的重要领域,是构建安全可靠信息系统的重要基础软件之一。DM 符合 SQL 标准,支持多种数据类型、存储过程、触发器、视图等数据库特性,并提供了完善的备份恢复、高可用集群、数据复制、安全管理等解决方案。
1.2 安装前准备的重要性
数据库是信息系统的核心,其稳定性和性能至关重要。一次成功的安装是后续稳定运行的基础。充分的安装前准备工作能够有效避免在安装过程中或安装后运行时遇到各种兼容性问题、性能瓶颈和安全风险。本章节将详细介绍安装前的各项准备工作。
2. 安装前准备
2.1 硬件要求
达梦数据库对硬件资源的需求取决于预期的数据量、并发用户数和业务复杂度。以下是最低和推荐配置的参考:
CPU: 建议使用 x86_64 架构的多核处理器。最低要求双核,推荐四核或以上。对于高并发或复杂查询场景,CPU 核心数和主频越高越好。
内存: 内存是影响数据库性能的关键因素。最低要求 2GB,但强烈推荐 8GB 或更多。实际所需内存应根据数据库缓存设置 (如 BUFFER 参数)、并发连接数以及操作系统和其他应用程序的需求综合评估。一个经验公式是:可用物理内存 ≈ 操作系统占用 + DM 缓存 + (并发连接数 * 每个连接工作内存) + 其他应用。
磁盘:
空间: 安装目录需要至少 1GB 空间。数据文件、日志文件、备份文件等所需空间则需根据实际业务数据量和增长预期进行规划。建议为数据文件、重做日志文件 (REDO)、归档日志文件 (ARCH)、备份文件等分配独立的、高性能的存储空间或挂载点。
性能: 强烈建议使用 SSD 固态硬盘作为数据存储介质,尤其是对于重做日志文件 (REDO),以降低 I/O 延迟,提升事务处理速度。如果使用机械硬盘 (HDD),建议配置 RAID 10 以提高性能和可靠性。避免使用网络存储 (如 NFS) 存放数据文件和日志文件。
网络: 稳定的千兆以太网或更高带宽的网络接口是必须的,特别是在集群部署时。确保网络延迟低且带宽充足。
2.2 软件要求
2.2.1 操作系统要求 DM 支持多种主流 Linux 发行版和 Windows 操作系统。常见的支持版本包括:
Linux: Red Hat Enterprise Linux / CentOS (7.x, 8.x), SUSE Linux Enterprise Server (12 SP3+, 15), Ubuntu LTS (18.04, 20.04), Kirin (V10) 等。安装前请务必查阅达梦官方文档,确认安装包与目标操作系统版本的兼容性。建议使用 64 位操作系统。
Windows: Windows Server (2012 R2, 2016, 2019), Windows 10 等。本文档主要聚焦于 Linux 环境下的安装。
2.2.2 依赖包检查与安装 在 Linux 环境下,DM 安装程序可能需要一些特定的系统库。在安装前,请根据目标操作系统,使用包管理工具检查并安装必要的依赖包。常见的依赖包可能包括:
glibc
libstdc++
libaio (异步 I/O 支持)
ncurses / ncurses-libs
特定版本的 compat 库 (如 CentOS 上的 compat-libstdc++) 例如,在 CentOS 7 上,可以使用以下命令安装常用依赖:
yum install glibc libstdc++ libaio ncurses-libs compat-libstdc++-33 -y
使用 ldd 命令检查安装程序的依赖是否满足:
ldd ./DMInstall.bin
确保没有 not found 的库文件。
2.3 系统配置
2.3.1 用户与用户组创建 为了安全和管理方便,强烈建议创建一个专用的操作系统用户(如 dmdba)和用户组(如 dinstall)来安装和运行达梦数据库。避免使用 root 用户直接运行数据库进程。
groupadd dinstall # 创建组
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba # 创建用户并指定主目录和
passwd dmdba # 设置用户密码
将安装介质的所有权赋予 dmdba 用户:
chown dmdba:dinstall /path/to/DMInstall.bin
chmod 755 /path/to/DMInstall.bin
2.3.2 系统参数调整 (ulimit, sysctl) 数据库运行需要足够的系统资源限制。需要调整 /etc/security/limits.conf 文件,为 dmdba 用户设置合理的限制。在文件末尾添加:
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft stack 10240
dmdba hard stack 10240
这些设置提高了用户可打开的文件描述符数量、进程数和堆栈大小。重要: 用户需要注销 (dmdba) 并重新登录,或重启系统才能使这些限制生效。 对于 Linux 内核参数,需要修改 /etc/sysctl.conf 文件,调整共享内存、信号量等设置。添加或修改以下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152 # 共享内存总量 (页数) 建议值
kernel.shmmax = 4294967296 # 单个共享内存段最大值 (字节) 建议值
kernel.shmmni = 4096 # 共享内存段数量
kernel.sem = 250 32000 100 128 # SEMMSL SEMMNS SEMOPM SEMMNI
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 4194304
net.ipv4.ip_local_port_range = 9000 65500
vm.swappiness = 10 # 降低对交换空间的依赖
保存后,执行 sudo sysctl -p 使配置生效。使用 ipcs -l 命令检查当前限制。
2.3.3 文件系统与挂载点规划
为数据库软件安装分配独立的挂载点(如 /opt/dmdbms),并确保有足够的空间。
为数据库数据文件 (*.dbf) 分配独立的、高性能的挂载点(如 /dmdata)。文件系统推荐使用 xfs 或 ext4,并使用 noatime 挂载选项以提升性能。
为重做日志文件 (*.log) 分配独立的、高性能低延迟的挂载点(如 /dmlog),同样推荐 xfs 或 ext4 + noatime。强烈建议使用 SSD。
为归档日志文件 (*.arc) 分配空间(如 /dmarch)。空间大小需根据归档策略和保留周期估算。
为备份文件分配空间(如 /dmbackup)。 示例 /etc/fstab 条目:
/dev/sdb1 /dmdata xfs defaults,noatime 0 0
/dev/nvme0n1p1 /dmlog xfs defaults,noatime 0 0
/dev/sdc1 /dmarch xfs defaults,noatime 0 0
/dev/sdd1 /dmbackup xfs defaults,noatime 0 0
一键获取完整项目代码
创建目录并挂载:
mkdir /dmdata /dmlog /dmarch /dmbackup
mount -a
将数据、日志、归档、备份目录的所有权赋予 dmdba 用户:
chown dmdba:dinstall /dmdata /dmlog /dmarch /dmbackup
2.3.4 内存与交换空间
确保物理内存充足。如果物理内存不足,系统会频繁使用交换空间 (swap),导致性能急剧下降。
交换空间的大小通常建议设置为物理内存的 1.5 到 2 倍。但更好的做法是增加物理内存,尽量减少对交换空间的依赖。
使用 free -h 命令检查内存和交换空间使用情况。
2.3.5 网络配置
确保服务器有固定的 IP 地址。
检查防火墙 (firewalld 或 iptables) 设置,确保数据库监听端口(默认 5236)允许访问。例如,在 firewalld 中:
firewall-cmd --zone=public --add-port=5236/tcp --permanent
firewall-cmd --reload
如果主机名解析存在问题,建议在 /etc/hosts 文件中配置好本机 IP 和主机名的映射。
2.4 获取安装介质
从达梦数据库官方网站或授权渠道获取对应操作系统平台的安装包(如 dm8_20260312_x86_rh7_64.iso或 DMInstall.bin)。
将安装介质上传或复制到准备好的服务器上(如 /tmp)。
确保 dmdba 用户有权限读取该文件。
3. 图形化界面安装
选择语言时区
点击下一步
接受协议并点击下一步
没有key文件直接选择下一步
选择典型安装
选择安装目录
安装前预览
切换root用户执行以下脚本
3.1以命令行模式启动安装程序
切换到 dmdba 用户,并赋予安装程序可执行权限(如果尚未设置):
su - dmdba
chmod 755 /path/to/DMInstall.bin
启动安装程序:
./DMInstall.bin -i
Installer Language:
- : 简体中文
- : English
Please select the installer's language [2]:1
解压安装程序.........
硬件架构校验通过!
欢迎使用达梦数据库安装程序 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: (GTM-12:00) 日界线西
[ 2]: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋时间(美国和加拿大)
[ 6]: (GTM-07:00) 亚利桑那
[ 7]: (GTM-06:00) 中部时间(美国和加拿大)
[ 8]: (GTM-05:00) 东部部时间(美国和加拿大)
[ 9]: (GTM-04:00) 大西洋时间(美国和加拿大)
- : (GTM-03:00) 巴西利亚
- [11]: (GTM-02:00) 中大西洋
- [12]: (GTM-01:00) 亚速尔群岛
- [13]: (GTM) 格林威治标准时间
- [14]: (GTM+01:00) 萨拉热窝
- [15]: (GTM+02:00) 开罗
- [16]: (GTM+03:00) 莫斯科
- [17]: (GTM+04:00) 阿布扎比
- [18]: (GTM+05:00) 伊斯兰堡
- [19]: (GTM+06:00) 达卡
- [20]: (GTM+07:00) 曼谷,河内
- [21]: (GTM+08:00) 中国标准时间
- [22]: (GTM+09:00) 首尔
- [23]: (GTM+10:00) 关岛
- [24]: (GTM+11:00) 所罗门群岛
- [25]: (GTM+12:00) 斐济
- [26]: (GTM+13:00) 努库阿勒法
- [27]: (GTM+14:00) 基里巴斯
- 请选择时区 [6]:21
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义 请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1930M 请选择安装目录 [/home/dmdba/dmdbms]:/dmdata/data/
可用空间: 37G 是否确认安装路径(/dmdata/data)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /dmdata/data
所需空间: 1930M
可用空间: 37G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2026-04-13 23:56:58 [INFO] 安装达梦数据库...
2026-04-13 23:56:58 [INFO] 安装 基础 模块...
2026-04-13 23:57:09 [INFO] 安装 服务器 模块...
2026-04-13 23:57:11 [INFO] 安装 客户端 模块...
2026-04-13 23:57:19 [INFO] 安装 驱动 模块...
2026-04-13 23:57:25 [INFO] 安装 手册 模块...
2026-04-13 23:57:26 [INFO] 安装 服务 模块...
2026-04-13 23:57:26 [INFO] 移动日志文件。
2026-04-13 23:57:28 [INFO] 安装达梦数据库完成。
请以root系统用户执行命令: /dmdata/data/script/root/root_installer.sh
安装结束
按照提示切换root用户执行脚本
4. 命令行静默安装
对于无人值守安装或自动化部署,可以使用静默安装模式。这需要一个预定义的响应文件 (`response.xml`)。
4.1 准备响应文件
响应文件是一个 XML 格式的文件,包含了图形化安装过程中需要手动选择的所有配置项。可以从一次成功的图形化安装的日志中获取模板,或者参考达梦安装文档手动创建。一个简化的示例片段如下:
<?xml version="1.0" encoding="UTF-8"?>
<DATABASE>
<LANGUAGE>en</LANGUAGE> <!-- 安装语言 -->
<INSTALL_TYPE>Typical</INSTALL_TYPE> <!-- 安装类型 -->
<INSTALL_PATH>/home/dmdba/dmdbms</INSTALL_PATH> <!-- 安装目录 -->
<COMPONENTS>
<COMPONENT>Server</COMPONENT> <!-- 组件 -->
<COMPONENT>Client</COMPONENT>
</COMPONENTS>
<USER_NAME>dmdba</USER_NAME> <!-- 运行用户 -->
<GROUP_NAME>dinstall</GROUP_NAME> <!-- 运行用户组 -->
<START_AFTER_INSTALL>true</START_AFTER_INSTALL> <!-- 是否注册服务 -->
<INIT_DATABASE>true</INIT_DATABASE> <!-- 是否初始化实例 -->
... <!-- 其他配置项,如实例名、端口、路径等 -->
</DATABASE>
XML
需要根据实际情况填充所有必要的字段。重要: 对于生产环境,请确保响应文件中的路径、用户、组等信息准确无误。
4.2 执行静默安装命令
使用 dmdba 用户执行安装命令,并通过 -f 参数指定响应文件路径:
./DMInstall.bin -i -f /path/to/response.xml
-i 表示静默模式。
-f 指定响应文件。 安装程序将根据响应文件自动执行安装,无需人工交互。输出信息会显示在控制台。
4.3 验证安装结果
安装完成后,检查安装目录 (/home/dmdba/dmdbms) 是否存在且包含必要的文件和子目录(如 bin, doc, include, lib, tool 等)。检查 /dmdata, /dmlog 等目录的所有权是否正确 (dmdba:dinstall)。尝试运行 disql 或 dm_svc_config 查看是否安装成功(此时数据库实例可能尚未初始化,连接会失败是正常的)。
5. 安装后配置
软件安装完成后,还需要进行数据库实例的初始化和相关配置。
5.1 初始化数据库实例
(dminit) 数据库实例是数据库服务运行时管理的一组进程和内存区域,以及关联的数据文件、日志文件和控制文件。使用 dminit 工具进行初始化。
5.1.1 dminit 常用参数详解 dminit 位于 $DM_HOME/bin 目录下。
主要参数:
PATH = /dmdata: 数据文件存储路径。必须指定。
LOG_PATH = /dmlog: 重做日志文件存储路径。必须指定。
CTL_PATH = /dmlog: 控制文件存储路径(通常与日志文件放一起)。
ARCH_PATH = /dmarch: 归档日志文件存储路径。
PORT_NUM = 5236: 数据库监听端口,默认为 5236。
SYSDBA_PWD = Dameng123: 设置初始 SYSDBA 用户的密码。强烈建议修改默认密码。
DB_NAME = DAMENG: 数据库名,默认为 DAMENG。
INSTANCE_NAME = DMSERVER: 实例名,默认为 DMSERVER。
PAGE_SIZE = 8: 数据页大小(KB),可选 4, 8, 16, 32。默认为 8。需根据应用场景选择,一旦确定不能修改。
CHARSET = 1: 字符集。1 代表 GB18030,2 代表 UTF-8。默认为 1。选择后不能修改。强烈推荐使用 UTF-8 (2)。
CASE_SENSITIVE = Y: 标识符是否大小写敏感。Y 敏感,N 不敏感。默认为 Y。选择后不能修改。
LENGTH_IN_CHAR = N: VARCHAR 类型长度是否以字符为单位。Y 是,N 以字节为单位。默认为 N。
SYSSSO_PWD = ..., SYSAUDITOR_PWD = ...: 设置其他默认安全用户的密码。
AUTO_OVERWRITE = 0: 如果目标目录已有文件,0 询问是否覆盖,1 自动覆盖,2 不覆盖退出。
LOG_SIZE = 256: 单个重做日志文件大小 (MB)。
BUFFER = 100: 系统缓冲区大小 (MB),影响性能关键参数。需根据物理内存调整。
TIME_ZONE = 480: 时区设置(分钟偏移量)。北京时间 +08:00 对应 480。 使用 dminit help 查看所有参数。
5.1.2 执行初始化命令 切换到 dmdba 用户,进入 $DM_HOME/bin 目录:
su - dmdba
cd /home/dmdba/dmdbms/bin
执行初始化命令(示例):
./dminit path=/dmdata/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBTEST PORT_NUM=5237 SYSDBA_PWD=Dam@1234 SYSAUDITOR_PWD=Dam@1234
5.2 配置文件简介与调整
达梦数据库的主要配置文件位于 $DM_HOME/ 目录或其子目录下:
dm.ini: 核心配置文件。位于数据库实例目录(通常由 dminit 在数据文件路径 /dmdata 下创建,如 /dmdata/PRODDB)。它包含了数据库实例运行所需的大部分参数设置,如内存分配 (BUFFER, POOL)、连接数 (MAX_SESSIONS)、兼容性 (COMPATIBLE_MODE)、备份参数、日志参数等。初始化后,可以根据性能调优或特定需求修改此文件。修改后需要重启数据库生效。
dmmal.ini: MAL 系统配置文件。用于配置达梦数据守护 (DMDSC, DM Data Guard) 或读写分离集群中节点间的通信。单机实例不需要此文件。
dmarch.ini: 归档配置文件。用于配置本地归档或实时归档。如果初始化时指定了 ARCH_PATH 但未配置归档,可以在实例运行后创建并配置此文件,然后执行 ALTER DATABASE ARCHIVELOG; 开启归档模式。开启归档是保证数据安全的重要手段。
dm_svc.conf: 服务名解析配置文件。通常位于 $DM_HOME/bin 或 /etc。用于定义客户端连接时使用的服务名 (dm_svc.conf 中定义的 SERVICE_NAME) 对应的数据库连接信息 (IP, PORT)。方便客户端连接管理。
sqlexit.ini: SQL 退出时执行脚本配置。 对于单机实例,初次安装后,主要关注 dm.ini 中的内存参数 (BUFFER, POOL) 是否合理(不超过可用物理内存),以及是否根据需要配置了归档 (dmarch.ini)。
5.3 注册数据库服务
(dmservice) 如果在图形化安装(步骤 3.8)或响应文件中选择了“注册服务”,那么服务通常已经注册好。如果没有,或者需要重新注册,可以使用 dmservice 工具。 dmservice 也位于 $DM_HOME/bin 目录下。注册服务需要 root 权限:
$DM_HOME/bin/dmservice.sh -t register -p /dmdata/PRODDB/dm.ini
-t register 表示注册服务。
-p 指定数据库实例的 dm.ini 配置文件路径。 执行成功后,会生成一个服务文件(如 DmServiceDMTEST.service)并注册到systemd。可以使用systemctl status DmServiceDMTEST 查看服务状态。
6. 启动与停止数据库
6.1 使用服务管理命令 (systemctl / service)
启动数据库
[dmdba@host01 bin]$./DmServiceDMTEST stop
Stopping DmServiceDMTEST: [ OK ]
[dmdba@host01 bin]$ ./DmServiceDMTEST start
Starting DmServiceDMTEST: [ OK ]
6.2使用 dmserver 直接启动
可以直接运行数据库服务进程 dmserver,并指定 dm.ini 文件路径。这种方式通常用于调试或特殊场景,不作为常规启停方式。注意: 直接启动的服务不会被 systemd 管理。
cd $DM_HOME/bin
./dmserver /dmdata/data/DMTEST/dm.ini
要停止这种方式启动的服务,可以在运行该命令的控制台按 Ctrl+C,或者找到进程 ID (ps -ef | grep dmserver) 并用 kill 命令终止。
7. 验证安装
7.1 连接数据库
(disql / dm_svc.conf) disql 是达梦数据库的命令行交互工具,类似 Oracle 的 sqlplus 或 MySQL 的 mysql。
使用 SYSDBA 和端口连接
[dmdba@host01 bin]$ ./disql sysdba/'"Dam@1234"'@192.168.94.128:5237
服务器[192.168.94.128:5237]:处于普通打开状态
登录使用时间 : 26.963(ms)
disql V8
使用服务名连接 (需配置 dm_svc.conf) 编辑 dm_svc.conf 文件(可能在 /etc 或 $DM_HOME/bin),添加服务配置:
DMRW = (localhost:5236)
保存后,使用服务名连接:
./disql sysdba/'"Dam@1234"'@DMRW:5237
7.2 执行简单 SQL 查询
在 disql 提示符下,执行一些基本 SQL 语句验证数据库功能:
SELECT * FROM v$version; -- 查看数据库版本
SELECT SYSDATE; -- 查看系统时间
CREATE TABLE test (id INT, name VARCHAR(20)); -- 创建测试表
INSERT INTO test VALUES (1, '达梦'); -- 插入数据
SELECT * FROM test; -- 查询数据
DROP TABLE test; -- 清理测试表
7.3 检查数据库状态 (v$instance, v$database)
查询动态性能视图,了解数据库状态:
SELECT status_name, db_name, instance_name FROM v$instance; -- 实例状态
SELECT name, status$, mode$ FROM v$database; -- 数据库状态和模式 (MOUNT/OPEN)
SELECT arch_mode FROM v$database; -- 是否开启归档模式
SELECT * FROM v$dm_ini WHERE para_name LIKE 'BUFFER%'; -- 查看缓冲区参数设置
确保实例状态 (STATUS_NAME) 为 OPEN,数据库模式 (MODE$) 为 READ WRITE。
8. 总结
本文详细介绍了达梦数据库在 Linux 环境下的安装全过程,涵盖了从安装前准备(硬件、软件、系统配置)、图形化安装步骤、命令行静默安装方法,到安装后的数据库实例初始化、配置文件管理、服务注册、启停操作以及安装验证。强调了规划(路径、用户、参数)和准备工作的重要性,并列举了常见问题的解决方法。
一次成功的安装是数据库稳定高效运行的基础。请务必严格按照步骤操作,充分理解每个环节的作用,并在生产环境部署前进行充分的测试。达梦数据库功能强大,后续还需进行用户管理、对象创建、备份恢复策略制定、性能监控与调优等工作。建议参考达梦官方文档进行更深入的学习和实践。