当需要进行系统扩容,希望系统运行不中断,或者影响运行的时间尽可能短时,可通过动态增加集群节点的方式进行
环境准备如下
主机名称 | 主机IP | 角色 |
---|---|---|
dbtest1 | 192.168.123.10/192.168.1.10(私网) | 主库 |
dbtest2 | 192.168.123.11/192.168.1.11(私网) | 监控主机 |
dbtest3 | 192.168.123.12/192.168.1.12(私网) | 备库 |
dbtest4 | 192.168.123.13/192.168.1.13(私网) | 备库 |
数据准备
对主库进行联机备份操作:
BACKUP DATABASE BACKUPSET '/dmdata/dmbak/BACKUP_FILE_01';
初始化备机数据库
新建数据库即可
还原恢复新增备库
拷贝生成的备份集目录 BACKUP_FILE_01 到 192.168.123.13上/dmdata/dmbak/目录,使用 DMRMAN 工具脱机还原。
[dmdba@dbtest4 data]$ dmrman CTLSTMT="RESTORE DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE_01'"
dmrman V8
RESTORE DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE_01'
file dm.key not found, use default license!
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
restore successfully.
time used: 00:00:02.799
[dmdba@dbtest4 data]$ dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FOR STANDBY FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE_01'"
dmrman V8
RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FOR STANDBY FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE_01'
file dm.key not found, use default license!
[Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]
recover successfully!
time used: 00:00:03.255
[dmdba@dbtest4 data]$ dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
dmrman V8
RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
recover successfully!
time used: 00:00:01.243
配置新备库
配置 dm.ini
修改dbtest4服务器上数据库dm.ini参数
##实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16
INSTANCE_NAME = DMTEST2
PORT_NUM = 5238 ##数据库实例监听端口
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次的日志重演信息
配置 dmmal.ini
拷贝一份原系统 dmmal.ini 文件,并加上自己一项,最终配置如下:
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 ##判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSERVER ##实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 192.168.1.10 ##MAL系统监听TCP连接的IP地址
MAL_PORT = 61141 ##MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.123.10 ##实例的对外服务IP地址
MAL_INST_PORT = 5236 ##实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 52141 ##实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 33141 ##实例监听守护进程TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = DMTEST
MAL_HOST = 192.168.1.11
MAL_PORT = 61142
MAL_INST_HOST = 192.168.123.11
MAL_INST_PORT = 5237
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142
[MAL_INST3]
MAL_INST_NAME = DMTEST2
MAL_HOST = 192.168.1.13
MAL_PORT = 61143
MAL_INST_HOST = 192.168.123.13
MAL_INST_PORT = 5238
MAL_DW_PORT = 52143
MAL_INST_DW_PORT = 33143
配置 dmarch.ini
修改 dmarch.ini,配置本地归档和即时归档。
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME ##实时归档类型
ARCH_DEST = DMSERVER ##实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL ##本地归档类型
ARCH_DEST = /dmdata/arch ##本地归档文件存放路径
ARCH_FILE_SIZE = 128 ##单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 ##单位Mb,0表示无限制,范围1024~2147483647M
配置 dmwatcher.ini
修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式。
[GRP1]
DW_TYPE = GLOBAL ##全局守护类型
DW_MODE = AUTO ##自动切换模式
DW_ERROR_TIME = 10 ##远程守护进程故障认定时间
INST_RECOVER_TIME = 60 ##主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 ##本地实例故障认定时间
INST_OGUID = 453331 ##守护系统唯一OGUID值
INST_INI = /home/dmdba/dmdbms/data/DAMENG/dm.ini ##dm.ini配置文件路径
INST_AUTO_RESTART = 1 ##打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServiceDMTEST2 ##命令行方式启动
RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭
启动备库
以 Mount 方式启动备库
[dmdba@dbtest4 DAMENG]$ DmServiceDMTEST2 start mount
Starting DmServiceDMTEST2: [ OK ]
设置 OGUID
启动命令行工具 DIsql,登录备库设置 OGUID 值。
[dmdba@dbtest4 DAMENG]$ dm
服务器[localhost:5238]:处于主库配置状态
登录使用时间 : 4.763(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 23.792(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 6.666(毫秒). 执行号:2.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 19.868(毫秒). 执行号:3.
修改数据库模式
启动命令行工具 DIsql,登录备库修改数据库为 Standby 模式:
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 29.100(毫秒). 执行号:4.
SQL> alter database standby;
操作已执行
已用时间: 29.762(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 26.183(毫秒). 执行号:5.
动态添加 MAL 配置
步骤需要分别连接原系统中每个实例单独执行:
---
主库
服务器[localhost:5236]:处于主库打开状态
登录使用时间 : 7.319(ms)
disql V8
SQL>
SQL>
SQL>
SQL> SF_MAL_CONFIG(1,0);
SF_MAL_INST_ADD('MAL_INST3','DMTEST2','192.168.1.13',61143,'192.168.123.13',5238,52143,0,33143);
SF_MAL_CONFIG_APPLY();
SF_MAL_CONFIG(0,0);DMSQL 过程已成功完成
已用时间: 4.734(毫秒). 执行号:701.
SQL> DMSQL 过程已成功完成
已用时间: 0.957(毫秒). 执行号:702.
SQL> DMSQL 过程已成功完成
已用时间: 0.277(毫秒). 执行号:703.
SQL>
DMSQL 过程已成功完成
已用时间: 0.626(毫秒). 执行号:704.
SQL>
-----
备库
服务器[localhost:5237]:处于备库打开状态
登录使用时间 : 14.003(ms)
disql V8
SQL> SF_MAL_CONFIG(1,0);
SF_MAL_INST_ADD('MAL_INST3','DMTEST2','192.168.1.13',61143,'192.168.123.13',5238,52143,0,33143);
SF_MAL_CONFIG_APPLY();
SF_MAL_CONFIG(0,0);DMSQL 过程已成功完成
已用时间: 3.221(毫秒). 执行号:1.
SQL> DMSQL 过程已成功完成
已用时间: 1.578(毫秒). 执行号:2.
SQL> DMSQL 过程已成功完成
已用时间: 0.377(毫秒). 执行号:3.
SQL>
DMSQL 过程已成功完成
已用时间: 0.515(毫秒). 执行号:4.
SQL>
动态添加归档配置
动态添加归档配置步骤如下:
关闭原系统中所有实例的守护进程和监视器
动态添加归档要求数据库处于 MOUNT 状态,守护进程处于活动状态下不允许用户手动修改模式状态,因此需要先关闭守护进程,同时也是为了防止手动切换 MOUNT 状态后又被守护进程通知自动 Open,另外监视器配置也需要修改,因此在这里一并关闭。
关闭顺序为:
关闭监视器
[dmdba@dbtest3 ~]$ DmMonitorServicemo stop
Stopping DmMonitorServicemo: [ OK ]
关闭备库守护进程
[dmdba@dmtest2 DAMENG]$ DmWatcherServiceDW stop
Stopping DmWatcherServiceDW: [ OK ]
关闭主库守护进程
[dmdba@dbtest1 DAMENG]$ DmWatcherServiceDW stop
Stopping DmWatcherServiceDW: [ OK ]
手动修改原系统中所有实例为 MOUNT 状态
必须先修改主库,再修改备库,否则可能会引发主备数据同步失败导致主库挂起。
//临时修改ALTER_MODE_STATUS,允许用户手动修改模式状态,动态添加完毕后需要再改回原值
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
//临时关闭守护进程活动状态检测,允许用户手动修改模式状态,动态添加完毕后需要再改回原值
SQL> SP_SET_PARA_VALUE(1, 'DW_INACTIVE_INTERVAL', 0);
//修改数据库为MOUNT状态
SQL> ALTER DATABASE MOUNT;
//动态添加归档节点
ALTER DATABASE ADD ARCHIVELOG 'DEST=DMTEST2, TYPE= REALTIME';
手动修改原系统中所有实例为 OPEN 状态
必须先修改备库,再修改主库,否则可能会引发主备数据同步失败导致主库挂起。
//修改数据库为OPEN状态
SQL> ALTER DATABASE OPEN FORCE;
//将ALTER_MODE_STATUS改回原值
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
//将DW_INACTIVE_INTERVAL改回原值,本例中为60
SQL> SP_SET_PARA_VALUE(1, 'DW_INACTIVE_INTERVAL', 60);
修改监视器 dmmonitor.ini
在 dmmonitor.ini 中添加新增的备库
MON_DW_IP = 192.168.1.13:52143
启动所有守护进程以及监视器
分别启动主库和备库的所有守护进程,最后启动监视器。
show global info
2025-07-08 21:15:50
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP1 453331 FALSE AUTO FALSE
<<DATABASE GLOBAL INFO:>>
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.10 52141 2025-07-08 21:15:49 GLOBAL VALID OPEN DMSERVER OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.11 52142 2025-07-08 21:15:49 GLOBAL VALID OPEN DMTEST OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.13 52143 2025-07-08 22:45:10 GLOBAL VALID OPEN DMTEST2 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE
主节点断开私网IP
[root@dbtest1 home]# ifdown ens34
成功断开设备 'ens34'。
[root@dbtest1 home]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.123.10 netmask 255.255.255.0 broadcast 192.168.123.255
inet6 fe80::20c:29ff:fe6f:2ff3 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:6f:2f:f3 txqueuelen 1000 (Ethernet)
RX packets 790062 bytes 61022910 (58.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14931132 bytes 42122376453 (39.2 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens34: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:6f:2f:fd txqueuelen 1000 (Ethernet)
RX packets 67450 bytes 26581754 (25.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 86200 bytes 116102271 (110.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
查看监视器
[monitor] 2025-07-08 21:29:47: 接收守护进程(DMSERVER)消息超时
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 21:29:35 ERROR OK DMSERVER OPEN PRIMARY VALID 17 58274 58274
[monitor] 2025-07-08 21:29:47: 守护进程(DMTEST2)状态切换 [OPEN-->TAKEOVER]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 22:59:07 TAKEOVER OK DMTEST2 OPEN STANDBY VALID 17 58274 58274
[monitor] 2025-07-08 21:29:48: 守护进程(DMTEST2)状态切换 [TAKEOVER-->OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 22:59:08 OPEN OK DMTEST2 OPEN PRIMARY VALID 18 58359 58360
[monitor] 2025-07-08 21:29:50: 守护进程(DMTEST2)状态切换 [OPEN-->RECOVERY]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 22:59:10 RECOVERY OK DMTEST2 OPEN PRIMARY VALID 18 58360 58360
[monitor] 2025-07-08 21:29:52: 守护进程(DMTEST2)状态切换 [RECOVERY-->OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 22:59:12 OPEN OK DMTEST2 OPEN PRIMARY VALID 18 58360 58360
[monitor] 2025-07-08 21:29:52: 守护进程(DMTEST)状态切换 [OPEN-->UNIFY EP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 21:29:52 UNIFY EP OK DMTEST OPEN STANDBY VALID 18 58360 58360
[monitor] 2025-07-08 21:29:52: 守护进程(DMTEST)状态切换 [UNIFY EP-->OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 21:29:52 OPEN OK DMTEST OPEN STANDBY VALID 18 58360 58360
show global info
2025-07-08 21:30:47
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP1 453331 FALSE AUTO FALSE
<<DATABASE GLOBAL INFO:>>
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.13 52143 2025-07-08 23:00:06 GLOBAL VALID OPEN DMTEST2 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.11 52142 2025-07-08 21:30:46 GLOBAL VALID OPEN DMTEST OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE
ERROR DATABASE:
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.10 52141 2025-07-08 21:29:35 GLOBAL VALID ERROR DMSERVER OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE
#================================================================================#
DMTEST2 接管集群PRIMARY
恢复问题节点私网IP
[root@dbtest1 home]# ifup ens34
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
[root@dbtest1 home]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.123.10 netmask 255.255.255.0 broadcast 192.168.123.255
inet6 fe80::20c:29ff:fe6f:2ff3 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:6f:2f:f3 txqueuelen 1000 (Ethernet)
RX packets 790235 bytes 61033810 (58.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14931373 bytes 42122394845 (39.2 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens34: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fe6f:2ffd prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:6f:2f:fd txqueuelen 1000 (Ethernet)
RX packets 67716 bytes 26620638 (25.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 86419 bytes 116423511 (111.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
查看监视器
show global info
2025-07-08 21:35:30
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP1 453331 FALSE AUTO FALSE
<<DATABASE GLOBAL INFO:>>
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.13 52143 2025-07-08 23:04:50 GLOBAL VALID OPEN DMTEST2 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.10 52141 2025-07-08 23:04:50 GLOBAL VALID OPEN DMSERVER OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.11 52142 2025-07-08 21:35:30 GLOBAL VALID OPEN DMTEST OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE
#================================================================================#
DMSERVER 恢复依旧为STANDBY
将现有主节点DMTEST2主机宕机
[root@dbtest4 ~]# ps -ef|grep dm
dmdba 905 1 0 23:08 ? 00:00:00 /home/dmdba/dmdbms/bin/dmwatcher path=/home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini -noconsole
dmdba 907 1 0 23:08 ? 00:00:00 /home/dmdba/dmdbms/bin/dmap dmap_ini=/home/dmdba/dmdbms/bin/dmap.ini
dmdba 910 1 4 23:08 ? 00:00:01 /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dmdbms/data/DAMENG/dm.ini -noconsole
root 1528 1511 0 23:09 pts/0 00:00:00 grep --color=auto dm
[root@dbtest4 ~]# kill -9 910
查看监视器
#================================================================================#
[monitor] 2025-07-08 21:40:27: 实例DMTEST2[PRIMARY, OPEN, ISTAT_SAME:TRUE]故障
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:09:48 STARTUP ERROR DMTEST2 OPEN PRIMARY VALID 19 58447 58447
[monitor] 2025-07-08 21:40:27: 守护进程(DMTEST2)状态切换 [OPEN-->STARTUP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:09:48 STARTUP ERROR DMTEST2 OPEN PRIMARY VALID 19 58447 58447
[monitor] 2025-07-08 21:40:27: [!!! 实例DMTEST2的守护进程配置为故障自动切换模式,但本监视器不是确认监视器,无法对实例DMTEST2执行自动接管 !!!]
[monitor] 2025-07-08 21:40:27: 守护进程(DMSERVER)状态切换 [OPEN-->TAKEOVER]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:09:47 TAKEOVER OK DMSERVER OPEN STANDBY VALID 19 58447 58447
[monitor] 2025-07-08 21:40:28: 守护进程(DMSERVER)状态切换 [TAKEOVER-->OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:09:48 OPEN OK DMSERVER OPEN PRIMARY VALID 20 58524 58525
[monitor] 2025-07-08 21:40:31: 守护进程(DMSERVER)状态切换 [OPEN-->RECOVERY]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:09:51 RECOVERY OK DMSERVER OPEN PRIMARY VALID 20 58525 58525
[monitor] 2025-07-08 21:40:32: 守护进程(DMSERVER)状态切换 [RECOVERY-->OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:09:52 OPEN OK DMSERVER OPEN PRIMARY VALID 20 58525 58525
[monitor] 2025-07-08 21:40:32: 守护进程(DMTEST)状态切换 [OPEN-->UNIFY EP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 21:40:32 UNIFY EP OK DMTEST OPEN STANDBY VALID 20 58525 58525
[monitor] 2025-07-08 21:40:32: 守护进程(DMTEST)状态切换 [UNIFY EP-->OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 21:40:32 OPEN OK DMTEST OPEN STANDBY VALID 20 58525 58525
show global info
2025-07-08 21:40:58
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP1 453331 FALSE AUTO FALSE
<<DATABASE GLOBAL INFO:>>
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.10 52141 2025-07-08 23:10:17 GLOBAL VALID OPEN DMSERVER OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.11 52142 2025-07-08 21:40:57 GLOBAL VALID OPEN DMTEST OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE
ERROR DATABASE:
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.13 52143 2025-07-08 23:10:18 GLOBAL VALID STARTUP DMTEST2 ERROR 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE
#================================================================================#
恢复宕机节点
[dmdba@dbtest4 ~]$ DmWatcherServiceDW stop
Stopping DmWatcherServiceDW: [ OK ]
[dmdba@dbtest4 ~]$ DmServiceDMTEST2 stop
DmServiceDMTEST2 service is stopped.
[dmdba@dbtest4 ~]$ DmServiceDMTEST2 start
Starting DmServiceDMTEST2: [ OK ]
[dmdba@dbtest4 ~]$ DmWatcherServiceDW start
Starting DmWatcherServiceDW: [ OK ]
查看监视器
[monitor] 2025-07-08 21:42:34: 接收守护进程(DMTEST2)消息超时
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:11:44 ERROR ERROR DMTEST2 OPEN PRIMARY VALID 19 58447 58447
[monitor] 2025-07-08 21:43:00: 守护进程(DMTEST2)状态切换 [NONE-->STARTUP]
[monitor] 2025-07-08 21:43:01: 守护进程(DMTEST2)状态切换 [STARTUP-->UNIFY EP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:12:21 UNIFY EP OK DMTEST2 MOUNT PRIMARY VALID 19 58447 58447
[monitor] 2025-07-08 21:43:01: 守护进程(DMTEST2)状态切换 [UNIFY EP-->STARTUP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:12:21 STARTUP OK DMTEST2 MOUNT STANDBY INVALID 19 58447 58447
[monitor] 2025-07-08 21:43:01: 守护进程(DMTEST2)状态切换 [STARTUP-->UNIFY EP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:12:22 UNIFY EP OK DMTEST2 MOUNT STANDBY INVALID 19 58447 58447
[monitor] 2025-07-08 21:43:01: 守护进程(DMTEST2)状态切换 [UNIFY EP-->STARTUP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:12:22 STARTUP OK DMTEST2 OPEN STANDBY INVALID 19 58447 58447
[monitor] 2025-07-08 21:43:01: 守护进程(DMTEST2)状态切换 [STARTUP-->OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:12:22 OPEN OK DMTEST2 OPEN STANDBY INVALID 19 58447 58447
[monitor] 2025-07-08 21:43:01: 守护进程(DMSERVER)状态切换 [OPEN-->RECOVERY]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:12:21 RECOVERY OK DMSERVER OPEN PRIMARY VALID 20 58525 58525
[monitor] 2025-07-08 21:43:03: 守护进程(DMSERVER)状态切换 [RECOVERY-->OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:12:23 OPEN OK DMSERVER OPEN PRIMARY VALID 20 58525 58525
show global info
2025-07-08 21:43:46
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP1 453331 FALSE AUTO FALSE
<<DATABASE GLOBAL INFO:>>
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.10 52141 2025-07-08 23:13:06 GLOBAL VALID OPEN DMSERVER OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.11 52142 2025-07-08 21:43:45 GLOBAL VALID OPEN DMTEST OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.13 52143 2025-07-08 23:13:06 GLOBAL VALID OPEN DMTEST2 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE
#================================================================================#
此操作为动态增加节点的反向操作
关闭监视器
[dmdba@dbtest3 DAMENGJ]$ DmMonitorServicemo stop
Stopping DmMonitorServicemo: [ OK ]
删除dmmonitor.ini中备节点信息
关闭守护进程
[dmdba@dbtest4 ~]$ DmWatcherServiceDW stop
Stopping DmWatcherServiceDW: [ OK ]
删除或注释dmmal.ini中MAL_INST3相关信息(所有节点)
生效配置
SF_MAL_CONFIG(1,0);
SF_MAL_CONFIG_APPLY();
SF_MAL_CONFIG(0,0);
修改归档配置(所有节点)
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_PARA_VALUE(1, 'DW_INACTIVE_INTERVAL', 0);
ALTER DATABASE MOUNT;
ALTER DATABASE DELETE ARCHIVELOG 'DEST=DMTEST2, TYPE= REALTIME';DMSQL 过程已成功完成
已用时间: 9.476(毫秒). 执行号:704.
SQL> DMSQL 过程已成功完成
已用时间: 5.704(毫秒). 执行号:705.
SQL> 操作已执行
已用时间: 18.359(毫秒). 执行号:0.
SQL>
操作已执行
已用时间: 1.432(毫秒). 执行号:0.
SQL>
重启所有节点(所有节点)
ALTER DATABASE OPEN FORCE;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
SP_SET_PARA_VALUE(1, 'DW_INACTIVE_INTERVAL', 60);
启动守护进程
[dmdba@dbtest1 DAMENG]$ DmWatcherServiceDW start
Starting DmWatcherServiceDW: [ OK ]
[dmdba@dmtest2 DAMENG]$ DmWatcherServiceDW start
Starting DmWatcherServiceDW: [ OK ]
启动监视器
[dmdba@dbtest3 DAMENGJ]$ DmMonitorServicemo start
Starting DmMonitorServicemo: [ OK ]
查看集群状态
[monitor] 2025-07-08 22:05:58: DMMONITOR[4.0] V8
[monitor] 2025-07-08 22:05:59: DMMONITOR[4.0] IS READY.
[monitor] 2025-07-08 22:05:59:
#-----------------------------------------------------------------------------------------------#
GET MONITOR CONNECT INFO FROM DMWATCHER(DMTEST), THE FIRST LINE IS SELF INFO.
DW_CONN_TIME MON_CONFIRM MID MON_IP MON_VERSION
2025-07-08 22:05:58 FALSE 104794700 ::ffff:192.168.1.12 DMMONITOR[4.0] V8
2025-07-08 22:04:56 TRUE 101129504 ::ffff:192.168.1.12 DMMONITOR[4.0] V8
#-----------------------------------------------------------------------------------------------#
[monitor] 2025-07-08 22:05:59: 收到守护进程(DMTEST)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 22:05:58 OPEN OK DMTEST OPEN STANDBY NULL 20 58640 58640
[monitor] 2025-07-08 22:06:00: 收到守护进程(DMSERVER)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2025-07-08 23:35:20 OPEN OK DMSERVER OPEN PRIMARY VALID 20 58640 58640
show global info
2025-07-08 22:06:04
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP1 453331 FALSE AUTO FALSE
<<DATABASE GLOBAL INFO:>>
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.10 52141 2025-07-08 23:35:24 GLOBAL VALID OPEN DMSERVER OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE
DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT DETACHED
192.168.1.11 52142 2025-07-08 22:06:03 GLOBAL VALID OPEN DMTEST OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE
#================================================================================#
文章
阅读量
获赞