注册
DM8数据库 DW守护集群切换
专栏/技术分享/ 文章详情 /

DM8数据库 DW守护集群切换

BigQ 2026/07/17 188 0 0
摘要

DM8数据库
DW守护集群切换

目录
一 数据守护集群概述 1
1.1 核心组件 1
1.2 核心特性 1
二 数据守护集群切换方式 2
2.1 Switchover切换 2
2.1.1 适用场景 2
2.1.2 切换注意事项 2
2.1.3 切换步骤 2
2.2 自动切换 10
2.2.1 适用场景 10
2.2.2 主库进程异常关闭 10
2.2.3 主库服务器宕机/网络中断 14
2.3 Takeover切换 21
2.3.1 适用场景 21
2.3.2 切换注意事项 22
2.3.3 切换步骤 22

一 数据守护集群概述
达梦数据守护集群是 DM8 针对高可用场景设计的核心解决方案,基于主备架构实现数据的实时同步、故障自动切换与手动接管,保障数据库服务的连续性和数据一致性。DW 集群通过守护进程(dwwatcher)、监视器(dmmonitor)和主备实例的协同工作,支持Switchover、自动切换、Takeover 三种核心切换模式,满足不同故障场景下的高可用需求。
1.1 核心组件
•守护进程(dwwatcher):部署在每个数据库节点,负责监控实例状态、执行切换指令、维护主备角色,是集群状态管理的核心。
•监视器(dmmonitor):集中监控集群状态,支持手动触发切换操作,分为 “确认监视器” 和 “普通监视器”—— 确认监视器参与自动切换决策,普通监视器仅做状态展示。
•主备实例:主库(PRIMARY)提供读写服务,备库(STANDBY)实时同步主库数据,支持只读或静默模式,故障时可快速接管。
1.2 核心特性
•实时数据同步:基于 Redo 日志的物理复制,保证主备数据强一致;
•多模式切换:支持手动平滑切换、故障自动切换、宕机强制接管;
•自愈能力:故障节点恢复后可自动重加入集群并同步数据;
•无数据丢失:切换过程中通过日志校验保证数据完整性。
二 数据守护集群切换方式
2.1 Switchover切换
2.1.1 适用场景
适用于计划内维护场景,如主库服务器升级、系统补丁安装、硬件维护等,需要在不中断业务的前提下临时切换主备角色,维护完成后可再次切回。该模式要求主备实例均在线且同步状态正常,属于 “无损切换”。
2.1.2 切换注意事项
登录监视器节点,执行监视器命令查看主备同步状态,确保:
◦主备实例INST_OK为OK,ISTATUS为OPEN;
◦备库RSTAT为VALID,FLSN/CLSN与主库一致;
◦同步信息中(RLSN, SLSN, KLSN)三者相等,无日志延迟。
2.1.3 切换步骤

  1. 检查集群同步状态
    [dmdba@dmmon DAMENG]$ dmmonitor /data/dmdata/DAMENG/dmmonitor_n.ini
    show <====查看所有实例组的信息

2026-06-17 16:29:35
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GDW1 45331 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 AUTO_MODE_CHANGE
192.168.56.10 5436 2026-06-17 16:29:34 GLOBAL VALID OPEN DW01 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.25 5236 OK DW01 OPEN PRIMARY 0 0 REALTIME VALID 3243 47960 3243 47960 NONE

<<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 AUTO_MODE_CHANGE
192.168.56.11 5436 2026-06-17 16:29:35 GLOBAL VALID OPEN DW02 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.26 5236 OK DW02 OPEN STANDBY 0 0 REALTIME VALID 3243 47960 3243 47960 NONE

DATABASE(DW02) APPLY INFO FROM (DW01), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[3243, 3243, 3243], (RLSN, SLSN, KLSN)[47960, 47960, 47960], N_TSK[0], TSK_MEM_USE[0]

#================================================================================#
2. 登录监视器
监视器优先选择主库校验登录口令,如果没有活动主库,则选择一个活动备库校验登录口令,部分监视器命令需要先登录才允许执行。
login <====输入login,交互式登录监视器
用户名:SYSDBA
密码:
[monitor] 2026-06-17 16:40:37:074: 登录监视器成功!
3. 执行 switchover 切换
可以先执行 choose switchover 命令选出组中能够切换为主库的备库列表,选择其中一个备库切换为主库即可。可以指定 choose switchover 命令执行结果中备库对应的序号 来选择备库。例如 switchover 1 表示将 choose switchover 命令执行结果中的第一个备库切换为主库。
choose switchover GDW1 <====选择可切换为Primary库的备库列表
Can choose one of the following instances to do switchover:
1: DW02
switchover GDW1.DW02 <====切换指定组的指定库为Primary库
此操作需谨慎, 将会导致主库发生切换, 是否继续使用GDW1.DW02执行SWITCHOVER操作(YES/NO/Y/N)?
YES <====切换前进行确认

[monitor] 2026-06-17 16:44:26:146: 开始切换实例DW02
[monitor] 2026-06-17 16:44:26:151: 通知守护进程DW01切换SWITCHOVER状态
[monitor] 2026-06-17 16:44:26:271: 守护进程(DW01)状态切换 [OPEN–>SWITCHOVER]
[monitor] 2026-06-17 16:44:26:361: 切换守护进程DW01为SWITCHOVER状态成功
[monitor] 2026-06-17 16:44:26:365: 通知守护进程DW02切换SWITCHOVER状态
[monitor] 2026-06-17 16:44:26:420: 守护进程(DW02)状态切换 [OPEN–>SWITCHOVER]
[monitor] 2026-06-17 16:44:26:519: 切换守护进程DW02为SWITCHOVER状态成功
[monitor] 2026-06-17 16:44:26:523: 实例DW01开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句
[monitor] 2026-06-17 16:44:26:903: 实例DW01执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功
[monitor] 2026-06-17 16:44:26:924: 实例DW02开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句
[monitor] 2026-06-17 16:44:26:976: 实例DW02执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功
[monitor] 2026-06-17 16:44:26:979: 实例DW01开始执行ALTER DATABASE MOUNT语句
[monitor] 2026-06-17 16:44:27:615: 实例DW01执行ALTER DATABASE MOUNT语句成功
[monitor] 2026-06-17 16:44:27:617: 实例DW02开始执行SP_APPLY_KEEP_PKG()语句
[monitor] 2026-06-17 16:44:27:721: 实例DW02执行SP_APPLY_KEEP_PKG()语句成功
[monitor] 2026-06-17 16:44:27:749: 实例DW02开始执行ALTER DATABASE MOUNT语句
[monitor] 2026-06-17 16:44:28:275: 实例DW02执行ALTER DATABASE MOUNT语句成功
[monitor] 2026-06-17 16:44:28:277: 实例DW01开始执行ALTER DATABASE STANDBY语句
[monitor] 2026-06-17 16:44:28:492: 实例DW01执行ALTER DATABASE STANDBY语句成功
[monitor] 2026-06-17 16:44:28:497: 实例DW02开始执行ALTER DATABASE PRIMARY语句
[monitor] 2026-06-17 16:44:28:703: 实例DW02执行ALTER DATABASE PRIMARY语句成功
[monitor] 2026-06-17 16:44:28:706: 通知实例DW02修改所有归档状态无效
[monitor] 2026-06-17 16:44:28:759: 修改所有实例归档为无效状态成功
[monitor] 2026-06-17 16:44:28:767: 实例DW01开始执行ALTER DATABASE OPEN FORCE语句
[monitor] 2026-06-17 16:44:28:820: 实例DW01执行ALTER DATABASE OPEN FORCE语句成功
[monitor] 2026-06-17 16:44:28:823: 实例DW02开始执行ALTER DATABASE OPEN FORCE语句
[monitor] 2026-06-17 16:44:29:443: 实例DW02执行ALTER DATABASE OPEN FORCE语句成功
[monitor] 2026-06-17 16:44:29:447: 实例DW01开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句
[monitor] 2026-06-17 16:44:29:569: 实例DW01执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功
[monitor] 2026-06-17 16:44:29:591: 实例DW02开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句
[monitor] 2026-06-17 16:44:29:646: 实例DW02执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功
[monitor] 2026-06-17 16:44:29:650: 通知守护进程DW01切换OPEN状态
[monitor] 2026-06-17 16:44:29:719: 守护进程(DW01)状态切换 [SWITCHOVER–>OPEN]
[monitor] 2026-06-17 16:44:29:770: 切换守护进程DW01为OPEN状态成功
[monitor] 2026-06-17 16:44:29:774: 通知守护进程DW02切换OPEN状态
[monitor] 2026-06-17 16:44:29:780: 守护进程(DW02)状态切换 [SWITCHOVER–>OPEN]
[monitor] 2026-06-17 16:44:29:828: 切换守护进程DW02为OPEN状态成功
[monitor] 2026-06-17 16:44:29:832: 通知组(GDW1)的守护进程执行清理操作
[monitor] 2026-06-17 16:44:29:935: 清理守护进程(DW01)请求成功
[monitor] 2026-06-17 16:44:30:068: 清理守护进程(DW02)请求成功
[monitor] 2026-06-17 16:44:30:077: 实例DW02切换成功

2026-06-17 16:44:30
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GDW1 45331 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 AUTO_MODE_CHANGE
192.168.56.11 5436 2026-06-17 16:44:30 GLOBAL VALID OPEN DW02 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.26 5236 OK DW02 OPEN PRIMARY 0 0 REALTIME VALID 3249 48010 3249 48010 NONE

<<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 AUTO_MODE_CHANGE
192.168.56.10 5436 2026-06-17 16:44:30 GLOBAL VALID OPEN DW01 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME INVALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.25 5236 OK DW01 OPEN STANDBY 0 0 REALTIME INVALID 3247 47960 3247 47960 NONE

DATABASE(DW01) APPLY INFO FROM (DW02), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[3247, 3247, 3247], (RLSN, SLSN, KLSN)[47960, 47960, 47960], N_TSK[0], TSK_MEM_USE[0]

#================================================================================#

[monitor] 2026-06-17 16:44:32:834: 守护进程(DW02)状态切换 [OPEN–>RECOVERY]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 16:44:33 RECOVERY OK DW02 OPEN PRIMARY VALID 5 48010 48010

[monitor] 2026-06-17 16:44:35:309: 守护进程(DW02)状态切换 [RECOVERY–>OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 16:44:36 OPEN OK DW02 OPEN PRIMARY VALID 5 48010 48010

  1. 验证切换结果
    执行show命令查看角色变化:原备库 DW02 变为PRIMARY,原主库 DW01 变为STANDBY,且同步状态正常。
    2.2 自动切换
    2.2.1 适用场景
    适用于主库突发故障场景,如主库服务器宕机、网络中断、数据库进程异常退出等,要求集群配置 “确认监视器” 且开启自动切换模式(MODE=AUTO),可实现无人干预的故障自愈,最小化业务中断时间。
    2.2.2 主库进程异常关闭
    手动关闭主库,不需要介入,DW集群自动拉起当前主库:
    •守护进程检测到主库状态异常,尝试重启主库;
    •重启成功后,主库恢复PRIMARY角色,备库继续同步;
    •若重启失败,确认监视器会触发主备切换(需满足自动切换条件)。
    [dmdba@dmmon DAMENG]$ dmmonitor /data/dmdata/DAMENG/dmmonitor_n.ini

[monitor] 2026-06-17 16:55:47:767: DMMONITOR[4.0] V8
[monitor] 2026-06-17 16:55:47:789: DMMONITOR[4.0] IS READY.

[monitor] 2026-06-17 16:55:47:799:
#-----------------------------------------------------------------------------------------------#
GET MONITOR CONNECT INFO FROM DMWATCHER(DW02), THE FIRST LINE IS SELF INFO.

DW_CONN_TIME MON_CONFIRM MID MON_IP MON_VERSION
2026-06-17 16:55:48 FALSE 985173719 ::ffff:192.168.56.12 DMMONITOR[4.0] V8

2026-06-17 16:20:45 TRUE 1025715283 ::ffff:192.168.56.12 DMMONITOR[4.0] V8

#-----------------------------------------------------------------------------------------------#

[monitor] 2026-06-17 16:55:47:808: 收到守护进程(DW02)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 16:55:48 STARTUP ERROR DW02 SHUTDOWN PRIMARY VALID 5 48010 48010

[monitor] 2026-06-17 16:55:47:817: 收到守护进程(DW01)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 16:55:48 OPEN OK DW01 OPEN STANDBY INVALID 5 48034 48034

[monitor] 2026-06-17 16:55:58:368: 守护进程(DW02)状态切换 [STARTUP–>UNIFY EP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 16:55:59 UNIFY EP OK DW02 MOUNT PRIMARY VALID 5 48034 48034

[monitor] 2026-06-17 16:55:58:534: 守护进程(DW02)状态切换 [UNIFY EP–>STARTUP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 16:55:59 STARTUP OK DW02 OPEN PRIMARY VALID 6 48035 48070

[monitor] 2026-06-17 16:55:58:551: 守护进程(DW02)状态切换 [STARTUP–>OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 16:55:59 OPEN OK DW02 OPEN PRIMARY VALID 6 48035 48070

show <====查看所有实例组的信息

2026-06-17 16:57:08
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GDW1 45331 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 AUTO_MODE_CHANGE
192.168.56.11 5436 2026-06-17 16:57:01 GLOBAL VALID OPEN DW02 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.26 5236 OK DW02 OPEN PRIMARY 0 0 REALTIME VALID 3253 48070 3253 48070 NONE

<<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 AUTO_MODE_CHANGE
192.168.56.10 5436 2026-06-17 16:57:08 GLOBAL VALID OPEN DW01 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.25 5236 OK DW01 OPEN STANDBY 0 0 REALTIME VALID 3253 48070 3253 48070 NONE

DATABASE(DW01) APPLY INFO FROM (DW02), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[3253, 3253, 3253], (RLSN, SLSN, KLSN)[48070, 48070, 48070], N_TSK[0], TSK_MEM_USE[0]

2.2.3 主库服务器宕机/网络中断

  1. 断掉DW02服务器的网络,监视器检测到主库心跳超时,DW集群会将主库自动切换回DW01服务器
    ◦备库守护进程判定主库不可用,触发自动接管;
    ◦备库切换为PRIMARY角色,对外提供服务;
    ##以下为数据库自动切换过程

[monitor] 2026-06-17 16:57:31:350: [!!! 实例DW02的守护进程配置为故障自动切换模式,但本监视器不是确认监视器,无法对实例DW02执行自动接管 !!!]

[monitor] 2026-06-17 16:57:31:359: 接收守护进程(DW02)消息超时
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 16:57:01 ERROR OK DW02 OPEN PRIMARY VALID 6 48070 48070

[monitor] 2026-06-17 16:57:40:845: 守护进程(DW01)状态切换 [OPEN–>TAKEOVER]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 16:57:41 TAKEOVER OK DW01 OPEN STANDBY VALID 6 48070 48070

[monitor] 2026-06-17 16:57:41:930: 守护进程(DW01)状态切换 [TAKEOVER–>OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 16:57:42 OPEN OK DW01 OPEN PRIMARY VALID 7 48114 48114

show <====查看所有实例组的信息

2026-06-17 16:58:17
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GDW1 45331 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 AUTO_MODE_CHANGE
192.168.56.10 5436 2026-06-17 16:58:17 GLOBAL VALID OPEN DW01 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.25 5236 OK DW01 OPEN PRIMARY 0 0 REALTIME VALID 3255 48114 3255 48114 NONE

ERROR DATABASE:

<<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 AUTO_MODE_CHANGE
192.168.56.11 5436 2026-06-17 16:57:01 GLOBAL VALID ERROR DW02 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.26 5236 OK DW02 OPEN PRIMARY 0 0 REALTIME VALID 3253 48070 3253 48070 NONE

#================================================================================#
2. 主库网络恢复后,自动重启并切换为STANDBY,追平新主库日志
[dmdba@dmmon ~]$ dmmonitor /data/dmdata/DAMENG/dmmonitor_n.ini

[monitor] 2026-06-17 17:10:10:172: 收到守护进程(DW02)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 17:10:11 MON CONFIRM OK DW02 SUSPEND PRIMARY VALID 6 48070 48070

[monitor] 2026-06-17 17:10:10:199: 守护进程(DW02)状态切换 [MON CONFIRM–>STARTUP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 17:10:11 STARTUP OK DW02 SUSPEND PRIMARY VALID 6 48070 48070

[monitor] 2026-06-17 17:10:13:574: 实例DW02[PRIMARY, SUSPEND, ISTAT_SAME:TRUE]故障
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 17:10:14 STARTUP ERROR DW02 SUSPEND PRIMARY VALID 6 48070 48070

[monitor] 2026-06-17 17:10:13:581: [!!! 实例DW02的守护进程配置为故障自动切换模式,但本监视器不是确认监视器,无法对实例DW02执行自动接管 !!!]

[monitor] 2026-06-17 17:10:45:735: 实例DW02[PRIMARY, MOUNT, ISTAT_SAME:TRUE]恢复正常
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 17:10:46 STARTUP OK DW02 MOUNT PRIMARY VALID 6 48070 48070

[monitor] 2026-06-17 17:10:45:750: 守护进程(DW02)状态切换 [STARTUP–>UNIFY EP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 17:10:46 UNIFY EP OK DW02 MOUNT PRIMARY VALID 6 48070 48070

[monitor] 2026-06-17 17:10:45:924: 守护进程(DW02)状态切换 [UNIFY EP–>STARTUP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 17:10:46 STARTUP OK DW02 MOUNT STANDBY INVALID 6 48070 48070

[monitor] 2026-06-17 17:10:46:011: 守护进程(DW02)状态切换 [STARTUP–>UNIFY EP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 17:10:46 UNIFY EP OK DW02 MOUNT STANDBY INVALID 6 48070 48070

[monitor] 2026-06-17 17:10:46:196: 守护进程(DW02)状态切换 [UNIFY EP–>STARTUP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 17:10:47 STARTUP OK DW02 OPEN STANDBY INVALID 6 48070 48070

[monitor] 2026-06-17 17:10:46:214: 守护进程(DW02)状态切换 [STARTUP–>OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 17:10:47 OPEN OK DW02 OPEN STANDBY INVALID 6 48070 48070

[monitor] 2026-06-17 17:10:46:265: 守护进程(DW01)状态切换 [OPEN–>RECOVERY]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 17:10:46 RECOVERY OK DW01 OPEN PRIMARY VALID 7 48114 48114

[monitor] 2026-06-17 17:10:49:116: 守护进程(DW01)状态切换 [RECOVERY–>OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-17 17:10:49 OPEN OK DW01 OPEN PRIMARY VALID 7 48114 48114

SHOW <====查看所有实例组的信息

2026-06-17 17:12:38
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GDW1 45331 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 AUTO_MODE_CHANGE
192.168.56.10 5436 2026-06-17 17:12:37 GLOBAL VALID OPEN DW01 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.25 5236 OK DW01 OPEN PRIMARY 0 0 REALTIME VALID 3260 48114 3260 48114 NONE

<<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 AUTO_MODE_CHANGE
192.168.56.11 5436 2026-06-17 17:12:38 GLOBAL VALID OPEN DW02 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.26 5236 OK DW02 OPEN STANDBY 0 0 REALTIME VALID 3260 48114 3260 48114 NONE

DATABASE(DW02) APPLY INFO FROM (DW01), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[3260, 3260, 3260], (RLSN, SLSN, KLSN)[48114, 48114, 48114], N_TSK[0], TSK_MEM_USE[0]

#================================================================================#

2.3 Takeover切换
2.3.1 适用场景
适用于主库严重故障且无法快速恢复场景,如主库服务器硬件损坏、存储故障、数据文件损坏等,无法通过自动重启恢复,需手动强制将备库提升为主库。该模式属于 “应急操作”,需谨慎执行,避免数据分裂。
2.3.2 切换注意事项
◦强制接管前需备份备库最新日志,避免数据丢失;
◦接管后需将集群模式切回AUTO,恢复自动高可用能力;
◦若主库恢复后存在未同步数据,需通过日志文件手动补全,保证数据一致性。
2.3.3 切换步骤

  1. 确认原主库完全宕机:服务器关机 / 存储故障,无任何读写写入;
  2. 停止确认监视器服务,防止脑裂双向主库:
    [root@dmmon ~]# systemctl stop DmMonitorServiceDMM.service
  3. 核对备库最新 FLSN/CLSN,确认备库持有当前全部日志;
  4. 登录备库监视器,执行 Takeover切换
    [dmdba@dmdb02 ~]$ dmmonitor /data/dmdata/DAMENG/dmmonitor_n.ini

[monitor] 2026-06-18 14:51:03:162: DMMONITOR[4.0] V8
[monitor] 2026-06-18 14:51:04:201: DMMONITOR[4.0] IS READY.

[monitor] 2026-06-18 14:51:04:209:
#-----------------------------------------------------------------------------------------------#
GET MONITOR CONNECT INFO FROM DMWATCHER(DW02), THE FIRST LINE IS SELF INFO.

DW_CONN_TIME MON_CONFIRM MID MON_IP MON_VERSION
2026-06-18 14:51:04 FALSE 870267008 ::ffff:192.168.56.11 DMMONITOR[4.0] V8

2026-06-18 14:38:02 FALSE 180064186 ::ffff:192.168.56.11 DMMONITOR[4.0] V8

#-----------------------------------------------------------------------------------------------#

[monitor] 2026-06-18 14:51:04:216: 收到守护进程(DW02)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-18 14:51:04 OPEN OK DW02 OPEN STANDBY NULL 11 48735 48735

login
用户名:SYSDBA
密码:
[monitor] 2026-06-18 14:51:21:096: 登录监视器成功!
5. 执行强制接管
takeover force GDW1.DW02

此操作需谨慎, 可能会导致分裂情况发生,是否继续使用GDW1.DW02执行 TAKEOVER FORCE操作(YES/NO/Y/N)?
YES

[monitor] 2026-06-18 14:51:48:081: 开始使用实例DW02接管
[monitor] 2026-06-18 14:51:48:096: 通知守护进程DW02切换TAKEOVER状态
[monitor] 2026-06-18 14:51:48:125: 守护进程(DW02)状态切换 [OPEN–>TAKEOVER]
[monitor] 2026-06-18 14:51:48:177: 切换守护进程DW02为TAKEOVER状态成功
[monitor] 2026-06-18 14:51:48:235: 实例DW02开始执行SP_SET_GLOBAL_DW_STATUS(0, 7)语句
[monitor] 2026-06-18 14:51:48:290: 实例DW02执行SP_SET_GLOBAL_DW_STATUS(0, 7)语句成功
[monitor] 2026-06-18 14:51:48:296: 实例DW02开始执行SP_APPLY_KEEP_PKG()语句
[monitor] 2026-06-18 14:51:48:455: 实例DW02执行SP_APPLY_KEEP_PKG()语句成功
[monitor] 2026-06-18 14:51:48:475: 实例DW02开始执行ALTER DATABASE MOUNT语句
[monitor] 2026-06-18 14:51:48:554: 实例DW02执行ALTER DATABASE MOUNT语句成功
[monitor] 2026-06-18 14:51:48:563: 实例DW02开始执行ALTER DATABASE PRIMARY语句
[monitor] 2026-06-18 14:51:49:639: 实例DW02执行ALTER DATABASE PRIMARY语句成功
[monitor] 2026-06-18 14:51:49:649: 通知实例DW02修改所有归档状态无效
[monitor] 2026-06-18 14:51:49:901: 修改所有实例归档为无效状态成功
[monitor] 2026-06-18 14:51:49:989: 实例DW02开始执行ALTER DATABASE OPEN FORCE语句
[monitor] 2026-06-18 14:51:50:636: 实例DW02执行ALTER DATABASE OPEN FORCE语句成功
[monitor] 2026-06-18 14:51:50:638: 实例DW02开始执行SP_SET_GLOBAL_DW_STATUS(7, 0)语句
[monitor] 2026-06-18 14:51:50:720: 实例DW02执行SP_SET_GLOBAL_DW_STATUS(7, 0)语句成功
[monitor] 2026-06-18 14:51:50:723: 通知守护进程DW02切换OPEN状态
[monitor] 2026-06-18 14:51:50:727: 守护进程(DW02)状态切换 [TAKEOVER–>OPEN]
[monitor] 2026-06-18 14:51:50:839: 切换守护进程DW02为OPEN状态成功
[monitor] 2026-06-18 14:51:50:843: 通知组(GDW1)的守护进程执行清理操作
[monitor] 2026-06-18 14:51:50:916: 清理守护进程(DW02)请求成功
[monitor] 2026-06-18 14:51:50:922: 使用实例DW02接管成功

2026-06-18 14:51:50
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GDW1 45331 FALSE MANUAL 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 AUTO_MODE_CHANGE
192.168.56.11 5436 2026-06-18 14:51:50 GLOBAL VALID OPEN DW02 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.26 5236 OK DW02 OPEN PRIMARY 0 0 REALTIME VALID 3360 48736 3360 48771 NONE

#================================================================================#

SHOW

2026-06-18 14:53:17
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GDW1 45331 FALSE MANUAL 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 AUTO_MODE_CHANGE
192.168.56.11 5436 2026-06-18 14:53:17 GLOBAL VALID OPEN DW02 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID FALSE OFF

EP INFO:
INST_IP INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG
192.168.3.26 5236 OK DW02 OPEN PRIMARY 0 0 REALTIME VALID 3361 48771 3361 48771 NONE

#================================================================================#
6. 验证接管结果
备库 DW02 切换为PRIMARY,集群模式变为MANUAL,需手动确认数据完整性。

  1. 故障主库恢复后处理
    重启宕机的主库服务器,DW01 实例会自动加入集群并切换为STANDBY,追平新主库日志:

以下为宕机主机修复后,集群自动修复过程

[monitor] 2026-06-18 14:58:16:901: 收到守护进程(DW01)消息
[monitor] 2026-06-18 14:58:30:954: 守护进程(DW01)状态切换 [STARTUP–>UNIFY EP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-18 14:58:30 UNIFY EP OK DW01 MOUNT PRIMARY VALID 11 48735 48735

[monitor] 2026-06-18 14:58:31:284: 守护进程(DW01)状态切换 [UNIFY EP–>STARTUP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-18 14:58:30 STARTUP OK DW01 MOUNT STANDBY INVALID 11 48735 48735

[monitor] 2026-06-18 14:58:31:369: 守护进程(DW01)状态切换 [STARTUP–>UNIFY EP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-18 14:58:30 UNIFY EP OK DW01 MOUNT STANDBY INVALID 11 48735 48735

[monitor] 2026-06-18 14:58:31:439: 守护进程(DW01)状态切换 [UNIFY EP–>STARTUP]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-18 14:58:30 STARTUP OK DW01 OPEN STANDBY INVALID 11 48735 48735

[monitor] 2026-06-18 14:58:31:532: 守护进程(DW01)状态切换 [STARTUP–>OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-18 14:58:30 OPEN OK DW01 OPEN STANDBY INVALID 11 48735 48735

[monitor] 2026-06-18 14:58:32:265: 守护进程(DW02)状态切换 [OPEN–>RECOVERY]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-18 14:58:31 RECOVERY OK DW02 OPEN PRIMARY VALID 12 48802 48802

[monitor] 2026-06-18 14:58:34:756: 守护进程(DW02)状态切换 [RECOVERY–>OPEN]
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2026-06-18 14:58:34 OPEN OK DW02 OPEN PRIMARY VALID 12 48802 48802

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服