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’的文件,重启数据库服务,问题解决。
分类:
KingbaseES
标签:
kingbaseES
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」