gpt4 book ai didi

Postgresql 查询没有终止,重启后服务 postgresql 没有启动

转载 作者:行者123 更新时间:2023-11-29 11:36:52 26 4
gpt4 key购买 nike

在我的工作中,我运行了一个复杂的查询。我昨天取消了它并回家了。今天早上在后台无法终止查询,同样具有“终止后端”功能。我的一位同事重新启动了安装 postgres 的主机。机器重启后,postgres 数据库服务器无法启动。

在我的日志文件中,我看到错误:

'pg_ctl: this data directory appears to be running a pre-existing postmaster'

我不确定如何处理这个问题。我可以尝试修复它或尝试从保存文件中推断数据。最合乎逻辑的步骤是什么?您知道如何解决这个问题吗?

早些时候它给出了这个错误信息:

2016-01-28 15:52:33 GMT FATAL: lock file "postmaster.pid" already exists
2016-01-28 15:52:33 GMT HINT: Is another postmaster (PID 2100) running in data directory "C:/PostgreSQL/9.1/data"?

更新...我找到文件 postmaster.pid 并将其删除。现在我正在重新启动计算机并希望它能够启动。

更新...现在可以使用了。我重新启动了计算机,postgres 立即启动了。小时候快乐,但同时又不完全满意,因为以下论坛:https://superuser.com/questions/553045/fatal-lock-file-postmaster-pid-already-exists .这里声明永远不要删除 postmaster.pid 因为可能的数据损坏。因此,我现在将备份我在 postgres 中的所有数据库。

因此,如果有人能分享更多关于我今天的 ICT 冒险经历的信息,我将非常满意。这就是为什么我不会说这个问题已经回答了,因为我不知道出了什么问题,也许有一天会再次遇到它。

最佳答案

解释很简单。 PostgreSQL 将进程 ID 写入一个名为 postmaster.pid 的文件——该文件的存在应该表明服务器正在运行。当 PostgreSQL 完全关闭时,它会删除 postmaster.pid 文件。

但是,当您的同事重新启动主机时,PostgreSQL 服务器在没有机会删除 postmaster.pid 文件的情况下被杀死。因此,当您尝试启动 PostgreSQL 时,该文件的存在使它看起来提示服务器已经在运行。

This answer提供更完整的建议。一般来说,你永远不应该无缘无故地删除 postmaster.pid,因为它应该有助于防止两个服务器同时在同一个数据文件上运行。但是,如果您确定 postmaster.pid 文件指示的进程已经死了,那么一定要手动删除陈旧的 PID 文件。

关于Postgresql 查询没有终止,重启后服务 postgresql 没有启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35066284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com