Postgresql 无法在 Ubuntu 16.04 上启动,卡在执行复制槽检查点

Postgresql 无法在 Ubuntu 16.04 上启动,卡在执行复制槽检查点

我们已经在 Ubuntu 16.04 DigitalOcean servlet 上使用 PostgreSQL 9.5 实例一段时间了。数据库今天早些时候崩溃了,我们无法再重新启动集群。

尝试使用 PSQL 连接将导致致命:数据库正在启动错误消息

清单systemctl | grep postgresql列出了三个对象。

postgresql.service (loaded active running)
[email protected] (loaded failed failed)
system-postgresql.slice (loaded active active)

ps aux | grep postgres向我展示了不可中断的 postgres 恢复过程。由于我无法终止此过程,我决定禁用启动 (update-rc.d postgresql disable) 并重新启动机器 (硬重启)。

服务器启动时没有启动 Postgresql 进程,我们在启用调试的情况下以 --single 模式手动启动 postgresql 二进制文件。

2017-07-31 23:40:58 UTC [3170-1] DEBUG:使用 MAP_HUGETLB 的 mmap 失败,大页面已禁用:无法分配内存

2017-07-31 23:40:58 UTC [3170-2] 日志:数据库系统在 2017-07-31 23:27:31 UTC 恢复过程中中断

2017-07-31 23:40:58 UTC [3170-3] 提示:这可能意味着某些数据已损坏,您必须使用最后的备份进行恢复。

2017-07-31 23:40:59 UTC [3170-4] DEBUG:检查点记录位于 1A2/E1605038

2017-07-31 23:40:59 UTC [3170-5] DEBUG:重做记录位于 1A2/E1605038;关闭 FALSE

2017-07-31 23:40:59 UTC [3170-6] DEBUG:下一个事务 ID:0/54203;下一个 OID:5501456

2017-07-31 23:40:59 UTC [3170-7] 调试:下一个 MultiXactId:1;下一个 MultiXactOffset:0

2017-07-31 23:40:59 UTC [3170-8] DEBUG:最早解冻的事务 ID:654,位于数据库 1 中

2017-07-31 23:40:59 UTC [3170-9] DEBUG:最旧的 MultiXactId:1,在数据库 57814 中 2017-07-31 23:40:59 UTC [3170-10] DEBUG:提交时间戳 Xid 最旧/最新:0/0

2017-07-31 23:40:59 UTC [3170-11] DEBUG:事务 ID 换行限制为 2147484301,受 OID 1 的数据库限制

2017-07-31 23:40:59 UTC [3170-12] DEBUG:MultiXactId 包装限制为 2147483648,受 OID 为 57814 的数据库限制

2017-07-31 23:40:59 UTC [3170-13] 调试:启动复制槽

2017-07-31 23:40:59 UTC [3170-14] LOG:数据库系统未正确关闭;自动恢复正在进行中

2017-07-31 23:40:59 UTC [3170-15] 严重:无法打开目录“/var/run/postgresql/9.5-main.pg_stat_tmp”:没有此文件或目录

我创建了缺失的 pg_stat_tmp 目录并重新启动了该进程。现在挂起几个小时,调试:执行复制槽检查点。我不知道这是否仍在起作用,并且找不到有关此操作的任何详细信息。

相关内容