数据库损坏001:PANIC:could not locate a valid checkpoint record
报错信息

数据导出及备份
如果之前使用Docker运行数据库时数据文件没有映射出来,现在第一步就需要将数据导出来
在主机创建数据目录
mkdir /home/xxx/postgres/data
将容器保存成镜像进行备份
docker commit [容器ID] xxx-pgsql-backup-20250727
导出数据文件
sudo docker cp [容器ID]:/var/lib/postgresql/data /home/xxx/postgres/data
备份数据文件以防在修复时产生进一步的损坏
tar -zcvf xxx-database-data.tar.gz /home/xxx/postgres/data/
解决方案
由于当前Docker镜像已经无法启动,所以要创建一个新的镜像,将这个数据目录随便映射到镜像中的一个目录中,然后启动镜像。
切换用户
su postgres
使用pg_resetwal修复WAL文件
==注意==
pg_resetwal 会重置 WAL 日志,可能导致未提交的事务丢失。
pg_resetwal -f /var/lib/postgql/data
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果