Postgresql Postgres错误无效的幻数0000

Postgresql Postgres错误无效的幻数0000,postgresql,foreman,Postgresql,Foreman,这是我在运行postgres时收到的错误消息 服务器。我已经搜索了互联网,试图找到一个解决方案 还重新安装了postgres,所以我别无选择,只能问一下 在这里 11:51:05 postgres.1 | LOG: database system was shut down at 2015-04-06 09:03:12 EDT 11:51:05 postgres.1 | LOG: invalid magic number 0000 in log segment 000000010000000

这是我在运行postgres时收到的错误消息 服务器。我已经搜索了互联网,试图找到一个解决方案 还重新安装了
postgres
,所以我别无选择,只能问一下 在这里

11:51:05 postgres.1 | LOG:  database system was shut down at 2015-04-06 09:03:12 EDT
11:51:05 postgres.1 | LOG:  invalid magic number 0000 in log segment 000000010000000000000040, offset 0
11:51:05 postgres.1 | LOG:  invalid primary checkpoint record
11:51:05 postgres.1 | LOG:  invalid magic number 0000 in log segment 000000010000000000000040, offset 0
11:51:05 postgres.1 | LOG:  invalid secondary checkpoint record
11:51:05 postgres.1 | PANIC:  could not locate a valid checkpoint record
11:51:05 postgres.1 | LOG:  startup process (PID 898) was terminated by signal 6: Abort trap
11:51:05 postgres.1 | LOG:  aborting startup due to startup process failure
11:51:05 postgres.1 | exited with code 1

您的数据库文件已损坏;有关建议和要采取的第一步,请参阅

特别是,PostgreSQL在启动时读取的事务日志已损坏。您可能希望调查这是如何发生的——要么是不可靠的硬件,要么是假装保存了数据的磁盘,而这些数据不太可能存在

如果数据库中没有您关心的数据(即,您只是将其用于开发),最简单的方法就是重置它

查找主要的postgresql数据库目录(可能是类似于
/var/lib/postgresql/…
)。您将在其中找到名为
base
global
<代码>pg_xlog。将主目录重命名为“something.OLD”,或者删除其中的所有内容如果删除内容,您将永久性地、不可恢复地销毁数据库及其内容,因此,只有在数据库中没有您关心的内容时才这样做

然后运行以重新创建数据库结构。然后,您将有一个新的空设置,可以重新开始。根据需要从备份中恢复数据库


如果这听起来很复杂,只需找到主目录并删除它,然后重新安装。安装程序应该为您重新创建结构。

在可疑的损坏情况下,请始终链接并强调在执行任何其他操作之前制作数据库的完整文件系统级副本的重要性。此外,“重新安装”ing通常不会重新创建数据库,至少在Ubuntu或Fedora上是如此。在Ubuntu上,您必须清除安装并删除datadir。在Fedora上,您必须运行
/usr/pgsql-9.4/bin/postgresql94安装程序
,因此卸载和重新安装没有意义。在执行任何其他操作之前,如果此数据库中有任何对您有价值的数据,请阅读并执行操作。复制数据库。您是否曾经在
postgresql.conf
中使用
fsync=off
运行过数据库?您的计算机最近是否发生崩溃或意外重新启动?你用的是哪种硬盘?什么操作系统和版本?你的PostgreSQL版本是什么?在这之前有什么不寻常的事情发生吗?我意外地重新启动了,OSX Yosemite 10.10.2,postgres是9.4,看起来没有什么不寻常的事情。但是我现在已经把问题解决了。