检查Postgresql进程是否已经启动,如果没有启动,请启动:

ps -ef | grep postgres
      正常情况下该命令的回显如下所示:

       
        若出现如下回显,则表示postgres自身受损,由于该数据库的修复难度较大,最快也最省力的解决方法是重新安装并重新进行初始(卸载时注意手动删除/var/lib/pgsql/data/目录的数据库配置相关文件)。


service postgresql start
service postgresql status


       重启postgresql数据库服务后,还需要查看下数据库是否已经在运行,执行上述这条命令即可查看。

      如果数据库没有损坏,执行数据库启动命令显示启动成功,但是查看状态提示“postmaster已死,但pid文件仍存在”,说明数据库仍然没有启动成功。此时,需要查看数据库日志(/var/lib/pgsql/pgstartup.log),具体排查原因。


      如果看到数据库日志如下所示,提示“Failed system call was shmget ”,则修改数据库配置share memory值后,重启数据库服务即可,如下所示。或者也可以修改kernel.shmmax值为64MB,之后重启数据库服务。
cat /var/lib/pgsql/pgstartup.log


vim /var/lib/pgsql/data/postgresql.conf​


service postgresql start
service postgresql status




附:
    若要修改系统的shmmax值,可进行如下操作:
(1)查看系统shmmax的当前值
        ipcs -l

(2)根据系统的物理内存大小修改shmmax值
          vim /etc/sysctl.conf

      解决postgresql数据库启动失败问题,只需修改到大于等于62MB即可,或者,可结合需求修改为不超过物理内存的50%。

(3)更新配置
          sudo sysctl -p