Docker 中的 PostgreSQL 崩溃恢复记录

2020-12-18 14:56:14 浏览数 (1)

Docker 中的 PostgreSQL 崩溃恢复记录

在 Docker 中运行的 PostgreSQL 数据库突然无法启动, 错误日志类似这样:

代码语言:javascript复制
PANIC,XX000,"could not locate a valid checkpoint record",,,,,,,,,""
LOG,00000,"startup process (PID 24) was terminated by signal 6: Aborted",,,,,,,,,""
LOG,00000,"aborting startup due to startup process failure",,,,,,,,,""

这种情况多数情况下是在执行事务时, 数据库被强行关闭导致的, 修复的方法是:

  • 如果使用的 PostgreSQL 是 10.x 或更高的的版本, 使用 pg_resetwal DATADIR 来解决;
  • 否则使用 pg_resetxlog DATADIR 来解决;

由于数据库是在 Docker 中运行的, 因此需要按照 Docker 的方式来修复:

使用 pg_resetxlog 或者 pgresetwal 有可能会丢失数据, 启动之后, 需要仔细检查数据库的健康情况。 如果有数据库备份的话, 请尽快进行数还原。

更多请参考 PostgreSQL 的文档 https://www.postgresql.org/docs/current/app-pgresetwal.html

在客户端创建要素图层 (FeatureLayer)

没有了

0 人点赞