【问题标题】:Postgresql postmaster takes very long time to startPostgresql postmaster 需要很长时间才能启动
【发布时间】:2016-01-23 04:30:22
【问题描述】:

我在 Postgres 9.1 中的情况是 我有一些正在运行的查询会占用大量内存,然后我立即重新启动了 Postgres。之后我使用 postmaster 重新启动它。

/usr/pgsql-9.1/bin/postmaster -p 5432 -D /var/lib/pgsql/9.1/data

但是卡了很长时间没有启动成功。

根据 Postgres 文档,当我们立即重新启动服务器时,它可能会阻止 postmaster 释放系统资源(例如,共享内存和信号量)。 那我现在该怎么办?还是等邮局局长开始?

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    很大程度上取决于您如何停止服务器。

    • 如果您kill -9postmaster 进程,所有正在使用资源的衍生进程(每个会话 1 个)继续运行,因此您的系统仍然过载。此外,postmaster 进程将其pid 写入集群数据目录中非常恰当地称为postmaster.pid 的文件(在您的情况下为/var/lib/pgsql/9.1/data)。当找到具有该名称的文件时,新的postmaster 进程无法启动,因此您应该删除该文件。总之,永远不要杀死postmaster
    • 如果您使用pg_ctlrc.d 脚本重新启动服务器,那么您的服务器上还有其他问题。如果可以,请重新启动服务器。

    在任何一种情况下,您都不应该通过手动运行postmasterstart the server。请改用rc.d 脚本或pg_ctl

    最后,9.1 变老了。考虑升级到具有更多功能的9.5

    【讨论】:

    • Postgres 启动时是否需要很长时间才能恢复? (使用rc.dpg_ctl
    • 是的,这也是一种可能。您可以在日志文件中检查是否是这种情况。
    猜你喜欢
    • 2013-11-15
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多