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综合练习

综合练习

主从搭建 + 慢查询优化清单。

40 分钟

综合练习:PG 版 codeforge 运维闭环

串联前 11 课:在 codeforge_pg 部署 schema、索引、备份、监控 SQL,可选只读 Spring 接口。与 /roadmaps/postgresql-dba 综合节点对齐。

学习目标

  • 独立完成 PG 版 cf_track / cf_lesson DDL 与最小权限角色
  • 执行备份恢复演练并记录 RPO
  • 输出一份 DBA 巡检 SQL 清单(≥5 条)

核心概念

任务一:Schema 与权限

参考 backend/src/main/resources/schema.sql,在 app schema 创建表(timestamptz、jsonb metadata),并:

CREATE ROLE app_runtime LOGIN PASSWORD 'runtime';
GRANT USAGE ON SCHEMA app TO app_runtime;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA app TO app_runtime;

验证:app_runtime 不能 DROP TABLE,不能访问 postgres 系统表写操作。

任务二:性能与索引

EXPLAIN (ANALYZE, BUFFERS)
SELECT t.slug, count(l.id)
FROM app.cf_track t
LEFT JOIN app.cf_lesson l ON l.track_id = t.id
GROUP BY t.slug;

CREATE INDEX idx_lesson_track ON app.cf_lesson (track_id);
-- 重跑 EXPLAIN,确认 Join 计划改善

启用 pg_stat_statements,插入种子数据后导出 Top 3 SQL。

任务三:备份恢复

pg_dump -U dba -Fc -f practice.dump codeforge_pg
dropdb codeforge_pg_restored 2>/dev/null; createdb codeforge_pg_restored
pg_restore -U dba -d codeforge_pg_restored practice.dump
psql -U dba -d codeforge_pg_restored -c "SELECT count(*) FROM app.cf_track;"

记录:备份耗时、恢复耗时、行数是否一致。

验收清单

项标准
DDL无 MySQL 方言,约束完整
权限runtime / read 分离
索引slug、track_id 有合理索引
备份dump + restore 成功
监控5+ 条巡检 SQL 文档化

可选:Spring 只读 API

profile pg-dev + GET /api/pg/tracks,路径与 MySQL 生产 API 区分(见 pg-practice)。

与 MySQL/Spring Boot 对照

完成练习后写一段对比:同一 schema 在 MySQL 与 PG 上 备份命令、慢 SQL 来源、vacuum vs innodb 各一项差异。本站生产仍用 MySQL;本练习证明 PG DBA 能力可独立交付。

练习

  • 完成验收清单全部项并保存巡检 SQL 到笔记
  • 模拟「备库 lag 增大」:列出 3 步排查顺序
  • (可选)curl 只读 API,对比 MySQL /api/tracks 字段形状

小结

DDL + 权限 + 索引 + 备份 + 监控 = DBA 最小闭环。 继续 postgresql-essentials 开发视角或 redis-essentials 扩展缓存层。

加载本节练习…
← 上一课自动化运维