KingbaseES V8R6运维案例之---磁盘溢出导致数据库服务启动失败

案例说明:
因core文件导致磁盘满,数据库服务宕机,通过sys_ctl启动数据库服务无法启动,故障信息”无法找到有效的checkpoint”。

适用版本:
Kingbase V8R6

问题现象:
如下图所示,数据库服务无法启动,通过sys_log查看,出现“could not locate a valid checkpoint record'。

问题分析:
因为磁盘满,导致数据库在执行checkpoint时,更新控制文件时,写入检查点信息失败,当数据库启动时,无法从控制文件读取到最近有效的检查点信息,导致数据库服务启动失败,并且在clog文件存储事务的状态也失败。

问题解决:
通过sys_resetwal重建控制文件。(在关闭数据库状态下,做好data目录的备份,resetwal后将会有部分丢失,做好备份工作)。
sys_resetwal后启动故障信息:

使用dd命令创建一个clog文件
因为一个clog文件最大为256K,所以只需创建一个256K的文件即可。写入全0的文件,代表所有事务均在IN_PROGRESS状态。

状态标识   事务状态
0x00     TRANSACTION_STATUS_IN_PROGRESS
0x01     TRANSACTION_STATUS_COMMITTED
0x02     TRANSACTION_STATUS_ABsys_multixact/offsetsORTED
0x03     TRANSACTION_STATUS_SUB_COMMITTED

在sys_xact和sys_multixact/offsets下用dd创建名为‘0000’的文件,重启数据库服务,问题解决。

posted @   天涯客1224  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示