1达梦数据库-Linux DM主备集群动态增加节点-记录总结
1.1需求说明
原主备集群上新增1个节点,配置为高性能同步模式,不参与故障自动切换。
dmarch.ini中重点参数
WAIT_APPLY = 0
ARCH_FAILOVER = 1
1.2规划说明

1.3搭建原主备集群
1.3.1搭建
略
1.3.2结果查询

1.4原主备集群登录主库查询路径相关
--是否开启空间数据应用
SELECT SF_CHECK_GEO2_SYS;
--数据库表空间目录
SELECT TS.NAME, DF.PATH FROM VTABLESPACE AS TS, VDATAFILE AS DF WHERE TS.ID = DF.GROUP_ID;
--归档情况
select ARCH_TYPE,ARCH_DEST,ARCH_FILE_SIZE,ARCH_SPACE_LIMIT from v$dm_arch_ini;
--日志跟踪开启情况
SELECT PARA_NAME,PARA_VALUE FROM V$DM_INI WHERE PARA_NAME IN('PORT_NUM','SVR_LOG','ARCH_INI');
cat /data/dmdata/DAMENG/sqllog.ini
--是否开启审计,审计目录位置
SELECT PARA_NAME,PARA_VALUE FROM V$DM_INI WHERE PARA_NAME in('ENABLE_AUDIT','SYSTEM_PATH');
select * from V$AUDIT_SPACE;
--备份路径相关
select * from SYSJOB.SYSJOBS;
select * from SYSJOB.SYSJOBSTEPS;
select * from SYSJOB.SYSJOBSCHEDULES;
1.5新机器C环境准备
1.5.1安装和原集群相同数据库软件版本
初始化实例,启动完全后关闭数据库
root@# su - dmdba
dmdba@$cd /data/dmdbms/bin
dmdba@$./dminit path=/data/dmdata page_size=32 extent_size=32 port_num=5237 log_size=2048 CASE_SENSITIVE=1 charset=1 DB_NAME=DAMENG SYSDBA_PWD=TEST_qweasd9999 SYSAUDITOR_PWD=TEST_qweasd9999
1.5.2目录提前创建准备
mkdir /testtps
mkdir /data/dmdata/DAMENG/auditlog
chown -R dmdba:dinstall /testtps /data/dmdata/DAMENG/auditlog
1.6原主备集群进行数据库物理全备份
SP_DBMS_JOB_RUN (1781162519);
scp -r /data/dmbak/DAMENG/bak/DB_DAMENG_FULL_2026_06_13_14_11_12 dmdba@192.168.118.239:/data/dmbak/DAMENG/bak/

1.7新机器C进行数据库还原恢复
su - dmdba
ll /data/dmdata/DAMENG/bak/
cd /data/dmdbms/bin
./dmrman
RMAN> RESTORE DATABASE '/data/dmdata/DAMENG/dm.ini' REUSE DMINI FROM BACKUPSET '/data/dmbak/DAMENG/bak/DB_DAMENG_FULL_2026_06_13_14_11_12';
RMAN> RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' FOR STANDBY FROM BACKUPSET '/data/dmbak/DAMENG/bak/DB_DAMENG_FULL_2026_06_13_14_11_12';
RMAN> RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC ;
1.8新机器C修改配置 dm.ini
这里只需要修改新机器C的数据库参数配置文件dm.ini
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ##实例名,建议使用"组名_守护环境_序号"的命名方式,总长度不能超过16 INSTANCE_NAME = GRP1_DW_03 PORT_NUM = 5237 ##数据库实例监听端口 DW_INACTIVE_INTERVAL = 60 ##接收守护进程消息超时时间 ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUID ENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间 MAL_INI = 1 ##打开MAL系统 ARCH_INI = 1 ##打开归档配置 RLOG_SEND_APPLY_MON = 64 ##统计最近64次的日志发送信息 |
设置完成后查询检查
cat /data/dmdata/DAMENG/dm.ini |grep INSTANCE_NAME
cat /data/dmdata/DAMENG/dm.ini |grep INSTANCE_NAME
cat /data/dmdata/DAMENG/dm.ini |grep PORT_NUM
cat /data/dmdata/DAMENG/dm.ini |grep DW_INACTIVE_INTERVAL
cat /data/dmdata/DAMENG/dm.ini |grep ALTER_MODE_STATUS
cat /data/dmdata/DAMENG/dm.ini |grep ENABLE_OFFLINE_TS
cat /data/dmdata/DAMENG/dm.ini |grep MAL_INI
cat /data/dmdata/DAMENG/dm.ini |grep RLOG_SEND_APPLY_MON
cat /data/dmdata/DAMENG/dm.ini |grep AUD_PATH
1.9新机器C新增配置 dmarch.ini
ARCH_WAIT_APPLY = 1
ARCHIVE_LOCAL1
ARCH_TYPE = LOCAL
ARCH_DEST = /data/dmarch/DAMENG
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 20480
ARCHIVE_REALTIME1
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_DW_01
ARCHIVE_REALTIME2
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_DW_02
1.10新机器C新增配置dmwatcher.ini
所有机器都保持一致。
GRP1
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 30
INST_ERROR_TIME = 20
INST_RECOVER_TIME = 60
INST_OGUID = 532318
INST_INI = /data/dmdata/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /data/dmdbms/bin/DmServiceDAMENG start
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
1.11新机器C新增配置 dmmal.ini
所有机器都保持一致。
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 15
MAL_TEMP_PATH = /data/dmdata/DAMENG
MAL_BUF_SIZE = 512
MAL_SYS_BUF_SIZE = 2048
MAL_COMPRESS_LEVEL = 0
MAL_VPOOL_SIZE = 128
MAL_INST1
MAL_INST_NAME = GRP1_DW_01
MAL_HOST = 192.168.118.236
MAL_PORT = 65237
MAL_INST_HOST = 192.168.118.236
MAL_INST_PORT = 5237
MAL_DW_PORT = 55237
MAL_INST_DW_PORT = 35237
MAL_LINK_MAGIC = 1
MAL_INST2
MAL_INST_NAME = GRP1_DW_02
MAL_HOST = 192.168.118.237
MAL_PORT = 65237
MAL_INST_HOST = 192.168.118.237
MAL_INST_PORT = 5237
MAL_DW_PORT = 55237
MAL_INST_DW_PORT = 35237
MAL_LINK_MAGIC = 1
MAL_INST3
MAL_INST_NAME = GRP1_DW_03
MAL_HOST = 192.168.118.239
MAL_PORT = 65237
MAL_INST_HOST = 192.168.118.239
MAL_INST_PORT = 5237
MAL_DW_PORT = 55237
MAL_INST_DW_PORT = 35237
MAL_LINK_MAGIC = 1
1.12新机器C配置数据库模式和oguid
--以mount方式启动数据库
dmserver /data/dmdata/DAMENG/dm.ini mount
--设置OGUID和数据库模式
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
SP_SET_OGUID(532318);
ALTER DATABASE STANDBY;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
1.13修改配置原数据库主备集群机 dmarch.ini 和 dmmal.ini
1.13.1静态配置-配置完成后重启数据库
1.13.1.1A机器 dmarch.ini
ARCH_WAIT_APPLY = 1
ARCHIVE_LOCAL1
ARCH_TYPE = LOCAL
ARCH_DEST = /data/dmarch/DAMENG
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 20480
ARCHIVE_REALTIME1
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_DW_02
ARCHIVE_REALTIME2
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_DW_03
WAIT_APPLY= 0
ARCH_FAILOVER = 1
1.13.1.2B机器 dmarch.ini
ARCH_WAIT_APPLY = 1
ARCHIVE_LOCAL1
ARCH_TYPE = LOCAL
ARCH_DEST = /data/dmarch/DAMENG
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 20480
ARCHIVE_REALTIME1
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_DW_01
ARCHIVE_REALTIME2
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_DW_03
WAIT_APPLY= 0
ARCH_FAILOVER = 1
1.13.1.3A机器和B机器 dmmal.ini
所有机器都保持一致。
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 15
MAL_TEMP_PATH = /data/dmdata/DAMENG
MAL_BUF_SIZE = 512
MAL_SYS_BUF_SIZE = 2048
MAL_COMPRESS_LEVEL = 0
MAL_VPOOL_SIZE = 128
MAL_INST1
MAL_INST_NAME = GRP1_DW_01
MAL_HOST = 192.168.118.236
MAL_PORT = 65237
MAL_INST_HOST = 192.168.118.236
MAL_INST_PORT = 5237
MAL_DW_PORT = 55237
MAL_INST_DW_PORT = 35237
MAL_LINK_MAGIC = 1
MAL_INST2
MAL_INST_NAME = GRP1_DW_02
MAL_HOST = 192.168.118.237
MAL_PORT = 65237
MAL_INST_HOST = 192.168.118.237
MAL_INST_PORT = 5237
MAL_DW_PORT = 55237
MAL_INST_DW_PORT = 35237
MAL_LINK_MAGIC = 1
MAL_INST3
MAL_INST_NAME = GRP1_DW_03
MAL_HOST = 192.168.118.239
MAL_PORT = 65237
MAL_INST_HOST = 192.168.118.239
MAL_INST_PORT = 5237
MAL_DW_PORT = 55237
MAL_INST_DW_PORT = 35237
MAL_LINK_MAGIC = 1
1.13.1.4重启集群原主备数据库服务和守护服务
1.13.2动态配置-配置完成后不需要重启数据库服务
动态配置dmmal.ini和dmarch.ini 文件。
1.13.2.1DISQL登录原主备库改 dmmal.ini
SF_MAL_CONFIG(1,0); SF_MAL_INST_ADD('MAL_INST3','GRP1_DW_03','192.168.118.239',65237,'192.168.118.239',5237,55237,1,35237);
SF_MAL_CONFIG_APPLY();
SF_MAL_CONFIG(0,0);

查询确认

1.13.2.2 DISQL登录原主备库 动态添加归档配置
(1)关闭原主备集群中所有实例的守护进程和监视器
关闭顺序为:关闭监视器--关闭备库守护进程--关闭主库守护进程
DmMonitorServiceGRP1 stop
DmWatcherServiceGRP1 stop
(2)配置归档
--临时修改ALTER_MODE_STATUS,允许用户手动修改模式状态
--临时关闭守护进程活动状态检测,允许用户手动修改模式状态
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_PARA_VALUE(1, 'DW_INACTIVE_INTERVAL', 0);
ALTER DATABASE MOUNT;
--分别连接原主备所有实例,动态添加dmarch.ini 中归档节点。
--SQL>ALTER DATABASE ADD ARCHIVELOG 'DEST= GRP1_DW_03,TYPE= REALTIME';
--SQL>ALTER DATABASE modify ARCHIVELOG 'DEST= GRP1_DW_03,TYPE= REALTIME,WAIT_APPLY=0,ARCH_FAILOVER=1';
SQL>ALTER DATABASE ADD ARCHIVELOG 'DEST= GRP1_DW_03,TYPE= REALTIME,WAIT_APPLY=0,ARCH_FAILOVER=1';
--手动修改原主备所有实例为OPEN状态,必须先修改备库,再修改主库,否则可能会引发主备数据同步失败导致主库挂起。
ALTER DATABASE OPEN FORCE;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
SP_SET_PARA_VALUE(1, 'DW_INACTIVE_INTERVAL', 60);
--查询确认
(3)启动原主备所有实例的守护进程
DmWatcherServiceGRP1 start
1.14新机器C注册数据库服务和守护服务
--注册数据库服务
bash /data/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /data/dmdata/DAMENG/dm.ini -p DAMENG -m mount
systemctl enable DmServiceDAMENG.service
--注册守护进程服务并启动
bash /data/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini -p GRP1
systemctl enable DmWatcherServiceGRP1
systemctl start DmWatcherServiceGRP1
1.15监视器机器启动非确认监视服务和确认监视服务
1.15.1非确认监视器配置文件调整并启动检查
vi /data/dmdbms/data/DAMENG/dmmonitor_GRP1s.ini
MON_DW_CONFIRM = 0
MON_LOG_PATH = /data/dmdbms/logs
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 2048
GRP1
MON_INST_OGUID = 532318
MON_DW_IP = 192.168.118.236:55237
MON_DW_IP = 192.168.118.237:55237
MON_DW_IP = 192.168.118.239:55237

1.15.2 确认监视器配置文件新增配置并启动服务
vi /data/dmdbms/data/DAMENG/dmmonitor_GRP1.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /data/dmdbms/logs
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 2048
GRP1
MON_INST_OGUID = 532318
MON_DW_IP = 192.168.118.236:55237
MON_DW_IP = 192.168.118.237:55237
MON_DW_IP = 192.168.118.239:55237
启动确认监视器
DmMonitorServiceGRP1 start