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

金仓数据库KingbaseES V8R6 集群运维案例-- sys_internal_init__文件引起sys_basebackup失败

数据猿 2023-05-22
263

案例说明:
KingbaseES V8R6集群执行‘repmgr standby clone’或sys_basebackup克隆备库时出现如下图相关sys_internal.init文件错误:
0.png

适用版本:
KingbaseES V8R6

一、关于sys_internal.init文件

sys_internal.init: 用于缓存系统表,加快系统表读取速度(每个用户创建的数据库目录下也有同名文件)。

二、查看KingbaseES数据库sys_internal.init文件

1)global目录下系统表cache文件
2.png

2)base目录下系统表cache文件
3.png

如上图所示,在global或base目录下都有系统表的cache文件sys_internal.init,对于此文件管理方式为:不管加载那个文件,完成相关信息初始化后如有必要将重写该文件。
重写时先写临时文件,写完后改文件名为正式文件。这样做是为了避免并发的后台进程读相关文件时崩溃。文件"data/global/sys_internal.init",对应的临时文件名是"data/global/sys_internal.init.pid",最后的"pid"是当前进程ID。

如下图所示,在备库克隆过程中读取到了sys_internal.init的临时文件,导致clone失败。

4.png

3)查看主库下sys_internal.init临时文件
5.png

三、问题解决方案

sys_internal.init.pid,是sys_internal.init文件在写入时,产生的临时文件,写入成功后会改名为正式文件,此文件的存在有可能是数据库系统非正常关机导致临时文件没有被及时清理所致,可以通过手工方式将此类文件删除。删除此类文件后,重新执行备库的clone,clone成功。
6.png

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

评论