CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
PostgreSQL DBA 入门/课时/自动化运维
RawBlame
课时目录12 节

PostgreSQL DBA 入门

  1. 01DBA 职责与 PG 架构
  2. 02安装与部署
  3. 03安全与权限
  4. 04SQL 与事务
  5. 05对象模型与类型
  6. 06索引与执行计划
  7. 07性能与监控
  8. 08备份与恢复
  9. 09复制与高可用
  10. 10PL/pgSQL 与触发器
  11. 11自动化运维
  12. 12综合练习

自动化运维

Ansible、分区、Sharding、Patch。

30 分钟

运维监控、日志与升级

生产 DBA 靠 指标、日志、变更流程 保 SLA。与 /roadmaps/postgresql-dba 运维节点对齐。

学习目标

  • 配置 log_min_duration_statement 与慢 SQL 日志
  • 采集关键指标:连接数、复制 lag、磁盘、事务 ID 年龄
  • 了解大版本升级(pg_upgrade / 逻辑迁移)路径

核心概念

日志参数

logging_collector = on
log_directory = 'log'
log_min_duration_statement = 500    # ms,慢 SQL
log_checkpoints = on
log_connections = on
log_lock_waits = on
tail -f $PGDATA/log/postgresql-*.log | grep duration

结合 pg_stat_statements 比单纯 tail 更高效。

必监控指标

-- 连接
SELECT count(*) FILTER (WHERE state = 'active') AS active,
       count(*) AS total FROM pg_stat_activity;

-- 复制 lag(主库)
SELECT application_name, sync_state,
       pg_wal_lsn_diff(sent_lsn, replay_lsn) AS lag_bytes
FROM pg_stat_replication;

-- 事务 ID  wraparound 风险
SELECT datname, age(datfrozenxid) FROM pg_database ORDER BY 2 DESC;

Prometheus 常用 postgres_exporter;告警:磁盘 >85%、lag >100MB、active >80% max_connections。

升级策略

方式停机适用
pg_upgrade短同机大版本
逻辑复制 / dump-restore可控跨 OS、云迁移
蓝绿 + 切换 DNS规划窗口零停机目标

升级前:全备 + 扩展兼容性检查(SELECT * FROM pg_available_extensions)。

与 MySQL/Spring Boot 对照

项PostgreSQLMySQL 8
慢日志log_min_duration_statementslow_query_log
监控postgres_exportermysqld_exporter
升级pg_upgrademysql_upgrade / 原地
应用感知JDBC URL 一般不变同

Spring Boot 健康检查:spring.datasource.hikari.connection-test-query=SELECT 1;K8s probe 用同一语句。变更 PG 参数后观察 Hikari 连接获取时间 是否异常。

练习

  • 设置 slow log 阈值 200ms,故意跑全表扫描并定位日志行
  • 列出 5 条应用 DBA 告警规则(含阈值)
  • 查当前 PG 版本与已安装 extension 列表

小结

可观测性先于调优;升级必演练备份恢复路径。 下一课综合 DBA 练习。

加载本节练习…
← 上一课PL/pgSQL 与触发器下一课 →综合练习