我有一台高兴地运行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
重新启动也可以,但是我们不喜欢这样做:-)
重新启动服务器似乎修复了它。