双中心容灾
更新时间:2024-07-01 14:39:43
概述
当主中心不能使用时,副中心将全面接管成为新的主中心。备中心升级为主中心有两种方式是:zone failover 和 zone switchover,两者使用场景不同。但是执行下面的命令之前,需要在 mgr 上关闭 doctor。命令如下:
stop doctor;
zone failover:主中心节点 down,不能恢复,导致主中心不可用的时候,执行此命令,则副中心升级为主中心,原主中心的节点则不再继续服务。
zone switchover:用于临时切换主副中心,即主中心降为备中心,备中心升级为主中心,所有节点仍旧在集群中运行。
提升副中心 ADBMGR
mgr_ctl promote -D /home/antdb/smgr
主备中心故障切换
在备 mgr 上执行:
zone failover zone2;
failover 切换后原主中心的节点会以 slave 的形式留在集群中,但是状态是未初始化和不在集群中。
新的主中心如下,相应节点已经升级为 master:
antdb=# list node zone zone2;
name | host | type | mastername | port | sync_state | path | initialized | incluster | readonly | zone
----------+------------+--------------------+------------+-------+------------+-----------------------------------+-------------+-----------+----------+-------
gszone2 | localhost2 | gtmcoord master | | 6775 | | /home/shan2/pgdata_xc/sgc | t | t | f | zone2
sc0zone2 | localhost2 | coordinator master | | 4338 | | /home/shan2/pgdata_xc/coord/s0 | t | t | f | zone2
sc1zone2 | localhost1 | coordinator master | | 4338 | | /home/shan2/pgdata_xc/coord/s1 | t | t | f | zone2
ds1zone2 | localhost4 | datanode master | | 24335 | | /home/shan2/pgdata_xc/datanode/s1 | t | t | f | zone2
ds0zone2 | localhost3 | datanode master | | 14335 | | /home/shan2/pgdata_xc/datanode/s0 | t | t | f | zone2
(5 rows)
主备中心非故障切换
在备 mgr(当前已经升级为主 mgr)上执行。注意,执行 zone switchover 执行,必须先关闭 doctor,即执行 stop doctor 命令,否则有可能切换失败。当 gtmcoord 或者 coordinator 有活跃连接的时候,执行 zone switchover 可能会失败,可以通过加 force 参数来强制切换。具体如下:
zone switchover zone2;如果有活跃连接,默认等待10s,等待连接结束,如果10s后,还有活跃连接,切换失败;
zone switchover zone2 30;如果有活跃连接,等待30s,等待活跃连接结束,如果30s后还有活跃连接,切换失败;
zone switchover zone2 force;如果有活跃连接,默认等待10s,等待连接结束,如果10s后,还有活跃连接,强制切换;
zone zone switchover force 30;如果有活跃连接,等待30s,等待连接结束,如果30s后,还有活跃连接,则强制切换;
问题反馈