GaussDB(DWS)集群状态可不用,实例状态处于Promoting状态问题分析
备机升主背景
主机故障后,由cm_server下发failover消息,备机备机收到failover指令后启动升主流程,此时实例状态一直处于Promoting状态:连接从备,同步数据,不需要与主机进行交互,数据同步完之后做redo然后升主成功接管业务。
触发场景
cm_server仲裁自动触发
failover切换流程
备机升主常见问题
场景一:与从备连接失败
【问题描述】
查看集群状态实例6045处于pending need repair 6046实例处于standby promoting
【问题分析】
查看dn6046日志报错如下:
查看从备3024日志报错
FATAL: number of requested standby connections exceeds max_wal_senders (currently 4):
由于从备wal_sender槽位满导致无法正常建联。
【修复方案】
常见于651版本
1)kill 从备释放wal_sender资源待从备实例被重新拉起后观察是否能够正常升主
2)若方法一未能让备机正常升主可强制让原主实例升主
注意做强制升主操作时必须确定对应实例之前是主实例,请联系华为工程师进行操作
手动停止promoting实例后执行以下命令
kill -9 pid;sleep 4; gs_ctl notify -M primary -D 原主实例路径
场景二:与从备同步数据异常无法升主
【问题描述】
集群状态不可用,dn6019处于down starting,dn6020处于 standby promoting状态
【问题分析】
查看dn6020日志提示与从备存在日志分叉:
FATAL: invalid crc on secondary standby, has xlog, standby promote failed
【修复方案】
在从备实例目录下pg_xlog文件删除该xlog文件(将该文件移到其他路径)
注意该方式可能造成数据丢失,是一种有损恢复方式,操作前必须与客户达成一致。
注意:与从备同步数据太多会导致升主较慢。
场景三:redo慢导致升主不成功
此场景参考实例redo场景。
https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=75275
附:
- 点赞
- 收藏
- 关注作者
评论(0)