软讯网络 > 冲浪宝典 > 网络资源 > (转)非法关机的时候,postgresql启动故障的解决
【标 题】:(转)非法关机的时候,postgresql启动故障的解决
【关键字】:
postgresql
【来 源】:http://www.cublog.cn/u/15466/showart.php?id=84829
(转)非法关机的时候,postgresql启动故障的解决
非法关机的时候,postgresql启动故障的解决
源自:http://skylove.study-area.org skylove 2005-01-18 14:35:52
今天,因为某因素导致非法关机,导致的结果就是postgresql 服务无法启动咯...我用了近10分钟的时间来解决这个替别人揩屁股的问题...yAk©skylove.study-area.org
我先尝试直接用service postgresql start来启动服务,失败咯...然后 tail /var/log/message
的结果,只是简单地告诉我了start postgresql
faile....我靠,这还不如不说呢(典型的windows日志风格,告诉你一些完全正确却全无用处的消息)IhXp©skylove.study-area.org
然后就上google,用关键字 postgreql 修复 作为关键字来查询,找到n多结果,但是没有我想要的...恩,看来只有自己想办法了.FQ5H©skylove.study-area.org
su 到 postgres身份,然后执行postmaster -D 数据库....无法启动,不过这次postger给出了错误提示如下:Gw©skylove.study-area.org
| 代码: |
|
6i1d©skylove.study-area.org
FATAL: pre-existing shared memory block (key 5432001, ID 0) is still in usesVN©skylove.study-area.org
HINT: If you're sure there are no old server processes still running,
remove the shared memory block with the command "ipcrm", or just delete
the file "/var/lib/pgsql/data/postmaster.pid".Ge©skylove.study-area.org
|
|
QmI©skylove.study-area.org
恩,这样一来就明白了...原来是因为上次停止机器的时候,是直接关电...因此,postgresql运行进程的pid文件没有删除...而重新启动之
后,在启动postgresql服务的时候,由于postgresql查询到pid文件的存在,以为服务已经启动起来了,为了不重新加载就不再启动自己
了...uTO4©skylove.study-area.org
既然原因找到了,那么就直接 把那个pid文件删除掉...之后再试,果然就正常咯...wQa©skylove.study-area.org
h1©skylove.study-area.org
为了防止这样的悲剧再次重演,我惟有在/etc/rc.local里加上一条CJd©skylove.study-area.org
rm -rf /var/lib/pgsql/data/postmaster.pid 2 > /dev/nullir9©skylove.study-area.org
然后再启动postgresql服务...