PostgreSQL报错invalid primary checkpoint record的修复

最近又遇到这个错误,这种情况一般都是由于客户服务器断电等原因导致的, 因此网上搜索一堆修复方法, 总结了后, 打算写在这里, 由于我们的pgsql是运行在容器内, 因此这里写的命令均是容器内可以执行的。

下面是遇到的错误:

pgsql | 2020-01-18 16:14:06.418 CST [25] LOG: invalid primary checkpoint record

pgsql | 2020-01-18 16:14:06.418 CST [25] PANIC: could not locate a valid checkpoint record

如果在容器中, 使用下面命令进行挂载数据库 并执行命令行, 方便与我们执行后面的命令。 registry.uixe.net/images/postgres 是我的内网镜像地址,因此如果公网, 或者你自己私有镜像, 请替换为可用的 镜像名称。

docker run -it  -v /dbdata/postgresql:/var/lib/postgresql/data  registry.uixe.net/images/postgres   /bin/bash

使用su 切换至postgres用户便于执行 pg_resetwal

su postgrespg_resetwal -f /var/lib/postgresql/data

如果遇到

pg_resetwal: error: lock file “postmaster.pid” exists

pg_resetwal: Is a server running? If not, delete the lock file and try again

这种问题一般都是因为断电后, 没能来得及删掉进程导致的, 所以, 只能删除。 否则程序以为自己依然在运行状态。

删除命令如下:

 rm /var/lib/postgresql/data/postmaster.pid

然后回过头来再执行

pg_resetwal -f /var/lib/postgresql/data

重启后, 完美解决 。 应用正常运转。


转自:https://blog.csdn.net/mysticboy/article/details/106632923

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值