关键字:
数据库克隆、备库无法启动、人大金仓
问题描述
集群在克隆完成后,在启动克隆备库的时候报错,导致备库无法启动。报错信息如下:
[3508010] FATAL: the file “xxxxx/kingbase/data/db_rewind/status”exsits. Please excute “sys_rewind –D xxxx/kingbase/data –reset”to restore DATA before start database.
报错原因
集群在克隆时,在sys_basebackup数据库完成后,克隆节点信息已经注册到集群。如果没有暂停集群自动恢复功能情况下,该功能会通过rewind命令以复制文件块的方式保持主备库的数据同步。
在上述情况下,通过start命令去启动数据库时,发现备库rewind进程还在,认为数据库中的块还在被修改,这时start命令会报章节1所描述的错误,因为start命令不能启动一个正在修改的数据库。
处理方法
集群在克隆数据库前,需要暂停集群自动恢复功能,正确操作流程如下:
- 克隆前需要检查集群状态,需要在集群状态正常的情况进行克隆操作;
- 在主库执行命令repmgr service pause暂停集群自动恢复功能;
- 在克隆节点运行 repmgr standby clone命令进行克隆;
- 在克隆节点启动数据库后,执行repmgr standby register -F注册为备库
- 执行命令repmgr service unpause取消暂停
- 检查克隆节点是否加入集群
参考资料
《KingbaseES数据守护和读写分离集群使用手册》