GBase 8s 数据库切换分为自动切换、由CM控制的按FOC规则的切换、手工切换。
自动切换
全自动切换用于HAC集群中,由于集群只有两个节点,数据库相互之前进行状态检查,发现异常时,能按DRAUTO的配置方式进行自动切换。
在HAC集群中:
DRAUTO参数配置为2时
- 1,当出现主节点故障时,备节点将自动提升为主节点。原主节点可通过直接启动的方式加入HAC集群,并自动成为HAC集群的备节点(限制条件:主节点的逻辑日志没有覆盖掉原主节点故障时的逻辑日志,即未出现逻辑日志绕圈)。
- 2,当出现备节点与主节点网络超时,备节点也将自动升级为主节点。如果原主节点保持运行,当网络恢复时,会形成双主现象(即脑裂),主节点会要求原主节点关闭,由于脑裂已经形成,无法能过直接启动的方式恢复HAC集群,仅能通过重建HAC集群的方式进行恢复。
DRAUTO参数配置为1时
- 1,当出现主节点故障时,备节点将自动提升为标准节点。原主节点可通过直接启动的方式加入HAC集群,并自动成为HAC集群的主节点(限制条件:主节点的逻辑日志没有覆盖掉原主节点故障时的逻辑日志,即未出现逻辑日志绕圈),标准节点自动恢复为备节点。
- 2,当出现备节点与主节点网络超时,备节点也将自动升级为标准节点。如果原主节点保持运行,当网络恢复时,会形成双主现象(即脑裂),标准节点会要求原主节点关闭,由于脑裂已经形成,无法能过直接启动的方式恢复HAC集群,仅能通过重建HAC集群的方式进行恢复。
CM控制切换
CM控制切换适用于GBase 8s的SSC、HAC和RHAC中的任意一种或者多种集群组合中。CM与集群中的所有节点保持通讯,并于CM依据HA_FOC_ORDER的顺序进行状态切换。
由CM控制的切换中:
DRAUTO参数必须配置为3
- 1,当出现主节点故障时,CM按HA_FOC_ORDER指定的顺序选择优先级高的成为主节点。当主节点与原主节点的关系为SSC时,原主节点正常启动(oninit -vy),当主节点与原主节点的关系为HAC或者RHAC时,原主节必须通过物理恢复的方式,重新指定集群关系的方式加入集群(oninit -PHY)。
- 2,当出现备节点与主节点网络超时,按HA_FOC_ORDER指定的顺序选择优先级高的成为主节点当集群是SSC且有备用磁盘通讯时,通过磁盘通讯将原主节点关闭。当网络恢复时,会形成双主现象(即脑裂),当主节点与原主节点的关系为SSC时,原主节点正常启动(oninit -vy);当主节点与原主节点的关系为HAC或者RHAC时,原主节必须通过物理恢复的方式,重新指定集群关系的方式加入集群(主节点0备、原主节点物理恢复)。
人工切换
集群切换由人工控制,该情况下一般会与操作系统高可用性集群配合,由操作系统层高可用性集群主导控制。
DRAUTO参数配置为0
- 1,当出现主节点故障时,集群内各节点保持不变,手工在需要成为主节点的服务器上强制成为主节点(onmode -d make primary 服务名称 [force])。当主节点与原主节点的关系为SSC时,原主节点正常启动(oninit -vy);当主节点与原主节点的关系为HAC或者RHAC时,原主节必须通过物理恢复的方式,重新指定集群关系的方式加入集群(oninit -PHY)。
- 2,当出现节点与主节点网络超时,集群内各节点保持不变,手工在需要成为主节点的服务器上强制成为主节点(onmode -d make primary 服务名称 [force]),网络恢复时,原主节点关闭。当主节点与原主节点的关系为SSC时,原主节点正常启动(oninit -vy);当主节点与原主节点的关系为HAC或者RHAC时,原主节必须通过物理恢复的方式,重新指定集群关系的方式加入集群(主节点0备、原主节点物理恢复)
总体如下:
注:以上并未考虑所有情况。