postgresql - Postgres 错误无效魔数(Magic Number) 0000

标签 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 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

最佳答案

您的数据库文件已损坏;见"Corruption" on the PostgreSQL wiki寻求建议和第一步。

特别是,PostgreSQL 在启动时读取的事务日志已损坏。您可能希望调查这是如何发生的 - 要么是不可靠的硬件,要么是一个磁盘假装保存了数据,但实际上并没有。

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

找到主要的 postgresql 数据库目录(可能像 /var/lib/postgresql/... 这样的地方)。您会在其中找到名为 baseglobal、... pg_xlog 的目录。将该主目录重命名为“something.OLD”或删除其中的所有内容。 如果您删除内容,您将永久且不可恢复地破坏您的数据库及其内容,因此只有在您不关心任何内容时才这样做。

然后运行sudo -u postgres initdb -D /path/to/main/dir重新创建数据库结构。然后您将拥有一个新的空设置并可以重新开始。根据需要从备份中恢复数据库。

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

关于postgresql - Postgres 错误无效魔数(Magic Number) 0000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29496020/

相关文章:

java - 如何安全地终止已超时的查询

ruby - 如何与工头一起运行多个 bundle 的多个应用程序

ruby - 调试工头用byebug启动了app。远程调试连接但是没有提示

Python (django) 环境变量

python - 使用python将数据从csv复制到postgresql

spring - CAS 数据库身份验证不起作用

java - 如何在参数化选择查询 where IN 子句中传递逗号分隔的 UUID

sql - PostgreSQL 中的产品聚合

ruby-on-rails - 地址已在使用 - bind(2) 用于 "0.0.0.0"端口 3000 (Errno::EADDRINUSE)

ruby-on-rails - Faye 服务器不是由工头启动的