GaussDB(DWS)集群状态可不用,实例状态处于Promoting状态问题分析

举报
上官寒雨 发表于 2021/01/29 20:43:32 2021/01/29
【摘要】 GaussDB作为分布式集群,在单实例或单节点故障后能够正常提供服务,采用主备从架构模式,设计failover机制在主机故障后能够及时让备机升主接管业务保证可以正常对外提供服务。

备机升主背景

主机故障后,由cm_server下发failover消息,备机备机收到failover指令后启动升主流程,此时实例状态一直处于Promoting状态:连接从备同步数据,不需要与主机进行交互,数据同步完之后做redo然后升主成功接管业务。

触发场景                       

cm_server仲裁自动触发

failover切换流程

 

备机升主常见问题

场景一:与从备连接失败

【问题描述】

查看集群状态实例6045处于pending need repair 6046实例处于standby promotingimage.png

【问题分析】

查看dn6046日志报错如下:

image.png

查看从备3024日志报错

FATAL:  number of requested standby connections exceeds max_wal_senders (currently 4)

image.png

由于从备wal_sender槽位满导致无法正常建联。

【修复方案】

常见于651版本

1kill 从备释放wal_sender资源待从备实例被重新拉起后观察是否能够正常升主

2)若方法一未能让备机正常升主可强制让原主实例升主

注意做强制升主操作时必须确定对应实例之前是主实例,请联系华为工程师进行操作

手动停止promoting实例后执行以下命令

kill -9 pid;sleep 4; gs_ctl notify -M primary -D 原主实例路径

​场景二:与从备同步数据异常无法升主

【问题描述】

集群状态不可用,dn6019处于down startingdn6020处于 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


附:

GaussDB(DWS)高可用之数据复制

GaussDB(DWS)高可用之备机重建

GaussDB(DWS)高可用之主备从HA技术

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。