GBase 8s 数据库集群切换及恢复

发布时间:2026-06-18

GBase 8s 数据库切换分为自动切换、由 CM 控制的按 FOC 规则的切换以及手工切换三种方式。本文将系统梳理各切换方式的核心机制、配置参数及恢复策略,帮助 DBA 在实际运维中做出正确决策。

一、自动切换(双节点 HAC 专用)

该模式仅适用于由两个节点构成的 HAC 环境。两个实例持续互相探测状态,一旦检测到异常,即依据 DRAUTO 参数值执行预设动作。

前置要求:DRAUTO 设为 1 或 2。

1.1 DRAUTO = 2

1.2 DRAUTO = 1

脑裂共性:无论 DRAUTO 取 1 还是 2,一旦因网络超时触发切换且原主仍在运行,恢复通信后将形成双主。此时新主会强制关闭旧主,旧主无法通过简单启动重新加入,必须重建整个 HAC。

约束共性:原主节点直接拉起即可恢复的前提是主节点的逻辑日志没有覆盖掉原主节点故障时的逻辑日志,即未发生日志绕圈。

二、CM 控制切换(多集群组合通用)

CM 适用于 SSC、HAC、RHAC 的单一或混合部署。CM 维护与所有节点的通信,并依照 HA_FOC_ORDER 列表的优先级决定接管顺序。

前置要求:DRAUTO 设为 3。

2.1 主节点故障场景

CM 按HA_FOC_ORDER指定的顺序将优先级最高的可用节点提升为主。原主节点的恢复路径取决于原主与新主的集群类型:

  • SSC 关系:正常启动 oninit -vy 即可重新加入。

  • HAC / RHAC 关系:必须执行物理恢复 oninit -PHY,并重新指定集群关系。

2.2 网络超时场景

CM 同样按优先级选举新主。若集群为 SSC 且配置了磁盘心跳,CM 可通过磁盘通道强制关闭原主,避免脑裂。网络恢复后,原主节点的恢复路径同样取决于原主与新主的集群类型:

  • SSC 关系:原主正常启动 oninit -vy。

  • HAC/RHAC 关系:原主需依靠新主的0备执行物理恢复(ontape -p)后,重新建立主备关系。

三、人工切换(配合 OS 高可用集群)

集群切换由人工控制,GBase 8s 本身不自动触发任何动作。该情况下一般会与操作系统高可用性集群配合,将切换决策权交给操作系统层高可用集群。

前置要求:DRAUTO 设为 0。

3.1 主节点故障

集群内所有节点保持当前状态不变。管理员在目标服务器上手工强制提升:

onmode -d make primary <服务名> [force]

原主节点恢复方式:

  • SSC 关系:oninit -vy 正常启动。

  • HAC / RHAC 关系:oninit -PHY 物理恢复并重新指定集群关系。

3.2 网络超时

集群内所有节点保持当前状态不变,手工在需要成为主节点的服务器上执行    onmode -d make primary 强制提升。网络恢复后,原主自动关闭。
原主节点恢复方式:

  • SSC:oninit -vy。

  • HAC/RHAC:新主执行0备后,原主物理恢复并重新指定集群关系。

四、三种模式横向对比

注:上述结论基于典型场景,生产环境中存在未覆盖的边界情况。

五、运维建议

按需选择 DRAUTO

  • 简单双节点高可用 → 自动切换(1/2)

  • 复杂多集群组合 → CM 控制(3)

  • 已有 OS 集群编排 → 人工切换(0)

监控逻辑日志HAC 自动切换后,原主直接启动的前提是日志未绕圈。建议监控日志,避免恢复失败。

防范网络分区脑裂多由网络超时触发。SSC 场景建议启用磁盘心跳;HAC/RHAC 场景建议部署冗余网络链路。此外,部署 hac_alline、cluster_alline 配套组件,能够有效规避脑裂现象。

熟记恢复命令差异SSC 与 HAC/RHAC 的恢复路径截然不同。HAC/RHAC 几乎总是需要物理恢复,需预留恢复窗口。