介绍使用基于流式复制的异地容灾解决方案可能遇到的常见问题,并提供故障处理步骤。
下表列出了不同操作中问题现象、原因、解决方案。
容灾搭建异常
表 容灾搭建错误信息参考
- 若灾备数据库实例搭建过程也失败了,需要先针对灾备数据库实例进行故障处理,再重入数据库实例容灾搭建流程。 | | 搭建容灾关系过程中,由于主集群内的主dn发生切换导致容灾搭建失败。 | 原因: 主集群的主dn发生切换,灾备集群连接主集群进行数据build时断连导致搭建失败。解决方案:- 确认是否有人为进行主集群内主备切换的操作,如果有则停止该操作,如果没有则忽略。重新下发搭建命令。 |
灾备升主failover异常
表 灾备升主failover错误信息参考
| 故障描述 | 原因和解决方案 |
|---|---|
| 灾备数据库实例有故障节点未参与灾备数据库实例升主。 | 原因: 因服务器宕机,网络中断等原因导致节点脱离灾备数据库实例,没有参与灾备数据库实例升主。解决方案:1. 故障节点修复后重新加入数据库实例。 |
-
修改CMS和CMA中关于数据库实例灾备模式的参数,切回主数据库实例配置。
gs_guc set -Z cmserver -N all -I all -c "backup_open = 0" gs_guc set -Z cmagent -N all -I all -c "agent_backup_open=0" gs_guc set -Z cmagent -N all -I all -c "disaster_recovery_type= 0" -
接入故障节点,查询CMS和CMA的进程ID,使用kill -9命令杀掉进程,然后进程会被om_monitor重启,完成CMS和CMA参数修改的生效。
-
手动修复改节点后使用cm_ctl start-n NODEID -D DATADIR。 |
计划内倒换switchover异常
表 计划内switchover错误信息参考
- 若多次执行switchover均出现日志截断失败,需进一步分析流式容灾相关日志文件。 | | Result exception error : Failed to do check switchover_barrier on all main standby dn and cn. Because check timeout: XXs | 原因: 在灾备数据库实例接收到计划内switchover命令,灾备数据库实例升为主数据库实例前会先在首备DN上查询是否收到一致性点switchover barrier,这是执行swichover的前提,用于保证主备数据库实例DN的日志停止在一致性点。由于异地网络异常等原因,灾备数据库实例在超时时间内无法获得switchover barrier将放弃执行本次计划内switchover。解决方案:- 等待主数据库实例执行switchover主降备命令超时退出后,计划内倒换switchover可在主数据库实例和灾备数据库实例重入执行。
- 若多次执行switchover灾备数据库实例均出现switchover barrier获取失败,需进一步分析流式容灾相关日志文件。 |
灾备集群数据库实例故障
开源社区地址: gitee.com/opengauss/o…
详情查看:opengauss.org 详情查看:docs-opengauss.osinfra.cn #openGauss