openGauss相关概念12
故障处理
介绍使用基于流式复制的异地容灾解决方案可能遇到的常见问题,并提供故障处理步骤。
下表列出了不同操作中问题现象、原因、解决方案。
容灾搭建异常
表 容灾搭建错误信息参考
故障描述
原因和解决方案
容灾搭建中主数据库实例执行容灾搭建返回如下错误,执行超时
Result exception error : Failed to do check main standby connection. Because Waiting timeout: XXs。
原因:在主数据库实例数据量较大,或者异地网络带宽较小时,可能会出现灾备数据库实例未完成数据拷贝,主数据库实例就已经超时退出容灾搭建流程的情况。
解决方案:
若灾备数据库实例处于搭建过程中或者搭建已完成,可直接重入主数据库实例容灾搭建流程,主数据库实例会重新进入等待灾备连接状态。若能重新设置超时参数,可根据主数据库实例数据量大小与异地网络带宽,重新估算超时时间后再执行重入。
若灾备数据库实例搭建过程也失败了,需要先针对灾备数据库实例进行故障处理,再重入数据库实例容灾搭建流程。
搭建容灾关系过程中,由于主集群内的主dn发生切换导致容灾搭建失败。
原因:主集群的主dn发生切换,灾备集群连接主集群进行数据build时断连导致搭建失败。
解决方案:
确认是否有人为进行主集群内主备切换的操作,如果有则停止该操作,如果没有则忽略。重新下发搭建命令。
灾备升主failover异常
表 灾备升主failover错误信息参考
故障描述
原因和解决方案
灾备数据库实例有故障节点未参与灾备数据库实例升主。
原因:因服务器宕机,网络中断等原因导致节点脱离灾备数据库实例,没有参与灾备数据库实例升主。
解决方案:
故障节点修复后重新加入数据库实例。
修改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 generate switchover barrier before switchover
原因:在主数据库实例接收到计划内switchover命令,主数据库实例降为灾备数据库实例前会先产生一致性点switchover barrier,这是执行switchover的前提,用于保证主备数据库实例所有DN分片的日志停止在一致性点。由于主数据库实例内网络抖动等原因导致主数据库实例内产生switchover barrier失败将放弃本次计划内switchover。
解决方案:
等待灾备数据库实例执行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获取失败,需进一步分析流式容灾相关日志文件。
灾备集群数据库实例故障
表 灾备集群数据库实例错误信息参考故障描述
故障描述
原因和解决方案
灾备集群节点CM_AGENT故障。该节点上DN实例状态显示为Unknown;部分首备显示Main Standby Need repair(Connecting)。
原因:节点CM_AGENT发生故障
该节点上DN状态无法上报CM_SERVER,DN实例显示为Unknown。
若该节点上存在首备实例(Main Standby),则会触发首备切换。由于原首备实例并无异常,并与主数据库实例主DN存在正常流复制关系,而主数据库实例该分片主DN只允许一个首备的连接,导致新首备无法连接到主集群分片主DN,实例状态显示为Main Standby Need repair(Connecting)。
解决方案:
等观察灾备集群的CM_AGENT告警信息“ALM_AI_AbnormalCMSProcess”,并尝试修复发生故障的CM_AGENT。故障排除后新首备的连接可恢复。
若如果故障的CM_AGENT短时间内无法修复,执行gs_ctl stop -D DATADIR命令或者kill命令手动停止该节点上的DN进程,可恢复。
https://opengauss.org/zh/

浙公网安备 33010602011771号