更新时间:2026-07-28 GMT+08:00
同城双中心计划内倒换switchover流程异常
问题现象
原因分析
- 现象三原因:
- 从最新的OM日志(最新的$GAUSSLOG/om/gs_om*日志)中关键字查询,判断是否切换失败,以及存在回滚。
- 根据查询的Error信息中的详细报错信息,或者$PGHOST目录的步骤文件do_dorado_switch.dat,可定位到具体快速倒换中的哪一步出现问题。
- 根据上一步定位出的失败原因,去对应的集群节点查看OM_Agent日志或者gs_log日志,获取到具体的失败原因。
- 现象四原因:
- 现象五原因:
在对应进程日志中搜索关键字“abort switchover”。若存在该关键字,表示因降备超时导致进程主动退出,属于正常现象,待进程被CM重新拉起即可。若未找到,则需要进一步排查日志确定原因。
处理方法
- 现象一处理方法:
- 等待主DN降为备DN成功。
- 重入switchover主降备流程。
- 现象二处理方法:
- 等待集群恢复normal或者degraded状态后。
- 重新执行switchover命令,进行重试。
倒换流程故障处理步骤:
- 通过cm_ctl工具确认集群是否完成倒换或者回滚,集群状态是否正常,异常节点可使用节点修复功能。
cm_ctl query -Cvp
主集群normal态示例:[ CMServer State ] node instance state ---------------------------------- 1 <IP> 1 Primary 2 <IP> 2 Standby 3 <IP> 3 Standby [ ETCD State ] node instance state ---------------------------------------- 1 <IP> 7001 StateFollower 2 <IP> 7002 StateLeader 3 <IP> 7003 StateFollower [ Cluster State ] cluster_state : Normal redistributing : No balanced : Yes current_az : AZ_ALL [ Coordinator State ] node instance state ---------------------------------- 1 <IP> 5001 <PORT> Normal 2 <IP> 5002 <PORT> Normal 3 <IP> 5003 <PORT> Normal [ Central Coordinator State ] node instance state ---------------------------------- 1 <IP> 5001 Normal [ GTM State ] node instance state sync_state ------------------------------------------------------------------ 1 <IP> 1001 P Primary Connection ok Sync 2 <IP> 1002 S Standby Connection ok Sync 3 <IP> 1003 S Standby Connection ok Sync [ 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 2 <IP> 6004 <PORT> P Primary Normal | 3 <IP> 6005 <PORT> S Standby Normal | 1 <IP> 6006 <PORT> S Standby Normal 3 <IP> 6007 <PORT> P Primary Normal | 1 <IP> 6008 <PORT> S Standby Normal | 2 <IP> 6009 <PORT> S Standby Normal
灾备集群normal态示例:
[ CMServer State ] node instance state ---------------------------------- 1 <IP> 1 Primary 2 <IP> 2 Standby 3 <IP> 3 Standby [ ETCD State ] node instance state ---------------------------------------- 1 <IP> 7001 StateFollower 2 <IP> 7002 StateLeader 3 <IP> 7003 StateFollower [ Cluster State ] cluster_state : Normal redistributing : No balanced : Yes current_az : AZ_ALL [ Coordinator State ] node instance state ---------------------------------- 1 <IP> 5001 <PORT> Normal 2 <IP> 5002 <PORT> Normal 3 <IP> 5003 <PORT> Normal [ Central Coordinator State ] node instance state ---------------------------------- 1 <IP> 5001 Normal [ GTM State ] node instance state sync_state ------------------------------------------------------------------ 1 <IP> 1001 P Primary Connection ok Sync 2 <IP> 1002 S Standby Connection ok Sync 3 <IP> 1003 S Standby Connection ok Sync [ Datanode State ] node instance state | node instance state | node instance state --------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 <IP> 6001 <PORT> P Standby Normal | 2 <IP> 6002 <PORT> S Standby Normal | 3 <IP> 6003 <PORT> S Standby Normal 2 <IP> 6004 <PORT> P Standby Normal | 3 <IP> 6005 <PORT> S Standby Normal | 1 <IP> 6006 <PORT> S Standby Normal 3 <IP> 6007 <PORT> P Standby Normal | 1 <IP> 6008 <PORT> S Standby Normal | 2 <IP> 6009 <PORT> S Standby Normal
- 倒换失败集群参数,使用gs_om工具进行查询。
gs_om -t dr_post_check -c [switchover|failover|query|restore] -m [primary|disaster_standby] --dr_type dorado_cluster
- 主集群相关参数:
- cmserver参数backup_open=0,dn_arbitrate_mode=quorum,cm_hadr_process_type=none。
- cmagent参数agent_backup_open=0,enable_auto_start=1,cm_hadr_process_type=none。
- etcd参数/xxxx/CMServer/backup_open=0。
- CN参数cluster_run_mode=cluster_primary,hadr_process_type=none,auto_csn_barrier=1,default_transaction_read_only=off。
- DN参数cluster_run_mode=cluster_primary,hadr_process_type=none,default_transaction_read_only=off。
- 灾备集群相关参数:
- cmserver参数backup_open=1,dn_arbitrate_mode=quorum,cm_hadr_process_type=none。
- cmagent参数agent_backup_open=1,enable_auto_start=1,cm_hadr_process_type=none。
- etcd参数/xxxx/CMServer/backup_open=1。
- CN参数cluster_run_mode=cluster_standby,hadr_process_type=none,auto_csn_barrier=0,default_transaction_read_only=off。
- DN参数cluster_run_mode=cluster_standby,hadr_process_type=none,default_transaction_read_only=off。
- 主集群相关参数:
- 后置接口若发现有未参与倒换、参数配置错误的实例,出现双灾备集群状态的极端场景,需人工介入修复。
- 故障节点经过硬件维修、上电等操作,重新加入集群。
该节点加入集群后,集群状态有可能显示为Normal,该节点上集群状态也有可能显示Normal,但该节点上集群的部分配置参数不正确,仍需要完成如下修复流程。
- 通过后置检查接口查询未参与容灾倒换的集群。
gs_om -t dr_post_check -c switchover -m primary|disaster_standby --dr_type dorado_cluster
- 使用cm_ctl stop停掉未参与容灾倒换的coordinator、datanode以及cm_server实例。
cm_ctl stop -n NODEID -D DATADIR
- 通过后置检查接口查询未参与容灾倒换的集群。
父主题: 常见问题