Postgres 启动失败,pg_clog 失败

Postgres 启动失败,pg_clog 失败

最近,一台运行 Postgres 的机器磁盘空间不足。在删除一些垃圾文件(不相关的无论如何,Postgres 都无法启动!我重启了系统,但之后 Postgres 却拒绝启动。日志如下:

LOG:  database system was not properly shut down; automatic recovery in progress
LOG:  record with zero length at 4/E7000288
LOG:  redo is not required
FATAL:  could not access status of transaction 2718420992
DETAIL:  Could not open file "pg_clog/0A20": No such file or directory.
LOG:  startup process (PID 11496) exited with exit code 1

我在 Google 上搜索了一下,发现只能创建一个 256k 大小的零填充文件pg_clog/0A20。不幸的是,这并不能解决问题,因为现在它会抱怨以下内容:

2013-09-18 10:29:58 CEST FATAL:  could not access status of transaction 2718420992
2013-09-18 10:29:58 CEST DETAIL:  Could not open file "pg_clog/0A20": No such file or directory.

最重要的对我来说就是让它运行起来尽快再次,我不在乎丢失未完成的交易,但是我不能丢失存档数据(即系统用尽磁盘空间之前收集的数据)。

答案1

pg_resetxlog是为这种情况而设计的。请阅读其手册页,其中包含重要详细信息。

相关内容