pg_isready
是一个 核心实用程序,用于检查PostgreSQL服务器的连接状态。
pg_isready
添加于 PostgreSQL 9.3 中。
用法
pg_isready
使用提供的连接详细信息启动服务器连接,并根据服务器的响应(或无响应)确定服务器状态。
请注意,pg_isready
实际上从未连接到数据库,并且不需要提供有效的数据库、用户或密码来检查服务器的响应。但是服务器会记录连接尝试的有效性。
更改历史记录
- PostgreSQL 9.3
- 添加(提交 ac2e9673)
pg_isready
自其在 PostgreSQL 9.3 中引入以来,没有进行过实质性的修改。
示例
pg_isready
的基本用法示例
postgres $ pg_isready -d 'user=postgres dbname=postgres host=localhost port=5432' localhost:5432 - accepting connections postgres $ echo $? 0
日志文件将包含以下条目(假设 log_connections
设置为 on
)
2022-09-02 10:02:25.015 UTC [31325] LOG: connection received: host=127.0.0.1 port=36628 2022-09-02 10:02:25.015 UTC [31325] LOG: connection authorized: user=postgres database=postgres application_name=pg_isready
尝试连接到使用无效用户名和/或数据库名的服务器
postgres $ pg_isready -d 'user=nosuchuser dbname=nosuchdb host=localhost port=5432' localhost:5432 - accepting connections postgres $ echo $? 0
日志文件将包含以下条目
2022-09-01 10:12:18.711 UTC [32711] LOG: connection authorized: user=nosuchuser database=nosuchdb application_name=pg_isready 2022-09-01 10:12:18.711 UTC [32711] FATAL: role "nosuchuser" does not exist
尝试连接到当前没有服务器运行的端口
postgres $ pg_isready -d 'user=postgres dbname=postgres host=localhost port=9999' localhost:9999 - no response postgres $ echo $? 2
参考文献
- PostgreSQL 文档: pg_isready