泊涯
作者泊涯·2019-05-20 13:46
系统测试工程师·高伟达公司

postgres异常断电导致启动失败解决方法

字数 713阅读 2051评论 0赞 1

问题起因:

前段时间客户生产服务器,突然不小心弄断电了,虽然运维人员重启服务后,看似能正常访问,但是出现主从无法正常同步数据问题,而重新启动服务后,报could not connet to server。。。。postgresql/.s.PGSQL.5432,后台日志出现,accepting TCP/IP connections on port 5432等一串错误信息。突发性断电导致异常终止,这是数据库的postmaster.pid 文件仍健在,但是其实不起作用,在后台数据库日志也可以看到如下错误信息,lock file "postmaster.pid" already exists,这时建议先cp 备份另存下,以防改错,然后在直接mv postmaster.pid 迁移到其他地方 ,然后重启数据库服务,即可解决问题。而启动的时候出现启动失败,具体情况请看《postgres启动失败问题分析与处理 》

 原理分析:

 当我们启动PostgresSQL时,会在PostgreSQL中的数据文件夹生成postmaster.pid 文件,该文件主要是记录启动时对应的进程号等相关信息,如果该文件已经存在,在启动时,会导致进程号无法对应,最终启动失败,原理如下:

1、26385: 代表Postgres主进程的PID

2、/home/postgresql_data: 代表数据目录

3、5432: 代表数据库监听端口,在postgresql.conf中对应port = 5432

4、5432001 229376:代表的是共享内存的地址(shared memory segments中的key和shmid)。

qw0wtx1e120p

qw0wtx1e120p

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广