注册
达梦DM8数据守护主备集群部署
培训园地/ 文章详情 /

达梦DM8数据守护主备集群部署

秋溟 2026/07/20 44 0 0

一、前言

在达梦数据库生产落地中,单节点最大的痛点就是单点故障:服务器宕机、进程异常都会导致业务中断。而达梦数据守护集群(DW Data Watcher)是目前政企生产最主流、最稳定、零成本的高可用方案;相比传统第三方高可用组件,达梦原生主备集群内核级支持、无需额外插件、秒级自动切换、数据零丢失,完全适配政务、能源、金融、国企信创生产环境。

二、环境规划

2.1 节点信息规划

51f305c2fba548769f16bae0c683deb0.png

2.2 前置要求

• 主备数据库初始化参数完全一致:页大小、字符集、大小写敏感、簇大小必须统一
• 服务器时间同步、防火墙/selinux关闭
• 三台节点均已安装DM8,配置好dmdba用户环境变量
• 全集群 OGUID 必须一致,否则集群无法联动

三、基础环境初始化(所有节点执行)

3.1 关闭安全策略

# 关闭防火墙 & 开机自启

systemctl stop firewalld && systemctl disable firewalld

# 关闭SELinux

setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3.2 系统资源优化

# 追加系统限制参数

echo "dmdba soft nofile 65535" >> /etc/security/limits.conf
echo "dmdba hard nofile 65535" >> /etc/security/limits.conf
echo "dmdba soft nproc 65536" >> /etc/security/limits.conf
echo "dmdba hard nproc 65536" >> /etc/security/limits.conf
image.png

四、核心配置文件修改(主备节点)

达梦主备集群四大核心配置:dm.ini、dmmal.ini、dmarch.ini、dmwatcher.ini,主备节点分别配置,参数严格对应。

4.1 配置 dmmal.ini(通信心跳核心)

作用:主备心跳检测、日志传输通道,主备文件内容基本一致

[MAL]
MAL_CHECK_INTERVAL = 5 MAL 心跳检测间隔
MAL_CONN_FAIL_INTERVAL = 5 连接超时判定时间

[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 # 数据库实例名,与dm.ini保持一致
MAL_HOST = 10.47.71.11 # 本节点MAL通信IP(内网心跳IP)
MAL_PORT = 61141 # 本节点MAL服务端口
MAL_INST_HOST = 10.47.70.39 # 本节点数据库监听IP(业务外网IP)
MAL_INST_PORT = 5236 # 数据库服务端口
MAL_DW_PORT = 52141 # 本节点守护进程(dmwatcher)通信端口
MAL_INST_DW_PORT = 5237 # 数据库守护监听端口

[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 10.47.71.18
MAL_PORT = 61142
MAL_INST_HOST = 10.47.70.45
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 5237
image.png

4.2 配置 dmarch.ini(归档同步)

主库归档指向备库,备库归档指向主库,开启实时归档保障数据强一致
Plain Text
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdbms/data/DAMENG/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 0

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_02
ARCH_WAIT_APPLY = 1
Tips:备库配置时,ARCH_DEST 改为 GRP1_RT_01
image.png

4.3 配置 dmwatcher.ini(守护集群)

全集群统一集群名与OGUID

[GRP1] DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /dmdata/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0 RLOG_APPLY_THRESHOLD = 0
image.png

4.4 修改 dm.ini 核心参数

主备分别修改对应实例名
INSTANCE_NAME = GRP1_RT_01 # 备库改 _02
PORT_NUM = 5236 ALTER_MODE_STATUS = 0 # 禁止手工改模式
ENABLE_OFFLINE_TS = 2 # 备库不许离线表空间
MAL_INI = 1 # 开启主备通信
ARCH_INI = 1 # 开启归档
DW_INI = 1 # 开启守护

五、主备初始化 & 数据同步

5.1 主库操作:置主库模式+全量备份

1、停止数据库,挂载模式启动

Plain Text
systemctl stop DmServiceDMSERVER.service
/dmdbms/bin/dmserver /dmdbms/data/DAMENG/dm.ini mount
image.png

2、新开终端登录disql,设置OGUID与主库模式

disql SYSDBA/SYSDBA
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
image.png

3、主库全量备份

dmrman CTLSTMT="BACKUP DATABASE FULL BACKUPSET '/dmdbms/backup/full_bak'"
image.png

5.2 备库操作:备份还原+置备机模式

1、将主库备份文件拷贝至备库,执行还原恢复

dmrman CTLSTMT="RESTORE DATABASE '/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdbms/backup/full_bak'"
dmrman CTLSTMT="RECOVER DATABASE '/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdbms/backup/full_bak'"
dmrman CTLSTMT="RECOVER DATABASE '/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
image.png
image.png
image.png

2、备库挂载启动,设置备机模式

dmserver /dmdbms/data/DAMENG/dm.ini mount
disql SYSDBA/SYSDBA
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
image.png

六、注册系统服务,配置开机自启

主备节点均执行,root用户注册服务

注册数据库服务

/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dmdbms/data/DAMENG/dm.ini -p DMSERVER
image.png

注册守护进程服务

/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p WATCHER -watcher_ini /dmdbms/data/DAMENG/dmwatcher.ini
image.png

启动顺序:先主库、后备库、后守护进程

Plain Text
systemctl start DmServiceDMSERVER.service
systemctl start DmWatcherWATCHER.service

七、监视器部署配置

独立监视器节点无需初始化数据库,仅配置 dmmonitor.ini

[MONITOR]
MON_DW_OGUID = 453331
MON_DW_IP = 10.47.71.11: 52141, 10.47.71.18: 52142
MON_LOG_PATH = /dmdata/monitor/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 512
image.png

启动监视器

./dmmonitor /dmdbms/data/dmmonitor.ini
image.png

八、集群状态验证(核心验收步骤)

8.1 监视器 show 查看全局状态

监视器界面输入 show,正常状态标准:
• 主库:Primary、Open、Normal
• 备库:Standby、Open、Normal
• MAL链路正常、归档正常、守护状态正常
image.png

8.2 SQL查询集群状态

SELECT * FROM V$ARCH_STATUS;
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服