1 概述
1.1 达梦数据库集群简介
达梦数据库提供了三种集群,分别为数据守护集群(Data Watch - DMDW)、共享存储集群(Data Shared Cluster - DMDSC)、分布式集群(Distributed Processing Cluster - DMDPC)。
其中,数据守护集群由一个主库和多个实时归档备库组成,主库提供完成的数据库功能,备库只提供只读服务。当主库出现故障时,备库切换为主库并继续对外提供服务。数据守护集群应用的主要目的是提高数据库可用性,保障数据安全,支持应用读写分离。
共享存储集群允许多个数据库实例同时访问、操作同一个数据库存储。每个数据库实例都可以对外提供完整的数据库服务,数据文件、控制文件在集群中只有一份,每个节点有独立的日志,文件和日志都存储在共享存储上。共享存储集群应用的主要目的是提高吞吐量,实现负载均衡。
分布式集群由一个计划生成节点(SQL Processor - SP)、多个数据存储节点(Backend Processor - BP)和元数据服务节点(Metadata Processor - MP)组成。每组BP、MP节点中又存在一主多备。分布式集群的特点是高可用、高扩展、高性能、高吞吐量和透明易用等。
1.2 达梦数据守护集群原理
达梦数据守护集群的实现原理为:将主库产生的 REDO 日志传输到备库,备库接收并重新应用 REDO 日志,从而实现备库与主库的数据同步。达梦数据守护的核心思想是监控数据库状态,获取主、备库数据同步情况,为 REDO 日志传输与重演过程中出现的各种异常情况提供一系列的解决方案。达梦数据守护系统主要由主库、备库、REDO 日志、REDO 日志传输、REDO 日志重演、守护进程(dmwatcher)、监视器(dmmonitor)组成,如下图所示:

达梦数据守护集群,由数据库实例服务、守护进程服务、监视进程服务共同实现,其中数据库实例服务涉及数据库实例配置(dm.ini)、归档配置(dmarch.ini)、链路配置(dmmal.ini),守护进程服务涉及守护配置(dmwatcher.ini),监视进程服务涉及监视配置(dmmonitor.ini)。数据库实例服务、守护进程服务、监视进程服务可以运行在同一台服务器上,监视进程服务也可以运行在单独的服务器上,如果要实现数据守护的自动故障切换,达梦要求监视进程服务为奇数个。
1.3 数据守护集群使用模式
1.3.1 一主一备模式
一主一备模式,即一台服务器作为主库服务器,一台服务器作为备库服务器,主库服务器性能优于备库服务器,主库服务器、备库服务器上运行数据库实例服务、守护进程服务,备库服务器上还运行监视进程服务。
正常使用时,主库服务器提供完整的数据库功能,备库服务器只提供读服务。当主库服务器故障时,备库服务器上运行监视进程服务自动完成主备切换,备库服务器提供完整的数据库功能。当主库服务器恢复后,再手工进行主备切换,仍由主库服务器提供完整的数据库功能。
该模式适用于不对称的服务器配置,目标是保障数据不丢失,服务不停止,兼顾读写分离。
1.3.2 一主一备一监视模式
一主一备一监视模式,即一台服务器作为主库服务器,一台服务器作为备库服务器,一台服务器作为监视服务器,主库服务器与备库服务器性能相当,监视服务器只需要较小的资源。主库服务器、备库服务器上运行数据库实例服务、守护进程服务、监视进程服务,监视服务器上只运行监视进程服务。
正常使用时,主库或备库服务器均可提供完整的数据库功能,另一台备库或主库服务器只提供读服务,当其中提供完整的数据库功能的服务器出现故障时,另外两台服务器上的监视进程服务自动完成主备切换。当故障的服务器恢复后,可以切换回来也可以不切换。考虑服务器使用平衡,可以每隔一段时间,进行一次主备切换。如果监视服务器出现故障,也不影响数据库服务器正常使用。
该模式适用于对称的服务器配置,目标是保障数据不丢失,服务不停止,可以实现读写分离,具备自动切换能力,可靠性比较好。
1.3.3 一主多备模式
一主多备模式,即一台服务器作为主库服务器,两台或更多的服务器作为备库服务器,主库服务器与备库服务器性能相当。每台主库服务器、备库服务器上运行数据库实例服务、守护进程服务、监视进程服务。正常使用时,任何一台服务器均可切换为主库模式提供完整的数据库功能,其他服务器为备库模式只提供读服务。当主库模式的服务器故障时,其他服务器上运行的监视服务会将选举其中一台服务器切换为主库模式。当故障的服务器恢复后,可以切换回来也可以不切换。考虑服务器使用平衡,可以每隔一段时间,进行一次主备切换。
该模式适用于对称的服务器配置,目标是保障数据不丢失,服务不停止,实现读写分离可对外可提供较大规模的读服务,具备自动切换能力,可靠性比较好,但需要的服务器资源比较多。
1.3.4 结合共享存储模式
数据守护集群可以结合共享存储集群共同使用,共享存储集群整体作为主库对外提供完整的数据库功能,一台独立的服务器作为备库与共享存储集群形成数据守护集群。当共享存储集群出现故障时,备库服务器上运行监视进程服务自动完成主备切换,备库服务器提供完整的数据库功能。当主库服务器恢复后,再手工进行主备切换,仍由主库服务器提供完整的数据库功能。
该模式适用于不对称的服务器配置,目标是正常时提供负载均衡、高吞吐量,异常时保障数据不丢失,服务不停止,具备自动切换能力,可靠性比较好,但结构复杂。

2 数据守护集群规划
本次配置数据守护集群规划三台主机,采用一主一备一监视模式,服务具体参数如下,其中加#的配置项使用的是默认值:
| 配置项 | 主机一 | 主机二 | 主机三 |
|---|---|---|---|
| 对外IP地址 | 192.168.20.101 | 192.168.20.102 | 192.168.20.103 |
| 管理员用户 | kylin | kylin | kylin |
| 数据库用户 | dameng | dameng | dameng |
| 数据库程序目录# | ~/dmdbms/ | ~/dmdbms/ | ~/dmdbms/ |
| 数据库目录# | ~/dmdbms/data | ~/dmdbms/data | ~/dmdbms/data |
| 数据库实例目录# | ~/dmdbms/data/DAMENG | ~/dmdbms/data/DAMENG | |
| 数据库名称# | DAMENG | DAMENG | |
| 实例名称 | DASERVER1 | DASERVER1 | |
| 实例端口# | 5236 | 5236 | |
| 实例字符集 | UTF-8 | ||
| 归档日志目录# | arch | arch | |
| 备份数据目录# | bak | bak | |
| MAL系统监听端口 | 5336 | 5336 | |
| 实例守护进程端口 | 5436 | 5436 | |
| 实例守护请求端口 | 5536 | 5536 | |
| 数据库配置文件# | dm.ini | dm.ini | |
| 归档配置文件 | dmarch.ini | dmarch.ini | |
| 链路配置文件 | dmmal.ini | dmmal.ini | |
| 守护配置文件 | dmwatcher.ini | dmwatcher.ini | |
| 监视配置文件 | dmmonitor.ini | dmmonitor.ini | dmmonitor.ini |
| 监视进程监听端口 | 8341 | 8342 | 8343 |
| 监视器系统ID | 45614 | ||
| 联机日志文件魔数 | 142857 | ||
3 安装达梦数据库
在规划的三台主机上安装达梦数据库软件。
3.1 安装环境
Hyper-V虚拟机环境,每台虚拟机分配4G内存,64G硬盘。
操作系统,银河麒麟V10桌面版国防版(Kylin-Desktop-V10-GFB-HWE-Release-020-X86_64.iso)。
MobaXterm Professional Edition v20.2。
3.2 安装前准备
3.2.1 修改系统限制
使用管理员用户修改/etc/security/limits.conf文件,加入以下内容。修改完成后,重新启动计算机。
kylin@KL1:~$ sudo vi /etc/security/limits.conf
…………
dameng soft nice 65536
dameng hard nice 65536
dameng soft as unlimited
dameng hard as unlimited
dameng soft fsize unlimited
dameng hard fsize unlimited
dameng soft nproc 65536
dameng hard nproc 65536
dameng soft nofile 65536
dameng hard nofile 65536
dameng soft core unlimited
dameng hard core unlimited
dameng soft data unlimited
dameng hard data unlimited
…………
kylin@KL1:~$ sudo shutdown -r now
3.2.2 创建达梦用户
使用管理员用户创建达梦用户,只简单地创建一个dameng用户及默认组即可。
kylin@KL1:~$ sudo adduser dameng
正在添加用户"dameng"...
正在添加新组"dameng" (1001)...
正在添加新用户"dameng" (1001) 到组"dameng"...
创建主目录"/home/dameng"...
正在从"/etc/skel"复制文件...
新的密码:
重新输入新的密码:
passwd:已成功更新密码
Changing the user information for dameng
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
这些信息是否正确? [Y/n] y
3.2.3 挂载安装盘
麒麟插入光盘后,默认挂载会对普通用户无权限访问,可以手动挂载。
kylin@KL1:/$ sudo umount /dev/cdrom
kylin@KL1:/$ sudo mount -t iso9660 /dev/cdrom /mnt/
3.3 图形方式安装
使用dameng用户,在/mnt目录执行DMInstall.bin。正常情况可以弹出安装向导窗体。




试用版没有Key文件,安装后可以使用到试用版发布日期之后的一年,过期后,可以重启动数据库服务,延长两周的试用期。


测试环境安装目录选择默认的目录即可,生产环境按照规划目录设置。


安装过程中,最后一步需要使用管理员账户执行脚本。
kylin@KL1:/tmp/DMInstall$ sudo /home/dameng/dmdbms/script/root/root_installer.sh
移动 /home/dameng/dmdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务

安装完成后,安装向导提示配置环境变量,实际上达梦的安装程序已经修改了用户主目录下的.bash_profile文件,在其中加入了LD_LIBRARY_PATH和DM_HOME两个环境变量。可以将达梦的bin、tools目录也加到PATH中去。
dameng@KL1:~$ vi .bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dameng/dmdbms/bin"
export DM_HOME="/home/dameng/dmdbms"
export PATH="$PATH:/home/dameng/dmdbms/bin:/home/dameng/dmdbms/tool"

安装完成,此时先不初始化数据库。
3.4 文本方式安装
如果主机的桌面环境无法使用,也可以使用命令行方式安装。使用-i参数执行安装文件DMInstall.bin,选择安装语言,此后安装程序会解压缩文件、校验架构,此步需要较长时间。
dameng@KL2:/mnt$ ./DMInstall.bin -i
安装语言:
[1]: 简体中文
[2]: English
请选择安装语言 [1]:1
解压安装程序..........
硬件架构校验通过!
欢迎使用达梦数据库安装程序
安装程序提示输入Key文件,选择n。设置时区为21。安装类型选择典型安装。设置安装目录。最后确认安装。
是否输入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) 大西洋时间(美国和加拿大)
[10]: (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) 基里巴斯
请选择时区 [21]:21
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1750M
请选择安装目录 [/home/dameng/dmdbms]:
可用空间: 21G
是否确认安装路径(/home/dameng/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /home/dameng/dmdbms
所需空间: 1750M
可用空间: 21G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
开始安装,在安装结束时,会提示需要用root用户执行脚本。
2025-09-10 14:35:43
[INFO] 安装达梦数据库...
2025-09-10 14:35:43
[INFO] 安装 基础 模块...
2025-09-10 14:36:25
[INFO] 安装 服务器 模块...
2025-09-10 14:36:34
[INFO] 安装 客户端 模块...
2025-09-10 14:37:32
[INFO] 安装 驱动 模块...
2025-09-10 14:38:01
[INFO] 安装 手册 模块...
2025-09-10 14:38:06
[INFO] 安装 服务 模块...
2025-09-10 14:38:11
[INFO] 移动日志文件。
2025-09-10 14:38:19
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/home/dameng/dmdbms/script/root/root_installer.sh
安装结束
使用管理员用户执行脚本。
kylin@KL2:~$ sudo /home/dameng/dmdbms/script/root/root_installer.sh
移动 /home/dameng/dmdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务

浙公网安备 33010602011771号