centos 无法重新启动Postgres服务器,也无法终止进程

z31licg0  于 2023-06-29  发布在  其他
关注(0)|答案(4)|浏览(224)

由于突然断电PostGreSQL 9.3数据库服务器(CentOS)关闭,我试图启动/停止/重新启动postgres服务器,得到此错误:

[root@aca80123 ~]# service postgresql-9.3 restart 

    Restarting PostgreSQL 9.3: 
    pg_ctl: PID file "/opt/PostgreSQL/9.3/data/postmaster.pid" does not exist
    Is server running?
    starting server anyway
    waiting for server to start........ stopped waiting
    pg_ctl: could not start server
    Examine the log output.
    PostgreSQL 9.3 did not start in a timely fashion, please see /opt/PostgreSQL/9.3/data/pg_log/startup.log for details

以下消息位于startup.log文件中

2016-03-01 23:24:18 IST LOG:  redirecting log output to logging collector process
2016-03-01 23:24:18 IST HINT:  Future log output will appear in directory "pg_log".

我发现了stackOverflow问题,但没有解决方案。postgresql-service-unable-to-stop-start-restartunable-to-restart-postgresql-server

mzsu5hc0

mzsu5hc01#

如果PID文件不存在。请尝试检查正在使用postgresql数据库的所有空闲会话。

ps -ef|grep postgres

使用postgresql杀死所有会话。检查数据库的状态

pg_ctl status
pg_ctl: no server running

启动服务器后:

pg_ctl start
server starting
**postgres@server_name:~$ 2016-03-02 11:44:10 IST    LOG:  redirecting log output to logging collector process
2016-03-02 11:44:10 IST    HINT:  Future log output will appear in directory "pg_log".

检查状态

pg_ctl status

pg_ctl: server is running (PID: 51615)
/opt/postgres/9.3/bin/postgres
nhjlsmyf

nhjlsmyf2#

前一段时间我在www.example.com上遇到了类似的问题postmaster.pid。对我来说,问题是它没有被删除,因此它无法重新启动。对你来说,似乎postmaster.pid不存在,它期望在那里。
如果www.example.com真的不在那里,你检查了“/opt/PostgreSQL/9.3/data/”吗postmaster.pid?当时我发现它是一个文件,可以保护您在同一个表上进行多个调用。因此,可能另一个数据库正在处理相同的表或类似的东西?希望这个答案能给予你一些方向。
祝你好运

hi3rlvi2

hi3rlvi23#

您可以尝试在

ps aux

当你找到它的时候你可以用

kill -9 postgresPID

我不知道这对你有没有帮助,但对我很有效。

jecbmhm3

jecbmhm34#

试试这个:
Postgres是一个令人惊叹的开源ACID兼容数据库,它是可靠的,并且有一个稳定版本的良好跟踪。但时不时地,你会遇到一个挑剔的行为,风险把你的设置下来。在大多数情况下,它与存储和日志有关。最近我遇到了一个奇怪的情况,一个4G的数据库占用了超过84 G的磁盘空间。然后我发现,因为我在postgresql.conf中的archive_command失败了,pg_xlogs从来没有被循环过,并且自从数据库启动以来一直被无限期地保留着。纠正archive命令将有助于解决问题,但这是您需要做的清理pg_xlog和刷新存储
sudo /etc/init.d/postgresql stop
du -sh /var/lib/postgresql/8.4/main/pg_xlog/(这是您的主数据文件夹)
84G /var/lib/postgresql/8.4/main/pg_xlog/
/usr/lib/postgresql/8.4/bin/pg_controldata /var/lib/postgresql/8.4/main/ ...最新检查点的NextXID:0/385464最新检查点的NextOID:159836 ... sudo -u postgres /usr/lib/postgresql/8.4/bin/pg_resetxlog -o 159836 -x 385464 -f /var/lib/postgresql/8.4/main/
记住要把正确的NextOID NExtXID,不要只是复制粘贴这个命令,你应该得到响应:事务日志重置
du -sh /var/lib/postgresql/8.4/main/pg_xlog/ 17M /var/lib/postgresql/8.4/main/pg_xlog/
sudo /etc/init.d/postgresql start

相关问题