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

对于谁可能有同样的问题的人。

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

这里我们展示我们的共享内存段。 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 

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

重新启动服务器似乎修复了它。