达梦数据库-Linux DM主备集群动态增加节点-记录总结

​​​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

相关推荐
FIT2CLOUD飞致云12 分钟前
1Panel AI一体机(GB10版)推出MiniMax H3本地视频生成方案
运维·ai·开源·1panel·ai视频·运维面板
ARM|X86+FPGA工业主板厂家25 分钟前
基于Jetson TX2的矿用巡检机器人
linux·运维·机器人
一只专注api接口开发的技术猿31 分钟前
Open Claw 实战|快速搭建电商商品监控与数据分析能力
大数据·数据库·数据挖掘·数据分析
杨云龙UP33 分钟前
Oracle 19c RMAN历史备份清理失败:CONTROL_FILE_RECORD_KEEP_TIME 问题排查与整改实战
linux·运维·网络·数据库·oracle·rac
2601_962073971 小时前
【MySQL】全面学习数据库查询技巧:查询指令深度学习指南
数据库·学习·mysql
新知图书1 小时前
12.3 智能体中Skill的约束与自进化实战
java·前端·数据库
Alphapeople1 小时前
moveit真机部署
linux·运维·服务器
小小龙学IT1 小时前
Qt 数据库编程(Qt SQL 模块)深度解析
数据库·sql·qt
Eminem891 小时前
2、k8s环境规划
linux·运维·kubernetes