修复postgre的检查点文件
在 CentOS 下使用 docker 安装的 PostgreSQL 由于系统异常启动,导致 检查点文件(replorigin_checkpoint)损坏,无法启动数据库。
这里记录一下相关提示及修复步骤。
相关报错如下
找不到检查点的报错
1 | find: ‘/var/lib/postgresql/data/pg_logical/replorigin_checkpoint’: No such file or directory |
检查点的的文件情况显示
1 | -????????? ? ? ? ? ? replorigin_checkpoint |
docker日志
1 | 2024-11-29 12:54:31.996 UTC [1] LOG: starting PostgreSQL 13.5 (Debian 13.5-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit |
相关恢复方法
BASH
1 | # 因为 postgresql 是安装在 Docker 中的,从系统中修复,并没有安装相关数据库命令 |
pg_resetwal 的一些解释
这个命令用于重置 PostgreSQL 的 Write-Ahead Log (WAL) 目录。WAL 是 PostgreSQL 用于确保数据完整性和可靠性的一个重要机制。它记录了所有数据库的修改操作,以便在发生故障时能够进行恢复。
使用 pg_resetwal 命令可以执行以下操作:
- 清空
WAL目录中的所有文件。这可以用于在数据库出现问题时,手动重置WAL以便重新启动数据库。 - 重置
WAL的元数据信息,如日志序列号、检查点位置等。这有助于修复WAL相关的问题,比如在数据库崩溃或者恢复过程中出现的错误。
通常情况下,您只需要在数据库出现严重问题,无法正常启动时使用这个命令。它可以帮助您强制重置 WAL 目录,从而允许数据库重新启动。
但请注意,使用 pg_resetwal 命令会丢失最近的一些事务日志,因此可能会导致数据丢失。因此,在使用这个命令之前,请务必先备份您的数据库。
- 本文标题:修复postgre的检查点文件
- 创建时间:2024-12-01 17:57:26
- 本文链接:https://blog.212490197.xyz/article/tools/postgre/repair-postgre-checkpoint/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
评论