Agent Skills
返回列表
🔒

PostgreSQL 诊断操作手册

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/postgresql-diagnostic-runbook。

技能介绍

要解决什么问题

PostgreSQL 运行一段时间后,慢查询、锁等待和表膨胀会逐渐浮现,但排查这些问题往往需要在多个系统视图和日志之间来回切换。pg_stat_statements 记录了每条 SQL 的执行统计,pg_stat_activity 反映当前会话状态,而日志中的报错和慢查询记录则分散在 pgbadger 能解析的文件中。如果缺乏统一的诊断路径,很容易在信息碎片中浪费时间。

核心诊断能力

  • 慢查询定位:通过 pg_stat_statements 收集 SQL 的调用次数、总耗时和平均执行时间,快速锁定高开销语句
  • 锁争用分析:结合 pg_stat_activity 查看会话的等待事件和阻塞关系,判断是死锁还是长事务持锁
  • 日志深挖:使用 pgbadger 对 PostgreSQL 日志做离线分析,还原峰值时段的查询行为
  • 表膨胀检测:借助 pgstattuple 扩展直接读取堆表的物理结构,评估死元组比例和是否需要 VACUUM

适用边界

  • 技能文档提取自 node-postgres 上游仓库,部分安装和 API 说明面向 Node.js 客户端场景,与纯数据库端诊断存在视角差异
  • pgstattuple 需要作为扩展单独安装并授予执行权限
  • pgbadger 分析依赖完整的日志输出配置,日志级别过低会遗漏关键事件
  • 性能基线需要结合业务负载和硬件规格综合判断,技能不替代容量规划

使用场景

  • 监控告警显示接口响应超时,需通过 pg_stat_statements 快速定位耗时最高的 SQL 语句
  • 业务反馈偶发性卡顿,需用 pg_stat_activity 排查会话是否因锁等待而阻塞
  • 定期分析数据库日志,借助 pgbadger 还原高峰期的异常查询行为和报错信息
  • 磁盘空间增长异常,需用 pgstattuple 检查核心表的死元组比例和膨胀程度

适合人员

  • 数据库管理员,需定期巡检 PostgreSQL 集群性能并处理告警事件
  • 后端工程师,遇到线上慢查询或锁等待时需快速定位根因
  • SRE 运维工程师,负责维护数据库稳定性并处理性能容量问题
  • 数据平台工程师,需要优化复杂查询以避免拖慢报表生成速度