我正在使用pg_ctl -D $PGDATA status
来监视我的 postgres 备用数据库是否已启动并正在运行。有时数据库由于缺少 WAL 文件而无法启动,但其状态报告为“可用”。
有没有一种简单的方法可以使用该选项查看 postgres 是否可用pg_ctl status
,或者我是否需要编写脚本来查询 postgres 数据库并监视脚本的输出?
我正在使用pg_ctl -D $PGDATA status
来监视我的 postgres 备用数据库是否已启动并正在运行。有时数据库由于缺少 WAL 文件而无法启动,但其状态报告为“可用”。
有没有一种简单的方法可以使用该选项查看 postgres 是否可用pg_ctl status
,或者我是否需要编写脚本来查询 postgres 数据库并监视脚本的输出?
该命令从操作系统的角度
pg_ctl status
测试postmaster
进程(对应于)是否存在。$PGDATA
在肯定的情况下,它报告它正在运行(请注意available
未使用该词)。本质上这是通过读取
postmaster.pid
和检查的结果来实现的kill(that_pid, 0)
。这并不意味着此 PostgreSQL 实例确实接受连接或能够执行查询。为此,最好使用
psql
Nagios check_postgres插件之类的脚本。