首页 文章

postgres有时在重启后无法启动

提问于
浏览
2

在升级到版本9.3.2自制程序后,我的postgres安装发生了一些奇怪的事情 .

有时而不是每次,如果我输入 psql 我收到此错误消息:

无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字“/tmp/.s.PGSQL.5432”上的连接?

似乎postgres正在运行,因为如果我尝试使用此命令停止postgres:

pg_ctl -D /usr/local/var/postgres stop -s -m fast

我收到了这个回复:

pg_ctl:服务器没有关闭

如果我查看 server.log ,我可以看到以下条目:

致命:锁定文件“postmaster.pid”已经存在提示:是否有另一个postmaster(PID 208)在数据目录“/ usr / local / var / postgres”中运行?

经过一些疯狂的谷歌搜索,我可以通过输入以下命令来解决这个问题:

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

我想首先了解正在发生的事情,其次我想一劳永逸地解决这个问题 .

任何人都可以解释可能发生的事情和治疗方法吗?

1 回答

  • 0

    首先,尝试在OSX(和使用PG 9.3)上提取PostgreSQL上的日志,这很可能会在这里:

    /Library/PostgreSQL/9.3/data/pg_log
    

    检查此日志,看看是否有任何内容可以解释更多正在发生的事情 . 将它贴在这里或过去的某个地方 . 这可以帮助社区调试问题 .

    接下来,'pg_ctl'表示服务器未关闭的原因是因为您有一个陈旧的套接字文件和/或过时的.plist文件,该文件在上次关闭时未被删除 . 这可能表明PostgreSQl守护程序被“崩溃”或被强制关闭并且没有干净的完成 .

    您使用的命令删除了过时的文件,从而创建了一个新的套接字文件 .

    此外,重要的是要知道这是PostgreSQL的次要升级还是重大升级 . 主要升级始终需要迁移数据目录 . 使用新引擎运行旧的PostgreSQL数据目录可能会产生意外结果 .

相关问题