跳至内容
导读

全书导读

D.1 本书解决什么问题

  • 从“会写 SQL”走到“能交付 PostgreSQL 应用”;
  • 从“装好了数据库”走到“能运营 PostgreSQL 服务”;
  • 从“看见告警”走到“能安全恢复并防止复发”;
  • 用 Pigsty 把分散的 PostgreSQL 能力组合成可重复、可观察的生产实践。

D.2 读者假设与知识边界

正文默认读者已经掌握:

  • Linux、Shell、SSH、文件与进程的基本操作;
  • DDL、CRUD、连接、聚合、子查询、CTE 与基础事务;
  • 至少一种后端编程语言;
  • 基本的软件工程、版本控制与测试概念。

本书会解释 PostgreSQL 特有的语义与工程方法,但不系统补授 Linux、通用 SQL 或编程基础。第 0 章只解决实验环境,不承担基础课职能。

D.3 PostgreSQL 与 Pigsty 的关系

  • PostgreSQL 是全书的核心知识对象;
  • Pigsty 是全书统一的实验载体、观察窗口与生产参考实现;
  • [PG] 表示可由 PostgreSQL 原生接口验证的能力;
  • [平台] 表示任何生产数据库平台都必须承担的职责;
  • [Pigsty] 表示 Pigsty 对这些职责的具体组合与实现;
  • Pigsty 特有操作若容易被误解为 PostgreSQL 通用行为,会附一行跨平台职责映射,但不扩写成其他平台教程。

作者在序言中披露与 Pigsty 的关系。“36 计”只代表 36 个递进的实战单元,不把每章强行附会为古代计策。

D.4 安全公约与风险标记

  • R0·观察:只读查询、状态采样、计划分析,可在明确授权的环境中执行;
  • R1·可逆变更:会改变对象、配置或流量,但有经过验证的回退路径;
  • R2·破坏性演练:故障注入、切换、恢复、数据损坏,只能在可销毁的隔离环境执行;
  • 全书示例使用专用实验凭据,不公开真实密码,不把数据库或管理入口裸露到公网;
  • AI 辅助操作遵循最小权限、先预览、再验证原则,不允许“自动批准一切”;
  • 任何生产命令都必须结合版本、拓扑、数据量和组织授权重新评估。

D.5 版本契约与勘误机制

本书第一轮完整写作冻结以下复现基线:

项目写作基线兼容与取证规则
PostgreSQL18.4示例在 18.4 验证;核心概念面向当前受支持的 14–18,版本差异就地说明
Pigstyv4.4.0 正式版不以 main 开发分支代替发布版;配置、端口和 CLI 行为绑定 v4.4
L1 操作系统Ubuntu 24.04.4 LTS 参考环境同时允许 Pigsty v4.4 支持的发行版与架构;证据必须记录实际版本、内核和架构
Patroni、PgBouncer、HAProxy、pgBackRest由 Pigsty v4.4 对应发行版仓库提供不假设不同发行版安装出完全相同的小版本;每次实验从实际节点采样
实验拓扑L1 单节点;L2 一台控制 VM + 三成员数据库;L3 隔离事故克隆正式 sandbox 规格、例外与限制见附录 E

PostgreSQL 19 beta 只可用于兼容性观察,不作为生产结论基线。所有容易随版本变化的结论必须标注适用范围。面板讲指标语义,不依赖易漂移的点击路径;Pigsty 结论尽量回到 SQL、配置或原生组件验证。

每章的证据包记录客户端与服务端 PostgreSQL 版本、Pigsty 发布标识、操作系统与关键组件版本。定稿前执行一次“版本增量通过”,出版后通过附录 A:版本矩阵与差异注记维护勘误,而不是悄悄改写旧结论。

D.6 实验契约

每章按需提供以下产物,而不是机械凑齐固定数量:

  • setup:建立确定的实验起点;
  • exercise:主实验或故障注入;
  • verify:state:机器验证系统是否达到预期状态;
  • checklist:evidence:验证是否收集了足够决策证据;
  • expected:关键输出及解释;
  • reset:sql:重置数据库对象与数据;
  • reset:cluster:恢复集群、服务与配置;
  • reset:host:重建或回滚主机级环境。

实验数据生成器固定随机种子、规模档位与校验和。小规格虚拟机用于证明方法,不用于宣称绝对性能数字。

D.7 贯穿案例与四个阶段

主线案例统一为 pg36_shop

  1. ch01–ch12:持续演进、可运行的电商与支付应用;
  2. ch13–ch18:复用核心模式的独立能力场景,不强迫一个后端服务承载所有扩展;
  3. ch19–ch30:复用确定性数据与工作负载,把应用建设成生产服务;
  4. ch31–ch35:从快照克隆独立事故现场,避免演练相互污染;
  5. ch36:将事故证据重新汇总到治理与平台演进。

D.8 三层实验拓扑

  • L1:单节点 Pigsty 开发沙箱,用于 ch01–ch18;
  • L2:一台控制/客户端 VM 加三节点数据库、可销毁的生产仿真环境,用于 ch19–ch30;
  • L3:由已知快照克隆的故障演练环境,用于 ch31–ch35。

第一轮正式实验已经冻结 L1/L2/L3 的资源档位、网络、例外与复位边界,见 附录 E。性能章节仍逐次记录硬件、数据量、并发、缓存状态与噪声, 避免把玩具环境结果外推到生产。

D.9 推荐阅读路线

  • 完整路线:ch01 → ch36;
  • 应用开发:ch01–ch18,再读 ch22、ch23、ch25;
  • DBA/SRE:ch01、ch02、ch05–ch10,再读 ch19–ch36;
  • 架构与平台:ch01、ch06、ch12、ch14、ch17–ch24、ch36;
  • 故障处置:先读 ch31,再按症状索引进入 ch32–ch35,不建议脱离前置知识直接照抄命令。

核心依赖关系:

    flowchart LR
  A["ch01–ch06<br/>对象、模型、事务与规约"] --> B["ch07–ch12<br/>诊断、并发、发布与服务"]
  B --> C["ch13–ch18<br/>扩展能力与平台边界"]
  B --> D["ch19–ch24<br/>生产服务规划"]
  D --> E["ch25–ch30<br/>运营与演进"]
  E --> F["ch31–ch36<br/>事故恢复与改进"]
  C --> D
  

D.10 按任务查找

任务首选章节必要前置
设计可靠模式ch03–ch04ch01–ch02
查慢 SQL / 设计索引ch07–ch09ch05
处理并发错误ch10ch05
安全改表与发布ch11–ch12ch06–ch10
选择扩展ch14–ch18ch07–ch12
建设高可用与备份ch19–ch22ch01、ch05
建立安全与治理ch23–ch25ch19–ch22
压测、调优与维护ch26–ch30ch07–ch11、ch25
误操作恢复ch31–ch32ch21
主库或 DCS 故障ch31、ch33ch20
连接风暴与资源耗尽ch31、ch34ch22、ch25–ch28
数据损坏与抢救ch31、ch35ch21、ch28、ch30
最后更新于