GaussDB-主备切换
操作场景
可以通过容灾主备切换,将容灾关系中主实例和灾备实例灾备关系互换,原来的主实例变为灾备实例,原来的灾备实例变为主实例。
容灾主备切换命令不会解除容灾关系。
前提条件
- 已成功建立容灾。
- 容灾主实例与灾备实例的状态都处于正常。
约束限制
-
在无数据丢失RPO=0,RTO<=20分钟(包含主实例降为灾备实例、灾备实例升主两个流程),没有日志积压(即容灾监控指标RPO<= 10秒,RTO<=1秒),sequence个数少于10,主实例与灾备实例均处于normal状态,且打开快速倒换模式的情况下,启动容灾倒换可在内核时间60s内完成倒换。
当主实例与灾备实例异构且CN数量不一致,倒换完成之后,CN数量多的实例会以degraded态退出。在有日志积压(即容灾监控 指标RPO>10秒,RTO >1秒),日志传输、日志回放会增加容灾倒换的耗时,无法实现规格内的倒换。
- 容灾倒换过程中,容灾的两个实例的备份恢复和实例升级前端功能入口将暂时屏蔽,倒换结束后会放开。
- 当主实例与灾备实例CN数不一致,倒换完成后,CN多的实例可能会有节点状态为异常,CN的状态会显示down、building、deleted等状态。如果CN自动修复(cma参数enable_cn_auto_repair,on打开,off关闭)打开,实例可自动恢复,否则需要使用节点修复,修复对应节点CN。
- 倒换前主实例或灾备实例存在异常节点,倒换完成后,需要对异常节点进行节点修复。
操作步骤
-
单击“容灾管理”,进入“容灾管理”页面。
-
单击“操作 > 主备切换”。
图1 主备切换
-
单击“确定”,进入任务中心,可查看容灾倒换的进度详情。
执行成功后,“任务状态”为“正常”,容灾关系的主实例与灾备实例灾备关系对调。
结果检查
-
检查页面显示的实例状态和后台实际实例状态是否一致。
- 以Ruby用户登录待查看节点。
- 执行以下命令,查询主实例与灾备实例状态。
cm_ctl query -Cvp
主实例normal态回显:
[ Datanode State ] node instance state | node instance state | node instance state --------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 <IP> 6001 <PORT> P Primary Normal | 2 <IP> 6002 <PORT> S Standby Normal | 3 <IP> 6003 <PORT> S Standby Normal灾备实例normal态回显:
[ Datanode State ] node instance state | node instance state | node instance state ------------------------------------------------------------------------------------------------------------------------------------------------------------ 1 <IP> 6001 <PORT> P Main Standby Normal | 2 <IP> 6002 <PORT> S Cascade Standby Normal | 3 <IP> 6003 <PORT> S Cascade Standby Normal -
执行以下命令,检查主实例与灾备实例容灾状态。
gs_ssh -c "cat $PGHOST/.hadr_cluster_stat"
预期内灾备关系与状态:
主实例:archive
灾备实例:recovery
-
检查是否存在倒换相关状态文件残留。
更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…