PostgreSQL 启动失败——原因不明

PostgreSQL 启动失败——原因不明

我有一台服务器,它一直运行着 PostgreSQL,直到今天早上崩溃。尝试重新启动 Postgres,但失败了:

sudo /etc/init.d/postgresql start   
Starting PostgreSQL 9.1 database server
Removed stale pid file.    
The PostgreSQL server failed to start. Please check the log output:   
   ...fail!

执行后tail /var/log/postgresql/postgresql-9.1-main.log,我看到了崩溃前的一些消息 —— 但没有重新启动的输出。较旧的消息显示:

UTC WARNING: pgstat wait timeout   

操作系统:Ubuntu 12.04.3

答案1

对于可能遇到同样问题的人们。

我敢打赌你有一个卡住的共享内存段。

这里我们展示了我们的共享内存段。Postgres 有一个很大的 shared_buffers 段。不同的版本可能有不同的用户,有些使用“pgsql”

[root@host~]#  ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0xf90007aa 0          root       600        222        1
0x0052e2c1 32769      postgres   600        6602235904 95

首先确保您的服务器确实已关闭!检查“nattch”,即附加进程的数量。检查是否有任何正在运行的 postgres/pgsql 进程。

[root@host ~]# ps -fu postgres
UID        PID  PPID  C STIME TTY          TIME CMD
[root@host ~]# 

没什么,很好。现在,您可以删除共享内存段

ipcrm -m 32769

重新启动也可以,但我们不喜欢这样做:-)

答案2

重新启动服务器似乎已经解决了该问题。

相关内容