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

人大金仓 金仓数据库KingbaseES 集群原主自动故障恢复时所需wal日志不存在场景下的手动恢复

数据猿 2023-08-16
487

金仓数据库KingbaseES 集群原主自动故障恢复时所需wal日志不存在场景下的手动恢复

关键字

wal日志被清理,sys_rewind失败,故障恢复

问题描述

集群原主故障,由于恢复所需wal日志已被清理导致原主sys_rewind或启动数据库失败。

场景示例:

一主一备集群,原主断网/掉电,备机升主后新的业务持续下发,新的wal日志持续生成。待原主重新断网恢复/上电后,自动恢复到集群时可能会存在sys_rewind过程中或启动数据库过程中因缺少所需wal日志执行失败。

file

问题分析

原主下电时间过久,新主上的新业务持续生成wal日志,达到wal_keep_segements设定值后,由于新主上无复制槽,新主会清理对于新主来说不再使用的wal日志。

原主断网/掉电恢复后,新主监测到原主可以连接后开始执行恢复操作。新主通过sys_rewind拷贝差异的数据文件和wal日志到本节点,在启动数据库做redo时发现当前的wal日志不完整,redo所需的wal日志存在缺失,数据库无法启动。

解决方案

  • 预防性方案

可以调整集群wal_keep_segments参数值为一个较大的值,集群节点下电或断网期间,主机能保留更多的wal日志来支撑之后备机恢复动作。

  • 问题解决方案

备机sys_rewind或启动数据因wal日志被清理而失败的场景下,可以通过重做备机来完成备机的恢复。

1)在主库数据库bin目录下执行./repmgr service pause

file

file

2)在故障的数据库bin目录下执行./repmgr standby clone -h 主库ip -Uesrep -p数据库端口号 –F

3)在故障数据库bin目录下启动数据库

./sys_ctl -D /home/lcj/cluster/kingbase/data/ start

file

  1. 在主库数据库bin目录下执行./repmgr service unpause

file

5)在主句数据库bin目录下执行./repmgr cluster show确认集群状态是否恢复正常

file

更多信息,参见https://help.kingbase.com.cn/v8/index.html

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

评论