注册
达梦数据库DW集群高可用测试
专栏/技术分享/ 文章详情 /

达梦数据库DW集群高可用测试

DM_394095 2026/09/18 212 0 0
摘要

达梦数据库DW集群高可用测试

1.1 测试背景

达梦数据守护(Data Watch)是达梦数据库集成化的高可用解决方案,通过主备节点间的Redo日志实时同步保证数据一致性,实现数据库的快速切换与灾难恢复。本次测试旨在于DW守护集群在不同配置组合下的高可用能力,重点验证确认监视器和 DW_MODE参数对故障自动切换的影响,以及监视器自身的高可用性。

1.2 测试目标

  1. 验证确认监视器开启/关闭状态下,主库故障时的自动切换能力;
  2. 验证 DW_MODE = AUTO 与 MANUAL 两种模式下的故障响应差异;
  3. 验证多实例确认监视器的高可用性(监视器自身故障时的自动选举);
  4. 验证备库故障、网络隔离等异常场景下集群的稳定性;
  5. 验证脑裂场景的防护与恢复机制。

1.3 测试范围

7e9437700506475db3b1e2f3bfa00c83.png

二、测试环境

2.1 硬件与操作系统

image.png

2.2 集群架构

本次测试采用一主一备+监视器的标准数据守护集群架构,多实例监视器测试场景下监视器部署3个节点。
a68cb492648242c29cdcf70cb9d68274.png

2.3 软件版本

a66f7e3e16c84ae48035100cbfe96a64.png

三、测试场景与结果

3.1 配置组合对自动切换的影响测试

3.1.1 场景一:确认监视器 + AUTO模式(标准高可用配置)

配置:dmwatcher.ini: DW_MODE = AUTO;dmmonitor.ini: MON_DW_CONFIRM = 1
故障模拟:杀掉主库数据库进程(kill -9 <dmserver_pid>)
预期结果:备库自动接管成为新主库
结果展示 执行前:
image.png
执行后:
image.png
实际结果:符合预期。确认监视器收到主库故障信息后自动接管集群,将备库切换为Primary模式,数据库服务持续可用
恢复验证:原主库重启后自动作为备库加入集群,数据同步正常

3.1.2 场景二:确认监视器 + AUTO模式,主库守护进程也故障

配置:同上
故障模拟:同时杀掉主库数据库进程和守护进程(kill -9 <dmserver_pid> <dmwatcher_pid>)
预期结果:备库自动接管
结果展示 执行前:
image.png
执行后:
image.png
实际结果:符合预期,确认监视器检测到主库完全不可用后,仍能完成自动切换
恢复验证:原主库实例与守护进程重新启动后,自动以备库身份加入集群

3.1.3 场景三:无确认监视器 + AUTO模式

配置:DW_MODE = AUTO,确认监视器关闭(MON_DW_CONFIRM = 0或无监视器)
故障模拟:杀掉主库数据库进程
预期结果:不会自动切换
结果展示 执行前:
image.png
执行后:
image.png
实际结果 符合预期。守护进程虽能检测到主库进程挂掉并自动拉起,但主备不会切换
说明 自动切换除需DW_MODE=AUTO外,还必须配置确认监视器且保持存活

3.1.4 场景四:确认监视器 + MANUAL模式

配置:DW_MODE = MANUAL, MON_DW_CONFIRM = 1
故障模拟:杀掉主库进程及主库守护进程
预期结果:不会自动切换
结果展示 执行前:
image.png
执行后:
image.png
实际结果:符合预期。集群维持在故障状态,需人工通过监视器执行Takeover命令手动切换
说明:MANUAL模式适用于需要严格管控切换流程的场景

3.1.5 测试结果汇总(配置组合)

82adc5f4aa6a4319801272f3a4e64179.png

3.3 监视器高可用性测试

fc7cbe0078e9408fbd3b1184652f44a5.png
注:均为AUTO+确认关系器

3.3.1 单实例确认监视器故障

场景描述:单实例确认监视器进程故障或服务器宕机
影响分析:无法继续进行集群的故障自动接管和备库故障确认,自动切换功能失效
结果展示:可参考3.1.3无确认监视器+AUTO模式
结论:单实例监视器存在单点故障风险,生产环境建议部署多实例确认监视器

3.3.2 多实例确认监视器自动选举

配置:3节点多实例监视器,基于RAFT协议实现
工作原理:多个监视器实例中只有一个作为确认监视器(主)提供服务,其余作为备监视器存在
故障模拟:主监视器节点故障
预期结果:自动从备监视器中选举新的主监视器
结果展示 执行前:
image.png
执行后:leader切换到mon3
image.png
实际结果:符合预期。系统自动完成选举,新的确认监视器继续提供服务
说明:多实例监视器实现了监视器自身的业务连续性

3.3.3 多实例监视器 + 数据库故障联动测试

场景:主监视器故障后,新选举的监视器检测到数据库节点异常
故障模拟:主监视器节点故障+主库故障
预期结果:自动从备监视器中选举新的主监视器+主备自动切换
结果展示:MON3可以正常执行切换
image.png
实际结果:符合预期。新主监视器自动将对应数据库节点升主,实现监视器和数据库服务的高可用联动
说明

3.3.4 超过半数确认监视器故障

场景:主监视器故障后,新选举的监视器检测到数据库节点异常
故障模拟:关闭MON1和MON2
预期结果:剩余监视器无法正常提供服务
结果展示:
image.png
实际结果:符合预期
说明:超过半数监视器关闭,剩余监视器无法正常提供服务,符合raft多数派原则

3.3.5 测试结果汇总

d52d43b35bf648e282507e1cdd886d88.png

dd126e65ddcd4ebbab8589389ce128f6.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服