暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss 对 DN 进行重建过程中重启集群,导致集群启动状态异常

原创 墨天轮 2020-11-12
885

问题现象

在一主多备集群或主备从集群部署模式下,对某一DN进行了重建,在此过程中,重启 集群,该DN状态为Pending Starting,其余DN状态为Pending Need Repair,无法仲 裁出主备,状态为Pending Starting的DN报出大量无法接受业务连接的日志。

redo minRecoveryPoint at 2/321C31C0; backupStartPoint at 1/C13075B0; backupEndRequired FALSE LOG:  redo starts at 1/C5F9D820 LOG:  invalid record length at 2/2170F700: wanted 32, got 0 FATAL:  the database system is starting up FATAL:  the database system is starting up FATAL:  the database system is starting up ...

原因分析

  • 步骤1 集群启动过程中,所有DN状态是Pending Starting。首先对已有xlog进行REDO,日志 分析发现问题DN已经REDO到了后一条xlog record,依然没有达到ControlFile里的 小恢复点MinRecovery Point

  • 步骤2 问题DN在该场景下,无法在REDO过程中通过CheckConsistency检查,无法发信号给 PostMaster主线程,进行PM状态机迁移。

  • 步骤3 集群是以归档恢复模式启动的,由于状态机无法正常迁移,因此DN无法接受连接, CM Agent无法将DN的状态设置成Pending Need Repair。

  • 步骤4 在该问题场景下,CM Server无法仲裁出DN的主备,导致DN的REDO线程一直循环, 无法接收外部业务请求,报错信息显示如下: FATAL : the database system is starting up。

    ----结束

处理办法

  • 步骤1 kill处于Pending Starting状态的DN进程,即剔除DN;

  • 步骤2 等待其他处于Pending Need Repair状态的DN仲裁出主备,恢复到Primary Normal或 Standby Normal状态;

  • 步骤3 对问题DN做全量重建,待其重建成功则问题修复,执行的全量重建命令如下: cm_ctl build -n NODEID -D DATADIR -b full NODEID是节点ID,DATADIR是待重建DN的数据目录。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

文集目录
暂无数据