查询检查PostgreSQL数据库状态的语句

10

有没有查询命令可以检查数据库状态?我只想知道它是否在远程主机上处于活动状态。那么,是否有任何查询返回200 OK,如果数据库正在运行并提供其他数据库详细信息?


2
pg_isready? - Abelisto
@Abelisto select pg_isready from pg_stat_activity 你是在暗示这个吗? - prisoner_of_azkaban
请点击提供的链接。这是一个检查 PostgreSQL 服务器是否准备好接收连接请求的实用程序。在执行查询之前,您应该首先能够连接到服务器,但如果服务器宕机,则无法连接。也许我误解了您的问题。 - Abelisto
2个回答

13

https://www.postgresql.org/docs/current/static/app-pg-isready.html

-bash-4.2$ if pg_isready93 -d postgres://localhost:5432/template; then echo "200 OK"; else echo "500 NOT OK"; fi
200 OK
-bash-4.2$ if pg_isready93 -d postgres://localhost:5430/template; then echo "200 OK"; else echo "500 NOT OK"; fi
500 NOT OK

感谢Abelisto的贡献 - 在这种情况下,我不会考虑使用 pg_isready


顺便提一下,BTW 可以简化为 (pg_isready -q -h 127.0.0.2 && echo Ok) || echo Fail。"退出状态指定连接检查的结果。" - Abelisto
1
PS 或者使用 if 语句:if pg_isready -q -h 127.0.0.1; then echo Ok; else echo Fail; fi - Abelisto
@Abelisto 这是你的答案 - 只需根据你的想法进行编辑即可 :) - Vao Tsun

5
systemctl status postgresql

这正是我所需要的


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接