PostgreSQL Collector
PostgreSQL 采集脚本
巡检报告的数据来源是在每个数据库实例上跑一份 bash 采集脚本。下面这个脚本零依赖、纯文本输出,可以放心在生产环境运行。
或者直接 curl
curl -O https://dbaclaw.com/collector/pg.sh chmod +x pg.sh
运行要求
- PostgreSQL 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16
bash4+ ·psql客户端能直连本机 socket- 账号权限:
postgres超级用户(采集 pg_settings / pg_stat_replication 需要) - 环境变量
PGHOME指向 PostgreSQL 安装目录(含bin/psql) - 主备每个节点各跑一次,输出文本约 600-800 KB
使用步骤
export PGHOME=/data/pgsql14 ./pg_check.sh 5432 postgres /data/pgsql/data \ > pg_$(hostname -s)_5432_$(date +%Y%m%d).log 2>&1 # 三参数:port / user / pgdata。脚本读 $PGHOME/bin/psql。 # 主备每个节点各跑一次(pg_check.sh 自己判断 primary/standby)。
采集输出
建议把 stdout 重定向到带主机名 + 端口 + 日期的文件:
pg_<hostname>_<port>_<YYYYMMDD>.log
例:pg_demo-pg-primary_5432_20260605.log。引擎会通过文件内首行的 === primary/standby === 自动识别拓扑。