KingbaseES V8R6集群运维案例之---主库执行物理备份恢复后clone备库后启动故障
案例说明:
KingbaseES V8R6集群在主库执行物理备份的恢复后,执行clone操作,创建备库;备库在启动数据库服务时,出现了“timeline 不兼容”故障,导致实例启动失败。
适用版本:
KingbaseES V8R6
一、问题现象
如下所示:前端反馈,主节点使用备份恢复后,重做了备机,启动的时候报timeline的问题,请问应该怎么处理一下?
二、问题分析
1、主库执行物理备份恢复
对于生产环境通过物理备份执行数据库恢复,在restore备份后,需要应用归档和在线wal日志,执行recovery操作;一般会在kingbase.auto.conf中配置restore_command参数读取归档日志,但是在主库恢复完成后,应该将kingbase.auto.conf中的restore相关参数清理后,再执行备库clone。如下图所示:
2、clone备库后启动数据库服务
在clone备库后,启动数据库服务,数据库启动在recovery状态,会从当前最近的检查点开始应用在线wal日志,执行recovery,一直到一致性状态后完成。
但是,如果在kingbase.auto.conf中有restore_command参数,将会从备库的归档中应用日志,将产生和检查点不一致的timeline错误,导致备库recovery失败,实例启动故障。
3、检查kingbase.auto.conf配置
检查发现在kingrestorese.auto.conf中有restore_command的配置,应该是在主库恢复完成后,没有清理文件中的restore相关参数,就执行了clone。
三、问题解决
注释掉了restore_command 也删掉了sys_wal 和archive_status下的history文件,可以启动了
四、问题总结
对于集群执行物理备份恢复的操作,请参考官方文档执行:
https://help.kingbase.com.cn/v8/highly/backup-restore/backup/sys-rman-5.html#id20