案例说明:
KingbaseES V8R6集群,在主库执行PITR恢复后,clone备库;但是启动集群后,备库无法连接到主库,流复制状态和集群节点状态异常。
适用版本:
KingbaseES V8R6
一、问题现象
如下图所示,集群备库节点状态和流复制异常:
二、问题分析
1、检查备库数据库服务状态
如下图所示,sys_log日志显示备库已经可以正常连接,通过ksql可以访问数据库。
2、备库执行repmgr standby follow注册上游节点(upstream)
如下图所示,备库执行“repmgr standby follow”成功,但是查看集群节点状态仍然异常。
如下图所示,集群节点状态:
3、执行repmgr standby register
在备库执行“repmgr standby register”后,集群节点状态仍然异常。
三、问题解决
1、重启备库数据库服务
在重启备库数据库服务时,发现启动失败,查看sys_log 日志:
---如上图所示,在备库的sys_log日志中发现事务恢复的日志信息,经与操作人员沟通,此集群主库先做过PITR的数据库恢复,然后做了备库的clone。
2、检查备库的kingbase.auto.conf文件
如下图所示,备库的kingbase.auto.conf文件中仍然包含有PITR恢复后的配置参数,导致数据库服务启动后就自动又执行了PITR的恢复,数据库服务启动失败。
Tips:
对于recovery的参数,应该在主库恢复完成后,启动数据库服务前将参数删除或注释,然后再执行备库的clone。
3、清理PITR恢复参数
将主备库下kingbase.auto.conf中的recovery相关参数注释或删除,重新启动备库数据库服务后,集群节点状态及流复制恢复正常。
四、总结
对于集群执行PITR的恢复,KingbaseES的官方文档有很好的解释和说明,大家可以参考。
https://help.kingbase.com.cn/v8/highly/backup-restore/backup/sys-rman-5.html#id20
以下为关键注意事项: