今天不小心把虚拟机给“×”掉了,类似突然停电。
系统重启,postgres死活起不来。
用 pg_ctl status -D /usr/local/pgsql/data
系统报告:postmaster正在运行
pg_ctl stop -D /usr/local/pgsql/data
系统报告:找不到指定的进程
查阅资料发现,postgres启动后会把postgres的进程号写在 /usr/local/pgsql/data/postmaster.pid文件中,
刚才掉电后,因为postmaster.pid文件没有被更新,所以调用关闭命令时,取道的进程号是掉电以前的,
重起后,该进程已经不存在,所以报告“找不到指定的进程”。
启动时,由于postmaster.pid已经存在,所以系统认为postgres已经启动。
★解决办法:删除/usr/local/pgsql/data/postmaster.pid文件
删除后,一切正常,为此郁闷1小时-------------------------------------------!