# 完整目录

LLMS 索引： [llms.txt](/llms.txt)

---

> 本页列出全书的章、节、目。36 个正文章直接位于顶层；节标题链接到独立页面，目标题链接到页面内的稳定锚点。

## 前置内容

- [全书导读](/guide/)
- [第 0 章 扬帆起航——准备实验环境](/ch00/)
  - [0.1 选择实验环境](/ch00/01/)
    - [0.1.1 本地虚拟机、开发服务器与已有 Pigsty 环境](/ch00/01/#item-0-1-1)
    - [0.1.2 L1 沙箱的最低资源、网络与磁盘要求](/ch00/01/#item-0-1-2)
    - [0.1.3 云主机的防火墙、入口与费用边界](/ch00/01/#item-0-1-3)
  - [0.2 安装单节点 Pigsty 沙箱](/ch00/02/)
    - [0.2.1 获取与核对版本](/ch00/02/#item-0-2-1)
    - [0.2.2 配置、部署与幂等重跑](/ch00/02/#item-0-2-2)
    - [0.2.3 检查 PostgreSQL、连接池与观察组件状态](/ch00/02/#item-0-2-3)
  - [0.3 完成首次连通](/ch00/03/)
    - [0.3.1 找到服务端点、数据库与实验凭据](/ch00/03/#item-0-3-1)
    - [0.3.2 执行 `SELECT version()` 与只读状态查询](/ch00/03/#item-0-3-2)
    - [0.3.3 确认编码、时区和扩展清单后进入 ch01](/ch00/03/#item-0-3-3)

## 36 章正文

### [上卷：应用开发](/upper-volume/)

从 PostgreSQL 工程认知到应用交付与能力扩展

#### 第一篇：筑基——建立 PostgreSQL 工程认知

##### [ch01 盲人摸象：PostgreSQL 与 Pigsty 全局地图](/postgresql-pigsty-map/)

- [1.1 从连接串识别操作落点](/postgresql-pigsty-map/01/)
  - [1.1.1 主机、端口、服务、数据库与角色](/postgresql-pigsty-map/01/#item-1-1-1)
  - [1.1.2 `current_database()`、`current_user` 与 `search_path`](/postgresql-pigsty-map/01/#item-1-1-2)
  - [1.1.3 实例端点、服务端点与只读端点](/postgresql-pigsty-map/01/#item-1-1-3)
- [1.2 PostgreSQL 对象与术语坐标](/postgresql-pigsty-map/02/)
  - [1.2.1 实例、数据库、模式与关系对象](/postgresql-pigsty-map/02/#item-1-2-1)
  - [1.2.2 角色为何跨数据库存在](/postgresql-pigsty-map/02/#item-1-2-2)
  - [1.2.3 表、索引、序列、视图、函数与扩展](/postgresql-pigsty-map/02/#item-1-2-3)
  - [1.2.4 PostgreSQL “database cluster”的特殊含义](/postgresql-pigsty-map/02/#item-1-2-4)
- [1.3 一条查询经过了什么](/postgresql-pigsty-map/03/)
  - [1.3.1 客户端、后端进程与会话](/postgresql-pigsty-map/03/#item-1-3-1)
  - [1.3.2 共享内存、数据文件与 WAL](/postgresql-pigsty-map/03/#item-1-3-2)
  - [1.3.3 系统目录与统计视图如何描述自身](/postgresql-pigsty-map/03/#item-1-3-3)
- [1.4 从数据库实例到数据库服务](/postgresql-pigsty-map/04/)
  - [1.4.1 单实例、复制组、服务入口与控制面](/postgresql-pigsty-map/04/#item-1-4-1)
  - [1.4.2 计算、存储、网络、配置与可观测职责](/postgresql-pigsty-map/04/#item-1-4-2)
  - [1.4.3 PostgreSQL 原生能力与平台组合能力的边界](/postgresql-pigsty-map/04/#item-1-4-3)
- [1.5 Pigsty 的资源模型](/postgresql-pigsty-map/05/)
  - [1.5.1 节点、集群、实例与服务](/postgresql-pigsty-map/05/#item-1-5-1)
  - [1.5.2 PostgreSQL、Patroni、PgBouncer 与 HAProxy 的职责](/postgresql-pigsty-map/05/#item-1-5-2)
  - [1.5.3 配置清单、运行状态与监控事实分别来自哪里](/postgresql-pigsty-map/05/#item-1-5-3)
- [1.6 最小 psql 生存卡](/postgresql-pigsty-map/06/)
  - [1.6.1 用 URI 连接，用 `\l`、`\dn`、`\d` 看对象](/postgresql-pigsty-map/06/#item-1-6-1)
  - [1.6.2 用 `\c` 切库，用 `-c` 与 `-f` 执行](/postgresql-pigsty-map/06/#item-1-6-2)
  - [1.6.3 用 `\o` 或 `-A -t` 保存输出](/postgresql-pigsty-map/06/#item-1-6-3)
  - [1.6.4 用 `\q`、`Ctrl-C` 安全退出与中断](/postgresql-pigsty-map/06/#item-1-6-4)
- [1.7 实战：建立 `pg36_shop` 地图与实验基线](/postgresql-pigsty-map/07/)
  - [1.7.1 创建数据库、业务模式和最小角色](/postgresql-pigsty-map/07/#item-1-7-1)
  - [1.7.2 生成连接快照、对象树、服务拓扑与环境清单](/postgresql-pigsty-map/07/#item-1-7-2)
  - [1.7.3 建立 `verify:state` 与三档 `reset`](/postgresql-pigsty-map/07/#item-1-7-3)
  - [1.7.4 验收：从 SQL 与 Pigsty 两侧指认同一对象](/postgresql-pigsty-map/07/#item-1-7-4)

##### [ch02 手到擒来：psql 与可复现工作流](/psql-workflow/)

- [2.1 可靠连接与上下文保护](/psql-workflow/01/)
  - [2.1.1 连接 URI、服务文件与环境变量](/psql-workflow/01/#item-2-1-1)
  - [2.1.2 `application_name`、提示符与上下文快照](/psql-workflow/01/#item-2-1-2)
  - [2.1.3 防止连错库、用错角色和改错模式](/psql-workflow/01/#item-2-1-3)
- [2.2 用 psql 探索与取证](/psql-workflow/02/)
  - [2.2.1 对象、权限和会话元命令](/psql-workflow/02/#item-2-2-1)
  - [2.2.2 扩展显示、分页、计时与查询缓冲区](/psql-workflow/02/#item-2-2-2)
  - [2.2.3 元命令与系统目录查询互相验证](/psql-workflow/02/#item-2-2-3)
- [2.3 编写可靠 SQL 脚本](/psql-workflow/03/)
  - [2.3.1 `ON_ERROR_STOP`、退出码与失败即停](/psql-workflow/03/#item-2-3-1)
  - [2.3.2 变量、条件、包含文件与事务包装](/psql-workflow/03/#item-2-3-2)
  - [2.3.3 幂等、重入与执行前预览](/psql-workflow/03/#item-2-3-3)
  - [2.3.4 日志、清单与机器可读结果](/psql-workflow/03/#item-2-3-4)
- [2.4 输入、输出与确定性数据](/psql-workflow/04/)
  - [2.4.1 `COPY` 与 `\copy` 的权限和执行边界](/psql-workflow/04/#item-2-4-1)
  - [2.4.2 CSV、文本与错误隔离](/psql-workflow/04/#item-2-4-2)
  - [2.4.3 固定随机种子、规模档位与校验和](/psql-workflow/04/#item-2-4-3)
- [2.5 最小 pgbench 工作负载](/psql-workflow/05/)
  - [2.5.1 初始化自定义脚本与参数](/psql-workflow/05/#item-2-5-1)
  - [2.5.2 区分吞吐、延迟、错误与环境噪声](/psql-workflow/05/#item-2-5-2)
  - [2.5.3 本节只建立可复现基线，不做性能结论](/psql-workflow/05/#item-2-5-3)
- [2.6 最小逻辑备份闭环](/psql-workflow/06/)
  - [2.6.1 `pg_dump` 的对象、模式与自定义格式](/psql-workflow/06/#item-2-6-1)
  - [2.6.2 `pg_restore` 的清单、选择性恢复与验证](/psql-workflow/06/#item-2-6-2)
  - [2.6.3 与 ch21《未雨绸缪：备份体系与恢复演练》的边界](/psql-workflow/06/#item-2-6-3)
- [2.7 实战：把人工操作变成可重跑任务](/psql-workflow/07/)
  - [2.7.1 生成 `pg36_shop` 初始数据与校验摘要](/psql-workflow/07/#item-2-7-1)
  - [2.7.2 从 Pigsty 服务端点执行并保存证据](/psql-workflow/07/#item-2-7-2)
  - [2.7.3 注入脚本错误，验证停止、修复与复位](/psql-workflow/07/#item-2-7-3)

##### [ch03 正本清源：从业务规则到关系模型](/logical-data-model/)

- [3.1 从业务语言提取数据库事实](/logical-data-model/01/)
  - [3.1.1 实体、事件、状态与业务不变量](/logical-data-model/01/#item-3-1-1)
  - [3.1.2 命令模型、查询模型与数据所有权](/logical-data-model/01/#item-3-1-2)
  - [3.1.3 哪些规则必须由数据库兜底](/logical-data-model/01/#item-3-1-3)
- [3.2 标识、主键与业务键](/logical-data-model/02/)
  - [3.2.1 自然键、代理键与外部标识](/logical-data-model/02/#item-3-2-1)
  - [3.2.2 主键稳定性、键宽度与传播范围](/logical-data-model/02/#item-3-2-2)
  - [3.2.3 幂等键、去重键与审计标识](/logical-data-model/02/#item-3-2-3)
- [3.3 关系与引用完整性](/logical-data-model/03/)
  - [3.3.1 一对一、一对多与多对多](/logical-data-model/03/#item-3-3-1)
  - [3.3.2 外键动作与生命周期](/logical-data-model/03/#item-3-3-2)
  - [3.3.3 聚合边界与跨表不变量](/logical-data-model/03/#item-3-3-3)
- [3.4 模式、所有权与对象边界](/logical-data-model/04/)
  - [3.4.1 业务模式、接口模式与内部模式](/logical-data-model/04/#item-3-4-1)
  - [3.4.2 对象所有者与运行角色分离](/logical-data-model/04/#item-3-4-2)
  - [3.4.3 避免依赖不受控的 `search_path`](/logical-data-model/04/#item-3-4-3)
- [3.5 规范化与有意识的冗余](/logical-data-model/05/)
  - [3.5.1 函数依赖与重复事实](/logical-data-model/05/#item-3-5-1)
  - [3.5.2 派生数据、快照数据与缓存列](/logical-data-model/05/#item-3-5-2)
  - [3.5.3 接受冗余前先定义一致性责任](/logical-data-model/05/#item-3-5-3)
- [3.6 实战：建立逻辑模型 v0](/logical-data-model/06/)
  - [3.6.1 用户、商品、订单、订单项与支付](/logical-data-model/06/#item-3-6-1)
  - [3.6.2 在 Pigsty L1 的真实数据库中部署并用样例规则审查](/logical-data-model/06/#item-3-6-2)
  - [3.6.3 产出金额、时间、状态、标识四项未决清单](/logical-data-model/06/#item-3-6-3)
  - [3.6.4 生成逻辑关系图并链接 ch04 的可靠版本](/logical-data-model/06/#item-3-6-4)

##### [ch04 量体裁衣：数据类型、约束与可靠数据表达](/data-types-constraints/)

- [4.1 金额、文本与时间](/data-types-constraints/01/)
  - [4.1.1 整数、`numeric` 与金额精度](/data-types-constraints/01/#item-4-1-1)
  - [4.1.2 `text`、排序规则与大小写语义](/data-types-constraints/01/#item-4-1-2)
  - [4.1.3 `date`、`timestamptz`、时区与业务时间](/data-types-constraints/01/#item-4-1-3)
- [4.2 标识、状态与半结构化数据](/data-types-constraints/02/)
  - [4.2.1 `bigint`、UUID 与标识生成](/data-types-constraints/02/#item-4-2-1)
  - [4.2.2 布尔、枚举、查找表与状态机](/data-types-constraints/02/#item-4-2-2)
  - [4.2.3 数组、范围、JSONB 与拆表边界](/data-types-constraints/02/#item-4-2-3)
- [4.3 NULL、默认值与生成值](/data-types-constraints/03/)
  - [4.3.1 “未知”“不存在”与空值语义](/data-types-constraints/03/#item-4-3-1)
  - [4.3.2 默认值、身份列与序列](/data-types-constraints/03/#item-4-3-2)
  - [4.3.3 生成列与数据库派生事实](/data-types-constraints/03/#item-4-3-3)
- [4.4 用约束表达不变量](/data-types-constraints/04/)
  - [4.4.1 主键、唯一、外键与检查约束](/data-types-constraints/04/#item-4-4-1)
  - [4.4.2 排他约束与 `btree_gist` 的适用条件](/data-types-constraints/04/#item-4-4-2)
  - [4.4.3 仅对支持类型使用 DEFERRABLE，并说明事务末校验代价](/data-types-constraints/04/#item-4-4-3)
- [4.5 类型与约束的物理代价](/data-types-constraints/05/)
  - [4.5.1 行宽、对齐、TOAST 与更新成本](/data-types-constraints/05/#item-4-5-1)
  - [4.5.2 隐式转换、操作符与索引可用性](/data-types-constraints/05/#item-4-5-2)
  - [4.5.3 约束、索引与写放大的关系](/data-types-constraints/05/#item-4-5-3)
- [4.6 分区决策门](/data-types-constraints/06/)
  - [4.6.1 先证明生命周期、体量或裁剪需求再决定分区](/data-types-constraints/06/#item-4-6-1)
  - [4.6.2 分区键与主键、唯一约束必须共同设计](/data-types-constraints/06/#item-4-6-2)
  - [4.6.3 外键、引用方式与未来在线改造代价](/data-types-constraints/06/#item-4-6-3)
  - [4.6.4 产出“现在分区 / 暂不分区”的可复查 ADR](/data-types-constraints/06/#item-4-6-4)
- [4.7 实战：把逻辑模型落成可靠物理模式](/data-types-constraints/07/)
  - [4.7.1 闭合金额与时间表达](/data-types-constraints/07/#item-4-7-1)
  - [4.7.2 闭合状态与标识生成](/data-types-constraints/07/#item-4-7-2)
  - [4.7.3 用反例验证类型、约束与错误语义](/data-types-constraints/07/#item-4-7-3)
  - [4.7.4 在 Pigsty L1 输出可靠 DDL、分区决策与 `verify:state`](/data-types-constraints/07/#item-4-7-4)

##### [ch05 运筹帷幄：查询、事务与锁的核心心智模型](/query-transaction-locks/)

- [5.1 SQL 从文本到结果](/query-transaction-locks/01/)
  - [5.1.1 解析、重写、规划与执行](/query-transaction-locks/01/#item-5-1-1)
  - [5.1.2 关系代数直觉与执行节点](/query-transaction-locks/01/#item-5-1-2)
  - [5.1.3 优化器为什么做估算而不是预言](/query-transaction-locks/01/#item-5-1-3)
- [5.2 MVCC 与可见性](/query-transaction-locks/02/)
  - [5.2.1 元组版本、事务 ID 与快照](/query-transaction-locks/02/#item-5-2-1)
  - [5.2.2 活跃、提交、中止与可见性判断](/query-transaction-locks/02/#item-5-2-2)
  - [5.2.3 读不阻塞写的条件与代价](/query-transaction-locks/02/#item-5-2-3)
- [5.3 事务边界与失败语义](/query-transaction-locks/03/)
  - [5.3.1 自动提交、显式事务与中止状态](/query-transaction-locks/03/#item-5-3-1)
  - [5.3.2 原子性、持久性与 WAL](/query-transaction-locks/03/#item-5-3-2)
  - [5.3.3 保存点、重试边界与外部副作用](/query-transaction-locks/03/#item-5-3-3)
- [5.4 锁与等待](/query-transaction-locks/04/)
  - [5.4.1 表锁、行锁与轻量级锁的职责](/query-transaction-locks/04/#item-5-4-1)
  - [5.4.2 等待图、阻塞链与死锁检测](/query-transaction-locks/04/#item-5-4-2)
  - [5.4.3 锁模式名称不等于业务影响](/query-transaction-locks/04/#item-5-4-3)
- [5.5 隔离现象与后续路线](/query-transaction-locks/05/)
  - [5.5.1 脏读、不可重复读、幻读与序列化异常](/query-transaction-locks/05/#item-5-5-1)
  - [5.5.2 lost update 必须绑定具体隔离级别与写法](/query-transaction-locks/05/#item-5-5-2)
  - [5.5.3 ch07–ch10 如何分别展开计划与并发](/query-transaction-locks/05/#item-5-5-3)
- [5.6 实战：观察一笔订单事务](/query-transaction-locks/06/)
  - [5.6.1 从 SQL 观察会话、快照、锁和 WAL 位置](/query-transaction-locks/06/#item-5-6-1)
  - [5.6.2 从 Pigsty 观察连接、事务与等待指标](/query-transaction-locks/06/#item-5-6-2)
  - [5.6.3 注入阻塞并解释“现象—证据—原理”](/query-transaction-locks/06/#item-5-6-3)

##### [ch06 立木取信：开发规约与交付基线](/development-standards/)

- [6.1 规约不是口号](/development-standards/01/)
  - [6.1.1 从事故、评审和测量中形成规则](/development-standards/01/#item-6-1-1)
  - [6.1.2 每条规则记录动机、证据、例外和检查方式](/development-standards/01/#item-6-1-2)
  - [6.1.3 区分安全底线、团队默认与场景偏好](/development-standards/01/#item-6-1-3)
- [6.2 连接与会话候选规则](/development-standards/02/)
  - [6.2.1 连接上下文、超时与 `application_name`](/development-standards/02/#item-6-2-1)
  - [6.2.2 时区、编码、`search_path` 与会话状态](/development-standards/02/#item-6-2-2)
  - [6.2.3 用错误连接案例验证规则价值](/development-standards/02/#item-6-2-3)
- [6.3 模式与 DDL 候选规则](/development-standards/03/)
  - [6.3.1 命名、所有权、注释与对象边界](/development-standards/03/#item-6-3-1)
  - [6.3.2 类型、约束和默认值的审查问题](/development-standards/03/#item-6-3-2)
  - [6.3.3 可逆迁移与版本化 DDL](/development-standards/03/#item-6-3-3)
- [6.4 查询与事务候选规则](/development-standards/04/)
  - [6.4.1 明确列、稳定排序与分页语义](/development-standards/04/#item-6-4-1)
  - [6.4.2 事务大小、超时、重试与幂等](/development-standards/04/#item-6-4-2)
  - [6.4.3 CTE、窗口函数与 `LATERAL` 的可读性门槛](/development-standards/04/#item-6-4-3)
- [6.5 交付物与质量门](/development-standards/05/)
  - [6.5.1 DDL、迁移、数据生成与回滚](/development-standards/05/#item-6-5-1)
  - [6.5.2 自动测试、静态检查与计划证据](/development-standards/05/#item-6-5-2)
  - [6.5.3 变更说明、所有者与风险等级](/development-standards/05/#item-6-5-3)
- [6.6 将规约接入统一实验环境](/development-standards/06/)
  - [6.6.1 角色、数据库与服务声明](/development-standards/06/#item-6-6-1)
  - [6.6.2 初始化、验证与重置入口](/development-standards/06/#item-6-6-2)
  - [6.6.3 配置事实与运行事实分开审查](/development-standards/06/#item-6-6-3)
- [6.7 实战：发布规约 baseline v0.1](/development-standards/07/)
  - [6.7.1 审查 ch01–ch05 已出现的候选规则](/development-standards/07/#item-6-7-1)
  - [6.7.2 为 `pg36_shop` 建立最小质量门](/development-standards/07/#item-6-7-2)
  - [6.7.3 预留 ch07–ch11 的证据追加区](/development-standards/07/#item-6-7-3)
  - [6.7.4 在 ch12 汇总为 v1.0 的验收条件](/development-standards/07/#item-6-7-4)

#### 第二篇：应用——从 SQL 正确走向稳定交付

##### [ch07 追本溯源：执行计划与统计信息](/query-plans-statistics/)

- [7.1 优化器如何选择路径](/query-plans-statistics/01/)
  - [7.1.1 扫描、连接、排序、聚合与物化节点](/query-plans-statistics/01/#item-7-1-1)
  - [7.1.2 成本、选择率、行数与路径竞争](/query-plans-statistics/01/#item-7-1-2)
  - [7.1.3 计划树的阅读顺序与数据流](/query-plans-statistics/01/#item-7-1-3)
- [7.2 正确使用 EXPLAIN](/query-plans-statistics/02/)
  - [7.2.1 `EXPLAIN`、`ANALYZE`、`BUFFERS`、`WAL`](/query-plans-statistics/02/#item-7-2-1)
  - [7.2.2 规划时间、执行时间与客户端时间](/query-plans-statistics/02/#item-7-2-2)
  - [7.2.3 对写语句使用 `ANALYZE` 的事务保护](/query-plans-statistics/02/#item-7-2-3)
- [7.3 统计信息与估算偏差](/query-plans-statistics/03/)
  - [7.3.1 直方图、高频值、空值率与相关性](/query-plans-statistics/03/#item-7-3-1)
  - [7.3.2 扩展统计解决跨列相关](/query-plans-statistics/03/#item-7-3-2)
  - [7.3.3 数据倾斜、陈旧统计与采样误差](/query-plans-statistics/03/#item-7-3-3)
- [7.4 分区裁剪的两种时机](/query-plans-statistics/04/)
  - [7.4.1 规划时裁剪与常量条件](/query-plans-statistics/04/#item-7-4-1)
  - [7.4.2 执行时裁剪、参数化节点与通用计划](/query-plans-statistics/04/#item-7-4-2)
  - [7.4.3 分区父表统计需要显式 `ANALYZE`](/query-plans-statistics/04/#item-7-4-3)
  - [7.4.4 产出裁剪生效与失效的计划对照](/query-plans-statistics/04/#item-7-4-4)
- [7.5 参数、缓存计划与计划漂移](/query-plans-statistics/05/)
  - [7.5.1 自定义计划与通用计划](/query-plans-statistics/05/#item-7-5-1)
  - [7.5.2 预备语句、数据倾斜与参数敏感](/query-plans-statistics/05/#item-7-5-2)
  - [7.5.3 计划变化是症状，不自动等于回归](/query-plans-statistics/05/#item-7-5-3)
- [7.6 建立计划证据基线](/query-plans-statistics/06/)
  - [7.6.1 `pg_stat_statements` 的归一化视角](/query-plans-statistics/06/#item-7-6-1)
  - [7.6.2 `auto_explain` 的阈值、采样与日志成本](/query-plans-statistics/06/#item-7-6-2)
  - [7.6.3 从 Pigsty 时间窗保存 SQL、参数、统计、计划与环境上下文](/query-plans-statistics/06/#item-7-6-3)
- [7.7 实战：解释订单查询的计划变化](/query-plans-statistics/07/)
  - [7.7.1 用固定数据种子制造估算偏差](/query-plans-statistics/07/#item-7-7-1)
  - [7.7.2 修复统计与条件表达后重新比较](/query-plans-statistics/07/#item-7-7-2)
  - [7.7.3 把一条有证据的计划规则追加到规约](/query-plans-statistics/07/#item-7-7-3)

##### [ch08 抽丝剥茧：慢 SQL 诊断方法论](/slow-query-diagnosis/)

- [8.1 先定义“慢”](/slow-query-diagnosis/01/)
  - [8.1.1 延迟分位数、吞吐、并发与错误率](/slow-query-diagnosis/01/#item-8-1-1)
  - [8.1.2 单次慢、持续慢与整体退化](/slow-query-diagnosis/01/#item-8-1-2)
  - [8.1.3 应用时间、排队时间与数据库时间](/slow-query-diagnosis/01/#item-8-1-3)
- [8.2 从会话到语句定位范围](/slow-query-diagnosis/02/)
  - [8.2.1 活跃、等待、阻塞与空闲事务](/slow-query-diagnosis/02/#item-8-2-1)
  - [8.2.2 按调用、总时长、均值和尾延迟排序](/slow-query-diagnosis/02/#item-8-2-2)
  - [8.2.3 查询指纹、参数与时间窗口](/slow-query-diagnosis/02/#item-8-2-3)
- [8.3 关联日志、指标与计划](/slow-query-diagnosis/03/)
  - [8.3.1 日志最小基线与慢语句记录](/slow-query-diagnosis/03/#item-8-3-1)
  - [8.3.2 SQL 指标、主机资源与部署事件](/slow-query-diagnosis/03/#item-8-3-2)
  - [8.3.3 用同一时间轴排除巧合](/slow-query-diagnosis/03/#item-8-3-3)
- [8.4 建立而不是猜测假设](/slow-query-diagnosis/04/)
  - [8.4.1 计划与估算问题](/slow-query-diagnosis/04/#item-8-4-1)
  - [8.4.2 锁、I/O、CPU、内存与临时文件](/slow-query-diagnosis/04/#item-8-4-2)
  - [8.4.3 客户端取数、网络与连接池排队](/slow-query-diagnosis/04/#item-8-4-3)
- [8.5 设计受控实验](/slow-query-diagnosis/05/)
  - [8.5.1 每次只改变一个解释变量](/slow-query-diagnosis/05/#item-8-5-1)
  - [8.5.2 冷热缓存、参数与数据规模控制](/slow-query-diagnosis/05/#item-8-5-2)
  - [8.5.3 反证、回退与副作用观察](/slow-query-diagnosis/05/#item-8-5-3)
- [8.6 从可观测面板回到原生证据](/slow-query-diagnosis/06/)
  - [8.6.1 用指标语义定位时间、实例与查询](/slow-query-diagnosis/06/#item-8-6-1)
  - [8.6.2 用 SQL、日志和计划复核面板判断](/slow-query-diagnosis/06/#item-8-6-2)
  - [8.6.3 不把截图、颜色或当前点击路径当作知识](/slow-query-diagnosis/06/#item-8-6-3)
- [8.7 实战：三种“慢”只修真正瓶颈](/slow-query-diagnosis/07/)
  - [8.7.1 估算错误、锁等待与客户端慢消费](/slow-query-diagnosis/07/#item-8-7-1)
  - [8.7.2 随机隐藏一种根因，先独立诊断再揭晓](/slow-query-diagnosis/07/#item-8-7-2)
  - [8.7.3 输出证据包、假设树、修复前后对照与复位结果](/slow-query-diagnosis/07/#item-8-7-3)

##### [ch09 巧夺天工：索引设计与效果验证](/index-design/)

- [9.1 索引方法与操作符类](/index-design/01/)
  - [9.1.1 B-tree 与 Hash 的适用查询](/index-design/01/#item-9-1-1)
  - [9.1.2 GiST、SP-GiST 与空间、范围、近邻问题](/index-design/01/#item-9-1-2)
  - [9.1.3 GIN 与数组、JSONB、文本检索](/index-design/01/#item-9-1-3)
  - [9.1.4 BRIN 与物理相关的大表；Bloom 的扩展边界](/index-design/01/#item-9-1-4)
- [9.2 从谓词、连接与排序推导索引](/index-design/02/)
  - [9.2.1 等值、范围与多列顺序](/index-design/02/#item-9-2-1)
  - [9.2.2 连接键、排序、分组与 Top-N](/index-design/02/#item-9-2-2)
  - [9.2.3 选择率、相关性与访问路径](/index-design/02/#item-9-2-3)
- [9.3 表达式、部分与覆盖索引](/index-design/03/)
  - [9.3.1 表达式必须与查询语义一致](/index-design/03/#item-9-3-1)
  - [9.3.2 部分索引的谓词蕴含与参数陷阱](/index-design/03/#item-9-3-2)
  - [9.3.3 `INCLUDE`、index-only scan 与可见性图](/index-design/03/#item-9-3-3)
- [9.4 索引也有写入和生命周期成本](/index-design/04/)
  - [9.4.1 写放大、缓存占用与 WAL](/index-design/04/#item-9-4-1)
  - [9.4.2 HOT 更新、页分裂与填充因子](/index-design/04/#item-9-4-2)
  - [9.4.3 重复、未使用与失效索引的判断](/index-design/04/#item-9-4-3)
- [9.5 验证而不是“加完就快”](/index-design/05/)
  - [9.5.1 计划、缓冲区、延迟分布与写入代价](/index-design/05/#item-9-5-1)
  - [9.5.2 数据规模和缓存状态一致的 A/B 对照](/index-design/05/#item-9-5-2)
  - [9.5.3 线上创建、失败回收与监控窗口](/index-design/05/#item-9-5-3)
- [9.6 实战：为订单、库存与搜索入口设计索引](/index-design/06/)
  - [9.6.1 从真实查询清单提出候选索引](/index-design/06/#item-9-6-1)
  - [9.6.2 在 Pigsty L1 保留、合并或拒绝并记录证据](/index-design/06/#item-9-6-2)
  - [9.6.3 将索引审查规则追加到规约](/index-design/06/#item-9-6-3)

##### [ch10 顾此失彼：并发控制与隔离异常](/concurrency-isolation/)

- [10.1 隔离级别与可观察现象](/concurrency-isolation/01/)
  - [10.1.1 Read Committed 的语句快照](/concurrency-isolation/01/#item-10-1-1)
  - [10.1.2 Repeatable Read 的事务快照与写冲突](/concurrency-isolation/01/#item-10-1-2)
  - [10.1.3 Serializable、谓词冲突与序列化失败](/concurrency-isolation/01/#item-10-1-3)
- [10.2 Lost update 不是一句口号](/concurrency-isolation/02/)
  - [10.2.1 读—算—写在 Read Committed 下如何丢更新](/concurrency-isolation/02/#item-10-2-1)
  - [10.2.2 原子更新与带版本条件的更新](/concurrency-isolation/02/#item-10-2-2)
  - [10.2.3 更高隔离级别何时拒绝而不是静默覆盖](/concurrency-isolation/02/#item-10-2-3)
- [10.3 悲观锁与锁队列](/concurrency-isolation/03/)
  - [10.3.1 `FOR UPDATE`、`NO KEY UPDATE` 与引用关系](/concurrency-isolation/03/#item-10-3-1)
  - [10.3.2 `NOWAIT`、`SKIP LOCKED` 与任务领取](/concurrency-isolation/03/#item-10-3-2)
  - [10.3.3 锁顺序、阻塞链与死锁](/concurrency-isolation/03/#item-10-3-3)
- [10.4 乐观控制、重试与幂等](/concurrency-isolation/04/)
  - [10.4.1 版本列、唯一键与条件写入](/concurrency-isolation/04/#item-10-4-1)
  - [10.4.2 重试只包围可重放的事务](/concurrency-isolation/04/#item-10-4-2)
  - [10.4.3 支付、消息与外部副作用的边界](/concurrency-isolation/04/#item-10-4-3)
- [10.5 咨询锁与跨行协调](/concurrency-isolation/05/)
  - [10.5.1 会话级与事务级咨询锁](/concurrency-isolation/05/#item-10-5-1)
  - [10.5.2 键空间、碰撞与所有权](/concurrency-isolation/05/#item-10-5-2)
  - [10.5.3 不用咨询锁掩盖缺失的数据约束](/concurrency-isolation/05/#item-10-5-3)
- [10.6 观察与诊断并发](/concurrency-isolation/06/)
  - [10.6.1 `pg_stat_activity`、`pg_locks` 与等待事件](/concurrency-isolation/06/#item-10-6-1)
  - [10.6.2 从 Pigsty 定位锁等待与长事务](/concurrency-isolation/06/#item-10-6-2)
  - [10.6.3 保存阻塞图，而不是先杀会话](/concurrency-isolation/06/#item-10-6-3)
- [10.7 实战：库存扣减与支付幂等](/concurrency-isolation/07/)
  - [10.7.1 在指定隔离级别重现丢更新和死锁](/concurrency-isolation/07/#item-10-7-1)
  - [10.7.2 比较原子更新、行锁与可重试事务](/concurrency-isolation/07/#item-10-7-2)
  - [10.7.3 用并发测试验证业务不变量并追加规约](/concurrency-isolation/07/#item-10-7-3)

##### [ch11 守正出奇：模式变更与安全发布](/schema-change-release/)

- [11.1 识别 DDL 的四类风险](/schema-change-release/01/)
  - [11.1.1 锁等级与持锁时间](/schema-change-release/01/#item-11-1-1)
  - [11.1.2 表重写、全表扫描与 WAL 放大](/schema-change-release/01/#item-11-1-2)
  - [11.1.3 新旧应用版本的兼容窗口](/schema-change-release/01/#item-11-1-3)
  - [11.1.4 数据回填的节奏与失败恢复](/schema-change-release/01/#item-11-1-4)
- [11.2 Expand–Migrate–Contract](/schema-change-release/02/)
  - [11.2.1 先扩展兼容结构](/schema-change-release/02/#item-11-2-1)
  - [11.2.2 分批迁移、双读校验与切换](/schema-change-release/02/#item-11-2-2)
  - [11.2.3 观察稳定后再收缩旧结构](/schema-change-release/02/#item-11-2-3)
- [11.3 索引与约束的在线化路径](/schema-change-release/03/)
  - [11.3.1 `CREATE INDEX CONCURRENTLY` 的阶段与失败残留](/schema-change-release/03/#item-11-3-1)
  - [11.3.2 `NOT VALID`、`VALIDATE CONSTRAINT` 与验证扫描](/schema-change-release/03/#item-11-3-2)
  - [11.3.3 默认值、非空与类型变更的版本边界](/schema-change-release/03/#item-11-3-3)
- [11.4 在线分区化](/schema-change-release/04/)
  - [11.4.1 从 ch04 的分区 ADR 选择迁移路径](/schema-change-release/04/#item-11-4-1)
  - [11.4.2 预建约束、`ATTACH` 与扫描规避](/schema-change-release/04/#item-11-4-2)
  - [11.4.3 `DETACH`、并发能力与锁等级必须按版本说明](/schema-change-release/04/#item-11-4-3)
  - [11.4.4 产出一次可回退的分区化发布](/schema-change-release/04/#item-11-4-4)
- [11.5 数据回填与流量切换](/schema-change-release/05/)
  - [11.5.1 批次、限速、水位与断点续跑](/schema-change-release/05/#item-11-5-1)
  - [11.5.2 影子读、双写的风险与一致性验证](/schema-change-release/05/#item-11-5-2)
  - [11.5.3 何时暂停、回退或前滚](/schema-change-release/05/#item-11-5-3)
- [11.6 发布窗口中的平台观察](/schema-change-release/06/)
  - [11.6.1 从服务入口隔离实验流量](/schema-change-release/06/#item-11-6-1)
  - [11.6.2 观察锁、复制延迟、WAL 与资源水位](/schema-change-release/06/#item-11-6-2)
  - [11.6.3 配置变更与模式变更分别留证](/schema-change-release/06/#item-11-6-3)
- [11.7 实战：无中断演进订单模式](/schema-change-release/07/)
  - [11.7.1 加字段、回填、建约束与新旧版本共存](/schema-change-release/07/#item-11-7-1)
  - [11.7.2 注入锁等待和回填中断，验证中止与恢复](/schema-change-release/07/#item-11-7-2)
  - [11.7.3 把发布证据与新规则追加到规约](/schema-change-release/07/#item-11-7-3)

##### [ch12 一气呵成：从数据库契约到后端服务](/database-to-service/)

- [12.1 数据库契约与应用边界](/database-to-service/01/)
  - [12.1.1 模式、查询、错误与兼容性契约](/database-to-service/01/#item-12-1-1)
  - [12.1.2 业务不变量在应用与数据库之间分工](/database-to-service/01/#item-12-1-2)
  - [12.1.3 迁移版本与服务发布的依赖](/database-to-service/01/#item-12-1-3)
- [12.2 为服务设计查询接口](/database-to-service/02/)
  - [12.2.1 参数化 SQL 与稳定结果语义](/database-to-service/02/#item-12-2-1)
  - [12.2.2 CTE、窗口函数和 `LATERAL` 的工程用法](/database-to-service/02/#item-12-2-2)
  - [12.2.3 错误码、约束名与领域错误映射](/database-to-service/02/#item-12-2-3)
- [12.3 Go 服务中的连接与事务](/database-to-service/03/)
  - [12.3.1 连接池大小、超时与上下文取消](/database-to-service/03/#item-12-3-1)
  - [12.3.2 事务函数、失败重试与外部副作用](/database-to-service/03/#item-12-3-2)
  - [12.3.3 健康检查不等于业务可用](/database-to-service/03/#item-12-3-3)
- [12.4 会话状态与连接池陷阱](/database-to-service/04/)
  - [12.4.1 session、transaction 与 statement pooling](/database-to-service/04/#item-12-4-1)
  - [12.4.2 预备语句行为必须绑定 PgBouncer 与驱动版本](/database-to-service/04/#item-12-4-2)
  - [12.4.3 `SET LOCAL`、事务边界与 RLS 上下文](/database-to-service/04/#item-12-4-3)
  - [12.4.4 在 ch22、ch23 分别深化池化与权限](/database-to-service/04/#item-12-4-4)
- [12.5 服务级可观测性](/database-to-service/05/)
  - [12.5.1 请求、事务、查询指纹与 `application_name`](/database-to-service/05/#item-12-5-1)
  - [12.5.2 延迟、错误、连接等待和数据库等待](/database-to-service/05/#item-12-5-2)
  - [12.5.3 从一次请求追到数据库证据](/database-to-service/05/#item-12-5-3)
- [12.6 部署与接入 `pg36_shop`](/database-to-service/06/)
  - [12.6.1 角色、数据库、服务与凭据声明](/database-to-service/06/#item-12-6-1)
  - [12.6.2 通过连接池和服务端点接入](/database-to-service/06/#item-12-6-2)
  - [12.6.3 用平台指标验证部署，而非只看进程存活](/database-to-service/06/#item-12-6-3)
- [12.7 实战：交付应用闭环与规约 v1.0](/database-to-service/07/)
  - [12.7.1 跑通下单、扣库存、支付幂等与查询](/database-to-service/07/#item-12-7-1)
  - [12.7.2 注入数据库超时、重试与连接耗尽](/database-to-service/07/#item-12-7-2)
  - [12.7.3 汇总 ch07–ch11 的证据，发布规约 v1.0](/database-to-service/07/#item-12-7-3)
  - [12.7.4 冻结服务样例，后续改用 SQL 与工作负载脚本](/database-to-service/07/#item-12-7-4)

#### 第三篇：扩展——扩大 PostgreSQL 的能力边界

##### [ch13 言出法随：函数、触发器与存储过程](/functions-triggers-procedures/)

- [13.1 先决定逻辑放在哪里](/functions-triggers-procedures/01/)
  - [13.1.1 数据不变量、批处理与接口封装](/functions-triggers-procedures/01/#item-13-1-1)
  - [13.1.2 数据库内聚与应用可演进性的权衡](/functions-triggers-procedures/01/#item-13-1-2)
  - [13.1.3 不用触发器隐藏跨系统工作流](/functions-triggers-procedures/01/#item-13-1-3)
- [13.2 SQL 与 PL/pgSQL 函数](/functions-triggers-procedures/02/)
  - [13.2.1 参数、返回值、集合与多态](/functions-triggers-procedures/02/#item-13-2-1)
  - [13.2.2 波动性、严格性、并行安全与规划影响](/functions-triggers-procedures/02/#item-13-2-2)
  - [13.2.3 异常、子事务与错误契约](/functions-triggers-procedures/02/#item-13-2-3)
- [13.3 触发器与约束触发器](/functions-triggers-procedures/03/)
  - [13.3.1 行级、语句级与 transition table](/functions-triggers-procedures/03/#item-13-3-1)
  - [13.3.2 BEFORE、AFTER 与 INSTEAD OF](/functions-triggers-procedures/03/#item-13-3-2)
  - [13.3.3 递归、顺序、批量写入与隐藏成本](/functions-triggers-procedures/03/#item-13-3-3)
- [13.4 过程、任务与事务控制](/functions-triggers-procedures/04/)
  - [13.4.1 procedure 与 function 的边界](/functions-triggers-procedures/04/#item-13-4-1)
  - [13.4.2 批处理、维护任务与显式事务](/functions-triggers-procedures/04/#item-13-4-2)
  - [13.4.3 调度属于平台职责，不由过程本身解决](/functions-triggers-procedures/04/#item-13-4-3)
- [13.5 安全、测试与观测](/functions-triggers-procedures/05/)
  - [13.5.1 `SECURITY DEFINER`、固定 `search_path` 与最小权限](/functions-triggers-procedures/05/#item-13-5-1)
  - [13.5.2 单元测试、属性测试与并发测试](/functions-triggers-procedures/05/#item-13-5-2)
  - [13.5.3 函数级统计、日志与慢调用定位](/functions-triggers-procedures/05/#item-13-5-3)
- [13.6 实战：为订单状态建立数据库端护栏](/functions-triggers-procedures/06/)
  - [13.6.1 比较约束、函数、触发器与应用实现](/functions-triggers-procedures/06/#item-13-6-1)
  - [13.6.2 注入绕过应用的错误写入](/functions-triggers-procedures/06/#item-13-6-2)
  - [13.6.3 在 Pigsty L1 输出实现选择、测试证据与回退脚本](/functions-triggers-procedures/06/#item-13-6-3)

##### [ch14 博采众长：内核分支与扩展生态](/extensions-ecosystem/)

- [14.1 PostgreSQL 扩展机制](/extensions-ecosystem/01/)
  - [14.1.1 control、SQL 脚本、动态库与对象所有权](/extensions-ecosystem/01/#item-14-1-1)
  - [14.1.2 普通扩展、预加载库与超级用户需求](/extensions-ecosystem/01/#item-14-1-2)
  - [14.1.3 扩展依赖、版本与 `ALTER EXTENSION`](/extensions-ecosystem/01/#item-14-1-3)
- [14.2 内核、发行版与托管服务](/extensions-ecosystem/02/)
  - [14.2.1 上游 PostgreSQL、补丁内核与兼容性承诺](/extensions-ecosystem/02/#item-14-2-1)
  - [14.2.2 包仓库、容器镜像与托管白名单](/extensions-ecosystem/02/#item-14-2-2)
  - [14.2.3 “兼容 PostgreSQL”需要逐层验证](/extensions-ecosystem/02/#item-14-2-3)
- [14.3 扩展选型的六个问题](/extensions-ecosystem/03/)
  - [14.3.1 它解决的具体问题和原生替代是什么](/extensions-ecosystem/03/#item-14-3-1)
  - [14.3.2 数据格式是否锁定、能否导出和退出](/extensions-ecosystem/03/#item-14-3-2)
  - [14.3.3 维护活跃度、许可证与商业连续性](/extensions-ecosystem/03/#item-14-3-3)
  - [14.3.4 权限、崩溃面与供应链风险](/extensions-ecosystem/03/#item-14-3-4)
- [14.4 生命周期与升级耦合](/extensions-ecosystem/04/)
  - [14.4.1 安装版本不等于数据库对象版本](/extensions-ecosystem/04/#item-14-4-1)
  - [14.4.2 大版本升级、备份恢复与逻辑复制兼容](/extensions-ecosystem/04/#item-14-4-2)
  - [14.4.3 依赖扩展不可用时的降级策略](/extensions-ecosystem/04/#item-14-4-3)
- [14.5 用 Pigsty 管理扩展可用性](/extensions-ecosystem/05/)
  - [14.5.1 包、仓库、模板与节点差异](/extensions-ecosystem/05/#item-14-5-1)
  - [14.5.2 声明安装与数据库内 `CREATE EXTENSION`](/extensions-ecosystem/05/#item-14-5-2)
  - [14.5.3 从监控和日志识别加载失败](/extensions-ecosystem/05/#item-14-5-3)
- [14.6 建立可复用扩展 ADR](/extensions-ecosystem/06/)
  - [14.6.1 问题、候选、假设与成功标准](/extensions-ecosystem/06/#item-14-6-1)
  - [14.6.2 最小 PoC、风险清单与退出路径](/extensions-ecosystem/06/#item-14-6-2)
  - [14.6.3 结论的版本范围和复审触发器](/extensions-ecosystem/06/#item-14-6-3)
- [14.7 实战：评审三个候选扩展](/extensions-ecosystem/07/)
  - [14.7.1 一个接受、一个试点、一个拒绝](/extensions-ecosystem/07/#item-14-7-1)
  - [14.7.2 在 L1 安装并验证原生对象与平台状态](/extensions-ecosystem/07/#item-14-7-2)
  - [14.7.3 产出供 ch15–ch17 复用的 ADR 模板](/extensions-ecosystem/07/#item-14-7-3)

##### [ch15 见微知著：全文、模糊与向量检索](/search/)

- [15.1 先定义检索任务与评估集](/search/01/)
  - [15.1.1 精确筛选、词法相关与语义相似](/search/01/#item-15-1-1)
  - [15.1.2 查询、候选、排序和过滤的分层](/search/01/#item-15-1-2)
  - [15.1.3 建立带人工相关性标签的查询集合](/search/01/#item-15-1-3)
- [15.2 PostgreSQL 全文检索](/search/02/)
  - [15.2.1 文档、词典、配置与 `tsvector`](/search/02/#item-15-2-1)
  - [15.2.2 查询语法、权重与相关性排序](/search/02/#item-15-2-2)
  - [15.2.3 GIN/GiST 索引、更新与语言边界](/search/02/#item-15-2-3)
- [15.3 模糊匹配与拼写容错](/search/03/)
  - [15.3.1 `pg_trgm` 相似度与距离](/search/03/#item-15-3-1)
  - [15.3.2 前缀、包含、拼写错误与候选召回](/search/03/#item-15-3-2)
  - [15.3.3 与全文检索的互补和重复](/search/03/#item-15-3-3)
- [15.4 可复现的向量检索](/search/04/)
  - [15.4.1 维度、距离度量与归一化](/search/04/#item-15-4-1)
  - [15.4.2 精确近邻与近似索引](/search/04/#item-15-4-2)
  - [15.4.3 索引参数、过滤条件与召回代价](/search/04/#item-15-4-3)
  - [15.4.4 冻结文本、模型标识、许可证、向量文件与校验和](/search/04/#item-15-4-4)
- [15.5 混合检索与排序验证](/search/05/)
  - [15.5.1 词法、模糊和语义候选合并](/search/05/#item-15-5-1)
  - [15.5.2 分数归一、倒数排名融合与重排](/search/05/#item-15-5-2)
  - [15.5.3 用标注集比较质量，不用单个“好看案例”](/search/05/#item-15-5-3)
- [15.6 扩展部署与运行代价](/search/06/)
  - [15.6.1 安装检索扩展并核对版本](/search/06/#item-15-6-1)
  - [15.6.2 观察索引体积、构建、查询和维护](/search/06/#item-15-6-2)
  - [15.6.3 外部嵌入生成的权限、费用与数据边界](/search/06/#item-15-6-3)
- [15.7 实战：`pg36_shop` 商品混合检索 PoC](/search/07/)
  - [15.7.1 用冻结向量离线复现实验](/search/07/#item-15-7-1)
  - [15.7.2 比较全文、模糊、向量与混合结果](/search/07/#item-15-7-2)
  - [15.7.3 输出 ADR、质量证据、生产代价与退出路径](/search/07/#item-15-7-3)
  - [15.7.4 验收采用 `checklist:evidence`，不设脱离场景的性能线](/search/07/#item-15-7-4)

##### [ch16 经天纬地：时序、空间与时空查询](/spatiotemporal/)

- [16.1 时间语义先于时序扩展](/spatiotemporal/01/)
  - [16.1.1 事件时间、处理时间与有效时间](/spatiotemporal/01/#item-16-1-1)
  - [16.1.2 时区、迟到、乱序与重复事件](/spatiotemporal/01/#item-16-1-2)
  - [16.1.3 范围类型、窗口与时间对齐](/spatiotemporal/01/#item-16-1-3)
- [16.2 时序表与时间分区](/spatiotemporal/02/)
  - [16.2.1 从 ch04 的分区 ADR 选择时间键](/spatiotemporal/02/#item-16-2-1)
  - [16.2.2 写入模式、冷热生命周期与保留](/spatiotemporal/02/#item-16-2-2)
  - [16.2.3 原生分区、聚合与可选时序扩展](/spatiotemporal/02/#item-16-2-3)
  - [16.2.4 不在本章重复在线分区化和维护细节](/spatiotemporal/02/#item-16-2-4)
- [16.3 空间类型与坐标参考](/spatiotemporal/03/)
  - [16.3.1 geometry、geography 与测量语义](/spatiotemporal/03/#item-16-3-1)
  - [16.3.2 SRID、投影、单位与坐标转换](/spatiotemporal/03/#item-16-3-2)
  - [16.3.3 点、线、面、边界与有效几何](/spatiotemporal/03/#item-16-3-3)
- [16.4 空间谓词与索引](/spatiotemporal/04/)
  - [16.4.1 包含、相交、邻近与最近邻](/spatiotemporal/04/#item-16-4-1)
  - [16.4.2 包围盒过滤与精确计算](/spatiotemporal/04/#item-16-4-2)
  - [16.4.3 GiST/SP-GiST 计划与选择率验证](/spatiotemporal/04/#item-16-4-3)
- [16.5 时空联合查询是本章收束目标](/spatiotemporal/05/)
  - [16.5.1 某时段、某区域内的配送事件](/spatiotemporal/05/#item-16-5-1)
  - [16.5.2 轨迹、停留、地理围栏与迟到修正](/spatiotemporal/05/#item-16-5-2)
  - [16.5.3 时间裁剪、空间索引与二阶段过滤](/spatiotemporal/05/#item-16-5-3)
- [16.6 时空扩展的交付与观察](/spatiotemporal/06/)
  - [16.6.1 安装 PostGIS 与可选时序扩展](/spatiotemporal/06/#item-16-6-1)
  - [16.6.2 核对版本、依赖、备份和升级边界](/spatiotemporal/06/#item-16-6-2)
  - [16.6.3 观察分区、索引、写入与聚合成本](/spatiotemporal/06/#item-16-6-3)
- [16.7 实战：配送事件的时空 PoC](/spatiotemporal/07/)
  - [16.7.1 生成确定性事件与地理数据](/spatiotemporal/07/#item-16-7-1)
  - [16.7.2 验证 SRID 错误、裁剪失效和空间索引](/spatiotemporal/07/#item-16-7-2)
  - [16.7.3 输出 ADR、PoC 证据与生产代价清单](/spatiotemporal/07/#item-16-7-3)
  - [16.7.4 超预算时先删扩展专属细节，不删基础判断力](/spatiotemporal/07/#item-16-7-4)

##### [ch17 合纵连横：分析加速与分布式选型](/analytics-distributed/)

- [17.1 先证明单机边界](/analytics-distributed/01/)
  - [17.1.1 定义数据量、并发、延迟与新鲜度目标](/analytics-distributed/01/#item-17-1-1)
  - [17.1.2 区分 CPU、I/O、内存、锁与计划瓶颈](/analytics-distributed/01/#item-17-1-2)
  - [17.1.3 单机未被正确使用前不急于分布式](/analytics-distributed/01/#item-17-1-3)
- [17.2 单机分析能力](/analytics-distributed/02/)
  - [17.2.1 并行扫描、连接、聚合与限制](/analytics-distributed/02/#item-17-2-1)
  - [17.2.2 分区、物化视图、增量汇总与批处理](/analytics-distributed/02/#item-17-2-2)
  - [17.2.3 列式能力候选必须写入版本基线](/analytics-distributed/02/#item-17-2-3)
  - [17.2.4 OLTP 与分析负载在同机共存的代价](/analytics-distributed/02/#item-17-2-4)
- [17.3 何时需要分布式](/analytics-distributed/03/)
  - [17.3.1 容量、吞吐、地域与组织边界](/analytics-distributed/03/#item-17-3-1)
  - [17.3.2 分片键、数据局部性与跨分片事务](/analytics-distributed/03/#item-17-3-2)
  - [17.3.3 一致性、运维复杂度与退出成本](/analytics-distributed/03/#item-17-3-3)
- [17.4 比较分布式候选](/analytics-distributed/04/)
  - [17.4.1 PostgreSQL 扩展、兼容数据库与专用分析系统](/analytics-distributed/04/#item-17-4-1)
  - [17.4.2 SQL 兼容不等于事务、扩展和运维兼容](/analytics-distributed/04/#item-17-4-2)
  - [17.4.3 用同一工作负载和失败条件比较](/analytics-distributed/04/#item-17-4-3)
- [17.5 部署最小分布式 PoC](/analytics-distributed/05/)
  - [17.5.1 明确 PoC 只验证一个关键假设](/analytics-distributed/05/#item-17-5-1)
  - [17.5.2 记录组件、版本、拓扑和数据分布](/analytics-distributed/05/#item-17-5-2)
  - [17.5.3 不把演示集群的绝对性能外推到生产](/analytics-distributed/05/#item-17-5-3)
- [17.6 实战：从单机证据到选型 ADR](/analytics-distributed/06/)
  - [17.6.1 证明一个边界，拒绝一个伪瓶颈](/analytics-distributed/06/#item-17-6-1)
  - [17.6.2 比较单机加速与一个分布式候选](/analytics-distributed/06/#item-17-6-2)
  - [17.6.3 输出 ADR、PoC 证据、生产代价和撤退路线](/analytics-distributed/06/#item-17-6-3)
  - [17.6.4 验收采用 `checklist:evidence`](/analytics-distributed/06/#item-17-6-4)

##### [ch18 万法归宗：PostgreSQL 数据平台与替代边界](/data-platform-boundaries/)

- [18.1 从数据库产品到能力组合](/data-platform-boundaries/01/)
  - [18.1.1 事务、检索、时空、分析与任务能力](/data-platform-boundaries/01/#item-18-1-1)
  - [18.1.2 计算、存储、接入、控制与观察平面](/data-platform-boundaries/01/#item-18-1-2)
  - [18.1.3 组件组合必须有统一服务目标](/data-platform-boundaries/01/#item-18-1-3)
- [18.2 PostgreSQL 的强项与代价](/data-platform-boundaries/02/)
  - [18.2.1 关系一致性、可扩展类型与统一查询](/data-platform-boundaries/02/#item-18-2-1)
  - [18.2.2 通用性带来的资源竞争与维护责任](/data-platform-boundaries/02/#item-18-2-2)
  - [18.2.3 扩展能力不自动等于生产就绪](/data-platform-boundaries/02/#item-18-2-3)
- [18.3 明确替代边界](/data-platform-boundaries/03/)
  - [18.3.1 缓存、消息、对象存储与离线湖仓](/data-platform-boundaries/03/#item-18-3-1)
  - [18.3.2 超大规模检索、流处理与专用分析](/data-platform-boundaries/03/#item-18-3-2)
  - [18.3.3 用数据所有权、时效和一致性决定分工](/data-platform-boundaries/03/#item-18-3-3)
- [18.4 平台服务目录与多租户](/data-platform-boundaries/04/)
  - [18.4.1 服务等级、规格、版本与扩展套餐](/data-platform-boundaries/04/#item-18-4-1)
  - [18.4.2 数据库、模式、实例和集群隔离](/data-platform-boundaries/04/#item-18-4-2)
  - [18.4.3 成本归属、配额和生命周期](/data-platform-boundaries/04/#item-18-4-3)
- [18.5 Pigsty 作为参考实现](/data-platform-boundaries/05/)
  - [18.5.1 把 PostgreSQL、HA、备份、接入和观察组合起来](/data-platform-boundaries/05/#item-18-5-1)
  - [18.5.2 哪些能力开箱可用，哪些仍需组织流程](/data-platform-boundaries/05/#item-18-5-2)
  - [18.5.3 不把参考实现冒充唯一架构](/data-platform-boundaries/05/#item-18-5-3)
- [18.6 实战：设计 `pg36_shop` 生产蓝图](/data-platform-boundaries/06/)
  - [18.6.1 选择保留在 PostgreSQL 内的能力](/data-platform-boundaries/06/#item-18-6-1)
  - [18.6.2 选择外置组件及其数据契约](/data-platform-boundaries/06/#item-18-6-2)
  - [18.6.3 输出服务目录草案、架构 ADR 与下卷验收问题](/data-platform-boundaries/06/#item-18-6-3)

### [下卷：运维管理](/lower-volume/)

从生产服务规划到日常运营、事故恢复与改进

#### 第四篇：规划——建设可交付的 PostgreSQL 服务

##### [ch19 开天辟地：环境规划与部署基线](/deployment-baseline/)

- [19.1 先写服务需求](/deployment-baseline/01/)
  - [19.1.1 业务重要性、数据分类与所有者](/deployment-baseline/01/#item-19-1-1)
  - [19.1.2 负载形态、增长、峰谷和批处理窗口](/deployment-baseline/01/#item-19-1-2)
  - [19.1.3 可用性、RPO、RTO 与维护窗口](/deployment-baseline/01/#item-19-1-3)
- [19.2 计算、内存、存储与网络](/deployment-baseline/02/)
  - [19.2.1 CPU 核数、频率、NUMA 与虚拟化](/deployment-baseline/02/#item-19-2-1)
  - [19.2.2 内存预算、页缓存与 OOM 边界](/deployment-baseline/02/#item-19-2-2)
  - [19.2.3 IOPS、吞吐、时延、容量与冗余](/deployment-baseline/02/#item-19-2-3)
  - [19.2.4 时钟、DNS、带宽、防火墙与故障域](/deployment-baseline/02/#item-19-2-4)
- [19.3 操作系统与主机基线](/deployment-baseline/03/)
  - [19.3.1 文件系统、挂载、预读与透明大页](/deployment-baseline/03/#item-19-3-1)
  - [19.3.2 用户、目录、权限、时间同步与日志](/deployment-baseline/03/#item-19-3-2)
  - [19.3.3 基线检查必须记录事实而非套用调优模板](/deployment-baseline/03/#item-19-3-3)
- [19.4 版本与数据库初始化契约](/deployment-baseline/04/)
  - [19.4.1 PostgreSQL、locale、collation、编码与 checksum](/deployment-baseline/04/#item-19-4-1)
  - [19.4.2 WAL、页大小、扩展与认证前提](/deployment-baseline/04/#item-19-4-2)
  - [19.4.3 版本矩阵、升级窗口与勘误入口](/deployment-baseline/04/#item-19-4-3)
- [19.5 拓扑、命名与故障域](/deployment-baseline/05/)
  - [19.5.1 主节点、同步副本、异步副本与仲裁](/deployment-baseline/05/#item-19-5-1)
  - [19.5.2 节点、实例、集群、服务的统一词表](/deployment-baseline/05/#item-19-5-2)
  - [19.5.3 环境、区域、租户与业务命名](/deployment-baseline/05/#item-19-5-3)
- [19.6 用声明式清单交付两个服务单元](/deployment-baseline/06/)
  - [19.6.1 inventory、参数模板与主机分组](/deployment-baseline/06/#item-19-6-1)
  - [19.6.2 生产服务与隔离验证服务](/deployment-baseline/06/#item-19-6-2)
  - [19.6.3 幂等部署、差异检查与失败重跑](/deployment-baseline/06/#item-19-6-3)
- [19.7 实战：L2 部署验收](/deployment-baseline/07/)
  - [19.7.1 核对版本、拓扑、资源、端点和安全入口](/deployment-baseline/07/#item-19-7-1)
  - [19.7.2 从 SQL、主机与 Pigsty 三侧验证同一事实](/deployment-baseline/07/#item-19-7-2)
  - [19.7.3 产出基线清单、风险例外与 `reset:cluster`](/deployment-baseline/07/#item-19-7-3)

##### [ch20 狡兔三窟：高可用拓扑与容灾目标](/high-availability/)

- [20.1 从失败模型设计高可用](/high-availability/01/)
  - [20.1.1 进程、主机、磁盘、网络、机房与控制面故障](/high-availability/01/#item-20-1-1)
  - [20.1.2 RPO、RTO、降级目标与数据风险](/high-availability/01/#item-20-1-2)
  - [20.1.3 高可用不等于备份，也不等于零数据丢失](/high-availability/01/#item-20-1-3)
- [20.2 物理流复制](/high-availability/02/)
  - [20.2.1 WAL 发送、接收、重放与 LSN](/high-availability/02/#item-20-2-1)
  - [20.2.2 timeline、恢复目标与历史分叉](/high-availability/02/#item-20-2-2)
  - [20.2.3 复制槽、归档与 WAL 保留](/high-availability/02/#item-20-2-3)
- [20.3 同步策略与提交语义](/high-availability/03/)
  - [20.3.1 异步、同步与远程应用确认](/high-availability/03/#item-20-3-1)
  - [20.3.2 多副本同步集合与退化条件](/high-availability/03/#item-20-3-2)
  - [20.3.3 延迟、可用性和数据保护的交换](/high-availability/03/#item-20-3-3)
- [20.4 选主、DCS 与防脑裂](/high-availability/04/)
  - [20.4.1 Patroni、租约、leader lock 与健康判断](/high-availability/04/#item-20-4-1)
  - [20.4.2 fencing、watchdog 与旧主隔离](/high-availability/04/#item-20-4-2)
  - [20.4.3 DCS 可用性与数据库可用性不是同一件事](/high-availability/04/#item-20-4-3)
- [20.5 切换、故障转移与重加入](/high-availability/05/)
  - [20.5.1 planned switchover 与 unplanned failover](/high-availability/05/#item-20-5-1)
  - [20.5.2 端点切换、客户端恢复与只读窗口](/high-availability/05/#item-20-5-2)
  - [20.5.3 `pg_rewind`、重建与时间线验证](/high-availability/05/#item-20-5-3)
- [20.6 交付并观察 HA 集群](/high-availability/06/)
  - [20.6.1 拓扑、同步策略与服务端点声明](/high-availability/06/#item-20-6-1)
  - [20.6.2 从 Patroni、SQL 和指标验证角色](/high-availability/06/#item-20-6-2)
  - [20.6.3 演练动作对应的 Pigsty 入口与原生证据](/high-availability/06/#item-20-6-3)
- [20.7 实战：一次有证据的计划切换](/high-availability/07/)
  - [20.7.1 预检查、切换、客户端观察与数据核对](/high-availability/07/#item-20-7-1)
  - [20.7.2 测量实际 RTO、提交风险与恢复时间](/high-availability/07/#item-20-7-2)
  - [20.7.3 输出拓扑证据、时间线和改进项](/high-availability/07/#item-20-7-3)
  - [20.7.4 记录把本章迁移到新版本基线的工时](/high-availability/07/#item-20-7-4)

##### [ch21 未雨绸缪：备份体系与恢复演练](/backup-recovery/)

- [21.1 从恢复场景设计备份](/backup-recovery/01/)
  - [21.1.1 误删、介质故障、区域故障与合规留存](/backup-recovery/01/#item-21-1-1)
  - [21.1.2 RPO、RTO、恢复粒度与保留周期](/backup-recovery/01/#item-21-1-2)
  - [21.1.3 逻辑、物理、快照和副本的职责边界](/backup-recovery/01/#item-21-1-3)
- [21.2 物理备份与 WAL 连续性](/backup-recovery/02/)
  - [21.2.1 基础备份、检查点与一致性起点](/backup-recovery/02/#item-21-2-1)
  - [21.2.2 归档、timeline history 与恢复链](/backup-recovery/02/#item-21-2-2)
  - [21.2.3 复制槽、归档失败与 WAL 保留者](/backup-recovery/02/#item-21-2-3)
- [21.3 备份仓库与保留策略](/backup-recovery/03/)
  - [21.3.1 全量、差异、增量与过期](/backup-recovery/03/#item-21-3-1)
  - [21.3.2 校验、加密、不可变与异地副本](/backup-recovery/03/#item-21-3-2)
  - [21.3.3 容量预算、失败告警与责任人](/backup-recovery/03/#item-21-3-3)
- [21.4 恢复流程与验证](/backup-recovery/04/)
  - [21.4.1 选择备份集、目标时间和恢复位置](/backup-recovery/04/#item-21-4-1)
  - [21.4.2 启动前核对时间线与 WAL 完整性](/backup-recovery/04/#item-21-4-2)
  - [21.4.3 数据库一致不等于业务数据正确](/backup-recovery/04/#item-21-4-3)
- [21.5 用 pgBackRest 交付备份策略](/backup-recovery/05/)
  - [21.5.1 仓库、策略、调度与凭据](/backup-recovery/05/#item-21-5-1)
  - [21.5.2 备份状态、归档状态与容量观察](/backup-recovery/05/#item-21-5-2)
  - [21.5.3 在隔离目标而不是原集群上恢复](/backup-recovery/05/#item-21-5-3)
- [21.6 实战：完成一次隔离恢复演练](/backup-recovery/06/)
  - [21.6.1 创建已知业务检查点并执行备份](/backup-recovery/06/#item-21-6-1)
  - [21.6.2 恢复到隔离集群，核对数据库与业务不变量](/backup-recovery/06/#item-21-6-2)
  - [21.6.3 输出 RPO/RTO 实测、证据链和失败处理 SOP](/backup-recovery/06/#item-21-6-3)

##### [ch22 四通八达：服务接入、连接池与路由](/connection-pooling-routing/)

- [22.1 服务端点的语义](/connection-pooling-routing/01/)
  - [22.1.1 主写、只读、同步只读与直连管理端点](/connection-pooling-routing/01/#item-22-1-1)
  - [22.1.2 复制延迟、一致性与 read-your-writes](/connection-pooling-routing/01/#item-22-1-2)
  - [22.1.3 DNS、VIP、代理与客户端发现](/connection-pooling-routing/01/#item-22-1-3)
- [22.2 连接的服务端成本](/connection-pooling-routing/02/)
  - [22.2.1 后端进程、内存、事务与会话状态](/connection-pooling-routing/02/#item-22-2-1)
  - [22.2.2 `max_connections` 不是容量规划答案](/connection-pooling-routing/02/#item-22-2-2)
  - [22.2.3 应用池、代理池与数据库预算](/connection-pooling-routing/02/#item-22-2-3)
- [22.3 PgBouncer 池化模式](/connection-pooling-routing/03/)
  - [22.3.1 session、transaction、statement pooling](/connection-pooling-routing/03/#item-22-3-1)
  - [22.3.2 临时表、会话 GUC、监听与咨询锁](/connection-pooling-routing/03/#item-22-3-2)
  - [22.3.3 预备语句支持必须绑定 PgBouncer 与驱动版本](/connection-pooling-routing/03/#item-22-3-3)
  - [22.3.4 池等待、服务时间与背压](/connection-pooling-routing/03/#item-22-3-4)
- [22.4 路由与故障切换](/connection-pooling-routing/04/)
  - [22.4.1 HAProxy 健康检查与角色判断](/connection-pooling-routing/04/#item-22-4-1)
  - [22.4.2 旧连接、重连风暴与客户端退避](/connection-pooling-routing/04/#item-22-4-2)
  - [22.4.3 故障切换中的 DNS、连接池和事务失败](/connection-pooling-routing/04/#item-22-4-3)
- [22.5 连接预算与过载边界](/connection-pooling-routing/05/)
  - [22.5.1 按服务分配连接、并发与队列](/connection-pooling-routing/05/#item-22-5-1)
  - [22.5.2 超时层级、取消传播与熔断](/connection-pooling-routing/05/#item-22-5-2)
  - [22.5.3 为 ch34 的止血动作预留控制点](/connection-pooling-routing/05/#item-22-5-3)
- [22.6 Pigsty 服务接入层](/connection-pooling-routing/06/)
  - [22.6.1 服务定义、角色选择与端口](/connection-pooling-routing/06/#item-22-6-1)
  - [22.6.2 PgBouncer、HAProxy 与数据库的证据链](/connection-pooling-routing/06/#item-22-6-2)
  - [22.6.3 配置变更、reload 与连接行为验证](/connection-pooling-routing/06/#item-22-6-3)
- [22.7 实战：写入、只读与管理三类接入](/connection-pooling-routing/07/)
  - [22.7.1 为 `pg36_shop` 配置端点和连接预算](/connection-pooling-routing/07/#item-22-7-1)
  - [22.7.2 验证会话状态、预备语句与只读一致性](/connection-pooling-routing/07/#item-22-7-2)
  - [22.7.3 注入切换与连接风暴，观察退避和恢复](/connection-pooling-routing/07/#item-22-7-3)

##### [ch23 固若金汤：认证、授权与数据安全](/authentication-authorization-security/)

- [23.1 威胁模型与信任边界](/authentication-authorization-security/01/)
  - [23.1.1 用户、应用、运维、平台与第三方](/authentication-authorization-security/01/#item-23-1-1)
  - [23.1.2 网络、凭据、SQL、备份和日志攻击面](/authentication-authorization-security/01/#item-23-1-2)
  - [23.1.3 数据分级、租户边界与应急权限](/authentication-authorization-security/01/#item-23-1-3)
- [23.2 认证与连接准入](/authentication-authorization-security/02/)
  - [23.2.1 `pg_hba.conf` 的匹配顺序与证据](/authentication-authorization-security/02/#item-23-2-1)
  - [23.2.2 SCRAM、证书与外部身份](/authentication-authorization-security/02/#item-23-2-2)
  - [23.2.3 TLS 验证、吊销与密钥轮换](/authentication-authorization-security/02/#item-23-2-3)
- [23.3 角色与最小权限](/authentication-authorization-security/03/)
  - [23.3.1 login、group、owner 与 runtime role](/authentication-authorization-security/03/#item-23-3-1)
  - [23.3.2 schema、table、sequence、function 权限](/authentication-authorization-security/03/#item-23-3-2)
  - [23.3.3 默认权限、所有权迁移与越权路径](/authentication-authorization-security/03/#item-23-3-3)
- [23.4 行级安全与连接池上下文](/authentication-authorization-security/04/)
  - [23.4.1 RLS policy、owner bypass 与强制 RLS](/authentication-authorization-security/04/#item-23-4-1)
  - [23.4.2 租户身份通过事务参数传递](/authentication-authorization-security/04/#item-23-4-2)
  - [23.4.3 transaction pooling 下使用 `SET LOCAL`](/authentication-authorization-security/04/#item-23-4-3)
  - [23.4.4 验证复用连接不会泄漏上一个租户状态](/authentication-authorization-security/04/#item-23-4-4)
- [23.5 密钥、审计与敏感信息](/authentication-authorization-security/05/)
  - [23.5.1 凭据生成、存放、轮换和撤销](/authentication-authorization-security/05/#item-23-5-1)
  - [23.5.2 审计目标、日志范围与访问控制](/authentication-authorization-security/05/#item-23-5-2)
  - [23.5.3 参数、SQL 文本与日志脱敏](/authentication-authorization-security/05/#item-23-5-3)
- [23.6 Pigsty 安全基线](/authentication-authorization-security/06/)
  - [23.6.1 角色、HBA、证书与服务入口声明](/authentication-authorization-security/06/#item-23-6-1)
  - [23.6.2 管理面、监控面和数据库面的网络边界](/authentication-authorization-security/06/#item-23-6-2)
  - [23.6.3 从配置渲染到运行事实的差异检查](/authentication-authorization-security/06/#item-23-6-3)
- [23.7 实战：隔离两个租户](/authentication-authorization-security/07/)
  - [23.7.1 建立应用角色、迁移角色和只读角色](/authentication-authorization-security/07/#item-23-7-1)
  - [23.7.2 通过 PgBouncer 事务池验证 RLS](/authentication-authorization-security/07/#item-23-7-2)
  - [23.7.3 注入会话状态泄漏与越权访问并修复](/authentication-authorization-security/07/#item-23-7-3)
  - [23.7.4 输出权限矩阵、轮换证据与应急回收步骤](/authentication-authorization-security/07/#item-23-7-4)

##### [ch24 纲举目张：SLO、SOP 与组织治理](/slo-sop-governance/)

- [24.1 服务目录与责任模型](/slo-sop-governance/01/)
  - [24.1.1 服务所有者、数据所有者与平台所有者](/slo-sop-governance/01/#item-24-1-1)
  - [24.1.2 等级、规格、依赖、值班与升级路径](/slo-sop-governance/01/#item-24-1-2)
  - [24.1.3 实例健康不等于业务服务健康](/slo-sop-governance/01/#item-24-1-3)
- [24.2 SLI、SLO 与错误预算](/slo-sop-governance/02/)
  - [24.2.1 可用性、延迟、正确性与数据新鲜度](/slo-sop-governance/02/#item-24-2-1)
  - [24.2.2 测量点、统计窗口与排除条件](/slo-sop-governance/02/#item-24-2-2)
  - [24.2.3 错误预算如何约束变更速度](/slo-sop-governance/02/#item-24-2-3)
- [24.3 SOP、Runbook 与变更治理](/slo-sop-governance/03/)
  - [24.3.1 日常操作、故障处置与恢复演练](/slo-sop-governance/03/#item-24-3-1)
  - [24.3.2 申请、评审、执行、验证与回退](/slo-sop-governance/03/#item-24-3-2)
  - [24.3.3 高风险动作的双人或延迟确认](/slo-sop-governance/03/#item-24-3-3)
- [24.4 观察与告警契约](/slo-sop-governance/04/)
  - [24.4.1 每个 SLI 的数据源、查询、维度和缺失语义](/slo-sop-governance/04/#item-24-4-1)
  - [24.4.2 告警必须绑定用户影响、首个安全动作和所有者](/slo-sop-governance/04/#item-24-4-2)
  - [24.4.3 症状告警、原因告警与容量预测分开](/slo-sop-governance/04/#item-24-4-3)
  - [24.4.4 产出供 ch25 实现的告警规则清单](/slo-sop-governance/04/#item-24-4-4)
- [24.5 证据、审计与合规](/slo-sop-governance/05/)
  - [24.5.1 配置、变更、访问和恢复证据](/slo-sop-governance/05/#item-24-5-1)
  - [24.5.2 保留、不可抵赖与隐私边界](/slo-sop-governance/05/#item-24-5-2)
  - [24.5.3 用自动检查减少人工表格](/slo-sop-governance/05/#item-24-5-3)
- [24.6 实战：把 `pg36_shop` 纳入服务治理](/slo-sop-governance/06/)
  - [24.6.1 发布服务卡、SLO、责任人与升级路径](/slo-sop-governance/06/#item-24-6-1)
  - [24.6.2 为备份、切换、权限和发布建立 SOP](/slo-sop-governance/06/#item-24-6-2)
  - [24.6.3 输出观察契约，并拒绝没有动作的告警候选](/slo-sop-governance/06/#item-24-6-3)

#### 第五篇：运营——用证据驱动日常维护与演进

##### [ch25 望闻问切：监控体系与可观测诊断](/observability/)

- [25.1 从问题选择可观测信号](/observability/01/)
  - [25.1.1 用户体验、服务入口、数据库与主机四层](/observability/01/#item-25-1-1)
  - [25.1.2 指标、日志、事件和追踪各回答什么](/observability/01/#item-25-1-2)
  - [25.1.3 标签基数、采样、保留与缺失数据](/observability/01/#item-25-1-3)
- [25.2 PostgreSQL 核心运行信号](/observability/02/)
  - [25.2.1 会话、事务、等待与锁](/observability/02/#item-25-2-1)
  - [25.2.2 缓冲、I/O、WAL、检查点与复制](/observability/02/#item-25-2-2)
  - [25.2.3 vacuum、冻结、膨胀与对象增长](/observability/02/#item-25-2-3)
- [25.3 SQL 可观测基线](/observability/03/)
  - [25.3.1 `pg_stat_statements` 的统计口径与重置](/observability/03/#item-25-3-1)
  - [25.3.2 慢语句、锁等待、临时文件与错误日志](/observability/03/#item-25-3-2)
  - [25.3.3 `auto_explain` 的采样、嵌套语句与开销](/observability/03/#item-25-3-3)
  - [25.3.4 日志不得泄漏密码、令牌和敏感参数](/observability/03/#item-25-3-4)
- [25.4 把观察契约变成告警](/observability/04/)
  - [25.4.1 SLO 燃烧率与用户影响](/observability/04/#item-25-4-1)
  - [25.4.2 阈值、持续时间、去抖、抑制与分组](/observability/04/#item-25-4-2)
  - [25.4.3 每条告警绑定所有者、证据和首个安全动作](/observability/04/#item-25-4-3)
  - [25.4.4 用演练验证告警，而不是等生产事故](/observability/04/#item-25-4-4)
- [25.5 Pigsty 可观测体系](/observability/05/)
  - [25.5.1 采集、存储、规则、面板与通知链](/observability/05/#item-25-5-1)
  - [25.5.2 以指标语义定位集群、实例、数据库和查询](/observability/05/#item-25-5-2)
  - [25.5.3 面板结论回到 SQL、日志与主机事实复核](/observability/05/#item-25-5-3)
- [25.6 从告警到诊断包](/observability/06/)
  - [25.6.1 自动保存时间窗、拓扑、变更与关键查询](/observability/06/#item-25-6-1)
  - [25.6.2 区分首发症状、伴随现象与根因证据](/observability/06/#item-25-6-2)
  - [25.6.3 证据采集本身的负载和权限边界](/observability/06/#item-25-6-3)
- [25.7 实战：实现并演练观察契约](/observability/07/)
  - [25.7.1 为延迟、错误、复制、备份和资源建立规则](/observability/07/#item-25-7-1)
  - [25.7.2 注入可控症状，验证触发、路由、抑制和恢复](/observability/07/#item-25-7-2)
  - [25.7.3 输出告警覆盖表、盲区与 ch31 的诊断入口](/observability/07/#item-25-7-3)

##### [ch26 胸有成竹：容量规划与压测基线](/capacity-benchmarking/)

- [26.1 从需求建立容量模型](/capacity-benchmarking/01/)
  - [26.1.1 事务类型、读写比、并发和数据增长](/capacity-benchmarking/01/#item-26-1-1)
  - [26.1.2 平均值、峰值、突发与批处理叠加](/capacity-benchmarking/01/#item-26-1-2)
  - [26.1.3 延迟目标、错误预算与安全余量](/capacity-benchmarking/01/#item-26-1-3)
- [26.2 设计代表性工作负载](/capacity-benchmarking/02/)
  - [26.2.1 内置 pgbench 与业务自定义脚本](/capacity-benchmarking/02/#item-26-2-1)
  - [26.2.2 参数分布、事务混合和数据倾斜](/capacity-benchmarking/02/#item-26-2-2)
  - [26.2.3 think time、连接方式和客户端瓶颈](/capacity-benchmarking/02/#item-26-2-3)
- [26.3 建立可信实验](/capacity-benchmarking/03/)
  - [26.3.1 固定硬件、版本、配置、数据与随机种子](/capacity-benchmarking/03/#item-26-3-1)
  - [26.3.2 预热、重复、置信区间与异常值](/capacity-benchmarking/03/#item-26-3-2)
  - [26.3.3 冷热缓存、后台任务与邻居噪声](/capacity-benchmarking/03/#item-26-3-3)
  - [26.3.4 绝对性能结论只适用于记录过的环境](/capacity-benchmarking/03/#item-26-3-4)
- [26.4 找到饱和点与瓶颈](/capacity-benchmarking/04/)
  - [26.4.1 吞吐—延迟曲线与排队拐点](/capacity-benchmarking/04/#item-26-4-1)
  - [26.4.2 CPU、内存、I/O、WAL 与锁的证据](/capacity-benchmarking/04/#item-26-4-2)
  - [26.4.3 连接数增加为何可能降低吞吐](/capacity-benchmarking/04/#item-26-4-3)
- [26.5 从测量推导容量与成本](/capacity-benchmarking/05/)
  - [26.5.1 单位业务量的资源消耗](/capacity-benchmarking/05/#item-26-5-1)
  - [26.5.2 增长、保留、备份与维护空间](/capacity-benchmarking/05/#item-26-5-2)
  - [26.5.3 扩容触发线、提前期与失效假设](/capacity-benchmarking/05/#item-26-5-3)
- [26.6 实战：`pg36_shop` 容量基线](/capacity-benchmarking/06/)
  - [26.6.1 运行三个规模和两个并发档位](/capacity-benchmarking/06/#item-26-6-1)
  - [26.6.2 用 Pigsty 与原生视图解释饱和点](/capacity-benchmarking/06/#item-26-6-2)
  - [26.6.3 输出可复现实验报告、容量模型和未知项](/capacity-benchmarking/06/#item-26-6-3)

##### [ch27 精益求精：参数调优与资源治理](/configuration-tuning/)

- [27.1 调优是一套实验方法](/configuration-tuning/01/)
  - [27.1.1 先定义目标、瓶颈和不可退化指标](/configuration-tuning/01/#item-27-1-1)
  - [27.1.2 一次改变一个机制并准备回退](/configuration-tuning/01/#item-27-1-2)
  - [27.1.3 参数变化不修复错误 SQL 和错误模型](/configuration-tuning/01/#item-27-1-3)
- [27.2 内存预算](/configuration-tuning/02/)
  - [27.2.1 shared buffers、操作系统页缓存与双重缓存](/configuration-tuning/02/#item-27-2-1)
  - [27.2.2 `work_mem` 按节点、并发和并行放大](/configuration-tuning/02/#item-27-2-2)
  - [27.2.3 maintenance、autovacuum 与后台进程内存](/configuration-tuning/02/#item-27-2-3)
  - [27.2.4 OOM 风险必须用最坏并发估算](/configuration-tuning/02/#item-27-2-4)
- [27.3 WAL、检查点与写入平滑](/configuration-tuning/03/)
  - [27.3.1 WAL 生成、刷盘与提交延迟](/configuration-tuning/03/#item-27-3-1)
  - [27.3.2 检查点频率、写突发与恢复时间](/configuration-tuning/03/#item-27-3-2)
  - [27.3.3 压缩、全页写与归档代价](/configuration-tuning/03/#item-27-3-3)
- [27.4 规划器、并行与连接参数](/configuration-tuning/04/)
  - [27.4.1 成本参数只能用硬件和计划证据校准](/configuration-tuning/04/#item-27-4-1)
  - [27.4.2 并行 worker 的全局预算与退化条件](/configuration-tuning/04/#item-27-4-2)
  - [27.4.3 连接上限、超时和锁等待边界](/configuration-tuning/04/#item-27-4-3)
- [27.5 参数作用域与变更方式](/configuration-tuning/05/)
  - [27.5.1 编译、初始化、启动、reload 与会话级](/configuration-tuning/05/#item-27-5-1)
  - [27.5.2 系统、数据库、角色与事务覆盖层](/configuration-tuning/05/#item-27-5-2)
  - [27.5.3 配置漂移、审计、回退和滚动风险](/configuration-tuning/05/#item-27-5-3)
- [27.6 模板参数与集群变更](/configuration-tuning/06/)
  - [27.6.1 从模板生成实例配置](/configuration-tuning/06/#item-27-6-1)
  - [27.6.2 区分 reload、restart 与滚动执行](/configuration-tuning/06/#item-27-6-2)
  - [27.6.3 用 SQL 和文件事实验证最终生效值](/configuration-tuning/06/#item-27-6-3)
- [27.7 实战：只调一个已证实的瓶颈](/configuration-tuning/07/)
  - [27.7.1 从 ch26 证据提出参数假设](/configuration-tuning/07/#item-27-7-1)
  - [27.7.2 比较收益、副作用和故障恢复](/configuration-tuning/07/#item-27-7-2)
  - [27.7.3 输出参数 ADR、回退条件与拒绝修改项](/configuration-tuning/07/#item-27-7-3)

##### [ch28 除旧布新：VACUUM、冻结与膨胀治理](/vacuum-freeze-bloat/)

- [28.1 死元组与可见性](/vacuum-freeze-bloat/01/)
  - [28.1.1 UPDATE/DELETE 如何产生旧版本](/vacuum-freeze-bloat/01/#item-28-1-1)
  - [28.1.2 vacuum、prune、HOT 与可见性图](/vacuum-freeze-bloat/01/#item-28-1-2)
  - [28.1.3 回收可重用空间不等于归还文件系统](/vacuum-freeze-bloat/01/#item-28-1-3)
- [28.2 autovacuum 的触发与资源](/vacuum-freeze-bloat/02/)
  - [28.2.1 阈值、比例、插入触发与表级覆盖](/vacuum-freeze-bloat/02/#item-28-2-1)
  - [28.2.2 worker、cost delay、I/O 与业务竞争](/vacuum-freeze-bloat/02/#item-28-2-2)
  - [28.2.3 进度、阻塞与“为什么没清掉”](/vacuum-freeze-bloat/02/#item-28-2-3)
- [28.3 冻结、XID 与保留者](/vacuum-freeze-bloat/03/)
  - [28.3.1 XID 年龄、冻结与回卷保护](/vacuum-freeze-bloat/03/#item-28-3-1)
  - [28.3.2 长事务、`backend_xmin` 与 idle in transaction](/vacuum-freeze-bloat/03/#item-28-3-2)
  - [28.3.3 复制槽 `xmin` 与孤儿 `pg_prepared_xacts`](/vacuum-freeze-bloat/03/#item-28-3-3)
  - [28.3.4 紧急态先解除保留并让 VACUUM 完成](/vacuum-freeze-bloat/03/#item-28-3-4)
- [28.4 膨胀与重建](/vacuum-freeze-bloat/04/)
  - [28.4.1 表膨胀、索引膨胀与统计误判](/vacuum-freeze-bloat/04/#item-28-4-1)
  - [28.4.2 `VACUUM FULL`、在线重建与额外空间](/vacuum-freeze-bloat/04/#item-28-4-2)
  - [28.4.3 `REINDEX CONCURRENTLY` 的版本和失败处理](/vacuum-freeze-bloat/04/#item-28-4-3)
- [28.5 分区生命周期](/vacuum-freeze-bloat/05/)
  - [28.5.1 新分区预建、约束和父表显式 ANALYZE](/vacuum-freeze-bloat/05/#item-28-5-1)
  - [28.5.2 `DETACH`、归档、验证后删除](/vacuum-freeze-bloat/05/#item-28-5-2)
  - [28.5.3 用分区退役替代大批量 `DELETE`](/vacuum-freeze-bloat/05/#item-28-5-3)
  - [28.5.4 将 ch04/ch07/ch11/ch16/ch28 串成能力索引](/vacuum-freeze-bloat/05/#item-28-5-4)
- [28.6 `amcheck` 与例行完整性检查](/vacuum-freeze-bloat/06/)
  - [28.6.1 `bt_index_check` 与更深检查的成本](/vacuum-freeze-bloat/06/#item-28-6-1)
  - [28.6.2 `heapallindexed`、锁与业务窗口](/vacuum-freeze-bloat/06/#item-28-6-2)
  - [28.6.3 `amcheck` 不替代数据页 checksum 和备份恢复](/vacuum-freeze-bloat/06/#item-28-6-3)
- [28.7 实战：建立维护节奏](/vacuum-freeze-bloat/07/)
  - [28.7.1 制造膨胀、长事务与分区到期](/vacuum-freeze-bloat/07/#item-28-7-1)
  - [28.7.2 从指标与原生视图判定维护优先级](/vacuum-freeze-bloat/07/#item-28-7-2)
  - [28.7.3 执行清理、检查和分区退役并验证副作用](/vacuum-freeze-bloat/07/#item-28-7-3)
  - [28.7.4 输出维护清单及 ch34/ch35 的安全路由](/vacuum-freeze-bloat/07/#item-28-7-4)

##### [ch29 移花接木：逻辑复制、迁移与异构同步](/logical-replication-migration/)

- [29.1 逻辑复制原语](/logical-replication-migration/01/)
  - [29.1.1 publication、subscription 与 replication slot](/logical-replication-migration/01/#item-29-1-1)
  - [29.1.2 初始同步、流式变更与复制身份](/logical-replication-migration/01/#item-29-1-2)
  - [29.1.3 DDL、序列、大对象与冲突边界](/logical-replication-migration/01/#item-29-1-3)
- [29.2 CDC 与复制槽治理](/logical-replication-migration/02/)
  - [29.2.1 逻辑解码、插件与消费位点](/logical-replication-migration/02/#item-29-2-1)
  - [29.2.2 至少一次、重复事件与下游幂等](/logical-replication-migration/02/#item-29-2-2)
  - [29.2.3 槽停滞、WAL 保留与磁盘风险](/logical-replication-migration/02/#item-29-2-3)
- [29.3 批量装载与数据校验](/logical-replication-migration/03/)
  - [29.3.1 `COPY`、并行、约束和索引顺序](/logical-replication-migration/03/#item-29-3-1)
  - [29.3.2 行数、摘要、分桶与业务不变量](/logical-replication-migration/03/#item-29-3-2)
  - [29.3.3 装载速度不能牺牲可追溯错误](/logical-replication-migration/03/#item-29-3-3)
- [29.4 在线迁移状态机](/logical-replication-migration/04/)
  - [29.4.1 预检查、全量、增量、追平与冻结窗口](/logical-replication-migration/04/#item-29-4-1)
  - [29.4.2 影子读、双读、切流和观察](/logical-replication-migration/04/#item-29-4-2)
  - [29.4.3 回退点、前滚点与不可逆动作](/logical-replication-migration/04/#item-29-4-3)
- [29.5 异构同步的语义损失](/logical-replication-migration/05/)
  - [29.5.1 类型、精度、排序规则与时区](/logical-replication-migration/05/#item-29-5-1)
  - [29.5.2 约束、事务顺序与删除语义](/logical-replication-migration/05/#item-29-5-2)
  - [29.5.3 目标端可查询不等于语义等价](/logical-replication-migration/05/#item-29-5-3)
- [29.6 多集群迁移环境](/logical-replication-migration/06/)
  - [29.6.1 源、目标、验证端点与隔离凭据](/logical-replication-migration/06/#item-29-6-1)
  - [29.6.2 观察槽、WAL、延迟与切换流量](/logical-replication-migration/06/#item-29-6-2)
  - [29.6.3 保留源环境直到退出观察窗口](/logical-replication-migration/06/#item-29-6-3)
- [29.7 实战：迁移 `pg36_shop`](/logical-replication-migration/07/)
  - [29.7.1 完成全量加增量同步](/logical-replication-migration/07/#item-29-7-1)
  - [29.7.2 注入消费者停滞与数据差异](/logical-replication-migration/07/#item-29-7-2)
  - [29.7.3 验证、切流、回退并输出迁移证据包](/logical-replication-migration/07/#item-29-7-3)

##### [ch30 推陈出新：版本升级与回滚策略](/version-upgrade/)

- [30.1 先识别变化类型](/version-upgrade/01/)
  - [30.1.1 小版本、安全修复与大版本](/version-upgrade/01/#item-30-1-1)
  - [30.1.2 SQL 行为、系统目录、参数和默认值](/version-upgrade/01/#item-30-1-2)
  - [30.1.3 驱动、连接池、备份与观察组件兼容](/version-upgrade/01/#item-30-1-3)
- [30.2 三类大版本升级路径](/version-upgrade/02/)
  - [30.2.1 `pg_upgrade` 与停机窗口](/version-upgrade/02/#item-30-2-1)
  - [30.2.2 逻辑复制与渐进切换](/version-upgrade/02/#item-30-2-2)
  - [30.2.3 dump/restore 与重建机会](/version-upgrade/02/#item-30-2-3)
  - [30.2.4 没有一种路径天然“滚动无感”](/version-upgrade/02/#item-30-2-4)
- [30.3 扩展与依赖升级](/version-upgrade/03/)
  - [30.3.1 二进制包、数据库对象和预加载顺序](/version-upgrade/03/#item-30-3-1)
  - [30.3.2 扩展升级脚本与不可降级路径](/version-upgrade/03/#item-30-3-2)
  - [30.3.3 从 ch14 ADR 获取退出与兼容信息](/version-upgrade/03/#item-30-3-3)
- [30.4 locale、collation 与索引风险](/version-upgrade/04/)
  - [30.4.1 libc、ICU 与排序规则版本](/version-upgrade/04/#item-30-4-1)
  - [30.4.2 排序变化对唯一性和索引顺序的影响](/version-upgrade/04/#item-30-4-2)
  - [30.4.3 识别受影响对象并规划重建](/version-upgrade/04/#item-30-4-3)
- [30.5 升级前检查与业务验证](/version-upgrade/05/)
  - [30.5.1 系统目录、无效对象与长事务](/version-upgrade/05/#item-30-5-1)
  - [30.5.2 `amcheck`、checksum 状态与备份恢复证据](/version-upgrade/05/#item-30-5-2)
  - [30.5.3 查询结果、计划、性能和业务不变量基线](/version-upgrade/05/#item-30-5-3)
  - [30.5.4 `amcheck` 与 checksum 检测对象不同](/version-upgrade/05/#item-30-5-4)
- [30.6 用隔离环境完成升级彩排](/version-upgrade/06/)
  - [30.6.1 克隆数据与版本化配置](/version-upgrade/06/#item-30-6-1)
  - [30.6.2 执行升级、扩展更新和服务接入验证](/version-upgrade/06/#item-30-6-2)
  - [30.6.3 比较 Pigsty 面板与原生证据的前后差异](/version-upgrade/06/#item-30-6-3)
- [30.7 实战：前滚、回退与发布决策](/version-upgrade/07/)
  - [30.7.1 注入一个扩展或排序规则兼容问题](/version-upgrade/07/#item-30-7-1)
  - [30.7.2 在业务写入恢复前验证回退路径](/version-upgrade/07/#item-30-7-2)
  - [30.7.3 输出升级 runbook、决策门和观察窗口](/version-upgrade/07/#item-30-7-3)

#### 第六篇：出山——按响应目标演练恢复与改进

##### [ch31 事件分级、现场保护与应急决策——枕戈待旦](/incident-response/)

- [31.1 事件分级与响应目标](/incident-response/01/)
  - [31.1.1 用户影响、数据风险、范围与持续时间](/incident-response/01/#item-31-1-1)
  - [31.1.2 恢复数据、恢复拓扑、释放流量压力、抢救完整性](/incident-response/01/#item-31-1-2)
  - [31.1.3 严重度决定节奏，不替代技术判型](/incident-response/01/#item-31-1-3)
- [31.2 第一原则：保护现场与可恢复性](/incident-response/02/)
  - [31.2.1 暂停自动化、危险变更与证据覆盖](/incident-response/02/#item-31-2-1)
  - [31.2.2 记录时间、拓扑、版本、告警与最近变更](/incident-response/02/#item-31-2-2)
  - [31.2.3 先克隆、隔离或只读，再做破坏性尝试](/incident-response/02/#item-31-2-3)
- [31.3 从症状路由而不是猜根因](/incident-response/03/)
  - [31.3.1 误删误改与恢复目标 → ch32《PITR 与误操作恢复》](/incident-response/03/#item-31-3-1)
  - [31.3.2 主节点、复制或 DCS 异常 → ch33《故障切换与集群重建》](/incident-response/03/#item-31-3-2)
  - [31.3.3 连接、延迟、CPU、内存、I/O 或磁盘表象 → ch34《过载保护与资源故障判型》](/incident-response/03/#item-31-3-3)
  - [31.3.4 checksum、索引、排序或逻辑不一致 → ch35《数据抢救与工程取证》](/incident-response/03/#item-31-3-4)
- [31.4 决策、沟通与变更纪律](/incident-response/04/)
  - [31.4.1 事实、假设、动作、预期与停止条件](/incident-response/04/#item-31-4-1)
  - [31.4.2 单一指挥、记录员、执行者与业务接口](/incident-response/04/#item-31-4-2)
  - [31.4.3 高风险动作的复核、审批与回退](/incident-response/04/#item-31-4-3)
- [31.5 单人值守与团队响应](/incident-response/05/)
  - [31.5.1 单人时先稳定、记录，再逐级升级](/incident-response/05/#item-31-5-1)
  - [31.5.2 团队时避免多人同时改同一系统](/incident-response/05/#item-31-5-2)
  - [31.5.3 何时必须请求业务、存储、安全或厂商协助](/incident-response/05/#item-31-5-3)
- [31.6 实战：盲抽症状的桌面演练](/incident-response/06/)
  - [31.6.1 随机症状、误导性首发告警与缺失信息](/incident-response/06/#item-31-6-1)
  - [31.6.2 分别按单人和团队模式完成前十五分钟](/incident-response/06/#item-31-6-2)
  - [31.6.3 在 Pigsty L3 输出时间线、决策日志、证据包与路由选择](/incident-response/06/#item-31-6-3)

##### [ch32 PITR 与误操作恢复——妙手回春](/pitr/)

- [32.1 先界定误操作](/pitr/01/)
  - [32.1.1 错误 UPDATE、DELETE、DROP 与批处理](/pitr/01/#item-32-1-1)
  - [32.1.2 影响对象、开始时间、结束时间和持续写入](/pitr/01/#item-32-1-2)
  - [32.1.3 逻辑补偿、对象恢复与整库 PITR 的选择](/pitr/01/#item-32-1-3)
- [32.2 恢复目标与时间线](/pitr/02/)
  - [32.2.1 时间、LSN、事务 ID 与命名恢复点](/pitr/02/#item-32-2-1)
  - [32.2.2 timeline 分叉与“恢复到刚刚之前”](/pitr/02/#item-32-2-2)
  - [32.2.3 时钟、时区和证据误差](/pitr/02/#item-32-2-3)
- [32.3 隔离恢复策略](/pitr/03/)
  - [32.3.1 不覆盖仍可取证的原集群](/pitr/03/#item-32-3-1)
  - [32.3.2 选择备份、WAL 与目标环境](/pitr/03/#item-32-3-2)
  - [32.3.3 控制网络、凭据和外部副作用](/pitr/03/#item-32-3-3)
- [32.4 执行恢复并观察进度](/pitr/04/)
  - [32.4.1 从已验证备份克隆恢复目标](/pitr/04/#item-32-4-1)
  - [32.4.2 监控 WAL 重放、目标达成与启动状态](/pitr/04/#item-32-4-2)
  - [32.4.3 用原生文件、日志和 SQL 复核工具状态](/pitr/04/#item-32-4-3)
- [32.5 数据验证与安全回切](/pitr/05/)
  - [32.5.1 行数、摘要、关键交易与跨表不变量](/pitr/05/#item-32-5-1)
  - [32.5.2 提取差异、逻辑补回或切换整个服务](/pitr/05/#item-32-5-2)
  - [32.5.3 防止恢复环境向外重复发送消息和支付](/pitr/05/#item-32-5-3)
- [32.6 实战：随机恢复目标演练](/pitr/06/)
  - [32.6.1 在隐藏时间窗内注入误更新](/pitr/06/#item-32-6-1)
  - [32.6.2 独立定位目标、恢复、验证与回切](/pitr/06/#item-32-6-2)
  - [32.6.3 测量 RPO/RTO 并记录版本迁移工时](/pitr/06/#item-32-6-3)
  - [32.6.4 输出恢复证据和备份体系改进项](/pitr/06/#item-32-6-4)

##### [ch33 故障切换与集群重建——力挽狂澜](/failover-rebuild/)

- [33.1 先识别失败域](/failover-rebuild/01/)
  - [33.1.1 进程失败、主机失败与存储失败](/failover-rebuild/01/#item-33-1-1)
  - [33.1.2 网络分区、客户端不可达与代理误判](/failover-rebuild/01/#item-33-1-2)
  - [33.1.3 主库失败、复制停滞与控制面失败](/failover-rebuild/01/#item-33-1-3)
- [33.2 复制状态与时间线证据](/failover-rebuild/02/)
  - [33.2.1 发送、接收、重放位置与延迟](/failover-rebuild/02/#item-33-2-1)
  - [33.2.2 timeline、历史文件与分叉](/failover-rebuild/02/#item-33-2-2)
  - [33.2.3 数据最新不等于可以安全提升](/failover-rebuild/02/#item-33-2-3)
- [33.3 自动故障转移的保护条件](/failover-rebuild/03/)
  - [33.3.1 候选健康、数据风险与多数判断](/failover-rebuild/03/#item-33-3-1)
  - [33.3.2 fencing 旧主与防止双写](/failover-rebuild/03/#item-33-3-2)
  - [33.3.3 自动化不确定时何时转人工](/failover-rebuild/03/#item-33-3-3)
- [33.4 DCS 故障的安全处理](/failover-rebuild/04/)
  - [33.4.1 DCS 不可达、失去多数与延迟](/failover-rebuild/04/#item-33-4-1)
  - [33.4.2 先保护当前数据库角色，不盲目重置选举状态](/failover-rebuild/04/#item-33-4-2)
  - [33.4.3 恢复控制面后核对 leader lock 与数据库事实](/failover-rebuild/04/#item-33-4-3)
- [33.5 旧主重加入与集群重建](/failover-rebuild/05/)
  - [33.5.1 `pg_rewind` 的前提、失败与验证](/failover-rebuild/05/#item-33-5-1)
  - [33.5.2 从备份或新基础备份重建](/failover-rebuild/05/#item-33-5-2)
  - [33.5.3 复制槽、端点和客户端状态清理](/failover-rebuild/05/#item-33-5-3)
- [33.6 切换与重建 runbook](/failover-rebuild/06/)
  - [33.6.1 计划切换、故障切换与人工干预入口](/failover-rebuild/06/#item-33-6-1)
  - [33.6.2 Patroni、DCS、代理和 SQL 证据互证](/failover-rebuild/06/#item-33-6-2)
  - [33.6.3 集群恢复后重新建立监控与备份健康](/failover-rebuild/06/#item-33-6-3)
- [33.7 实战：主库故障与 DCS 干扰](/failover-rebuild/07/)
  - [33.7.1 随机注入主机、网络或 DCS 症状](/failover-rebuild/07/#item-33-7-1)
  - [33.7.2 保护旧主、选择候选、测量 RTO/RPO](/failover-rebuild/07/#item-33-7-2)
  - [33.7.3 重建旧主并验证时间线、端点和业务写入](/failover-rebuild/07/#item-33-7-3)

##### [ch34 过载保护与资源故障判型——李代桃僵](/overload-resource-incidents/)

- [34.1 第一动作：流量型还是保留型](/overload-resource-incidents/01/)
  - [34.1.1 流量增长、慢查询、锁与连接导致的竞争](/overload-resource-incidents/01/#item-34-1-1)
  - [34.1.2 WAL、XID、复制槽、归档和长事务导致的保留](/overload-resource-incidents/01/#item-34-1-2)
  - [34.1.3 同样表现为“磁盘满”或“延迟高”，动作可以相反](/overload-resource-incidents/01/#item-34-1-3)
  - [34.1.4 判型不清时先停止破坏性清理](/overload-resource-incidents/01/#item-34-1-4)
- [34.2 连接风暴与排队失控](/overload-resource-incidents/02/)
  - [34.2.1 数据库连接、代理池与应用池三层](/overload-resource-incidents/02/#item-34-2-1)
  - [34.2.2 重试放大、健康检查和短连接](/overload-resource-incidents/02/#item-34-2-2)
  - [34.2.3 限流、队列、连接预算与指数退避](/overload-resource-incidents/02/#item-34-2-3)
- [34.3 失控查询、锁与事务](/overload-resource-incidents/03/)
  - [34.3.1 识别高消耗查询和阻塞根节点](/overload-resource-incidents/03/#item-34-3-1)
  - [34.3.2 cancel、terminate 与中止后成本](/overload-resource-incidents/03/#item-34-3-2)
  - [34.3.3 长事务和大事务结束前先评估后果](/overload-resource-incidents/03/#item-34-3-3)
- [34.4 CPU、内存、I/O 与 OOM](/overload-resource-incidents/04/)
  - [34.4.1 饱和、排队、抖动与抢占](/overload-resource-incidents/04/#item-34-4-1)
  - [34.4.2 临时文件、并行、checkpoint 与后台维护](/overload-resource-incidents/04/#item-34-4-2)
  - [34.4.3 内存最坏并发、OOM killer 与进程重启](/overload-resource-incidents/04/#item-34-4-3)
- [34.5 流量型止血动作](/overload-resource-incidents/05/)
  - [34.5.1 限流、熔断、摘除非关键负载](/overload-resource-incidents/05/#item-34-5-1)
  - [34.5.2 取消查询、暂停批处理与只读降级](/overload-resource-incidents/05/#item-34-5-2)
  - [34.5.3 每个动作写清收益、代价、停止条件和回退](/overload-resource-incidents/05/#item-34-5-3)
- [34.6 保留型故障的安全路由](/overload-resource-incidents/06/)
  - [34.6.1 XID：检查 `backend_xmin`、复制槽 `xmin` 与 `pg_prepared_xacts`](/overload-resource-incidents/06/#item-34-6-1)
  - [34.6.2 WAL 撑盘：检查归档失败、复制槽和未完成备份](/overload-resource-incidents/06/#item-34-6-2)
  - [34.6.3 绝不手工删除 `pg_wal`；保护现场后转 ch21/ch28/ch35](/overload-resource-incidents/06/#item-34-6-3)
  - [34.6.4 本章的一般止血动作不构成保留型修复](/overload-resource-incidents/06/#item-34-6-4)
- [34.7 平台级流量控制与证据](/overload-resource-incidents/07/)
  - [34.7.1 从服务端点隔离批处理和只读流量](/overload-resource-incidents/07/#item-34-7-1)
  - [34.7.2 用连接池、代理与应用控制点逐级减压](/overload-resource-incidents/07/#item-34-7-2)
  - [34.7.3 从面板判断范围，再用 SQL 与主机证据判型](/overload-resource-incidents/07/#item-34-7-3)
- [34.8 实战：同一症状、两种成因](/overload-resource-incidents/08/)
  - [34.8.1 随机注入连接风暴或 WAL 保留](/overload-resource-incidents/08/#item-34-8-1)
  - [34.8.2 在不知道答案时先判型，再选择动作](/overload-resource-incidents/08/#item-34-8-2)
  - [34.8.3 对流量型恢复服务，对保留型完成安全路由](/overload-resource-incidents/08/#item-34-8-3)
  - [34.8.4 输出动作时间线、误判代价与容量改进项](/overload-resource-incidents/08/#item-34-8-4)

##### [ch35 数据抢救与工程取证——起死回生](/data-rescue-forensics/)

- [35.1 现场保护与操作边界](/data-rescue-forensics/01/)
  - [35.1.1 停写、只读、快照、克隆与证据哈希](/data-rescue-forensics/01/#item-35-1-1)
  - [35.1.2 记录硬件、内核、日志、版本和最近变更](/data-rescue-forensics/01/#item-35-1-2)
  - [35.1.3 不在唯一副本上反复试错](/data-rescue-forensics/01/#item-35-1-3)
  - [35.1.4 绝不手工删除 `pg_wal` 或原始损坏文件](/data-rescue-forensics/01/#item-35-1-4)
- [35.2 先分类再抢救](/data-rescue-forensics/02/)
  - [35.2.1 物理页、存储与 checksum 错误](/data-rescue-forensics/02/#item-35-2-1)
  - [35.2.2 索引、排序规则与派生结构错误](/data-rescue-forensics/02/#item-35-2-2)
  - [35.2.3 逻辑不变量、应用写错与语义损坏](/data-rescue-forensics/02/#item-35-2-3)
  - [35.2.4 三类问题的恢复来源不同](/data-rescue-forensics/02/#item-35-2-4)
- [35.3 页与 checksum 证据](/data-rescue-forensics/03/)
  - [35.3.1 checksum 是否启用及其检测边界](/data-rescue-forensics/03/#item-35-3-1)
  - [35.3.2 日志、块号、关系文件与物理定位](/data-rescue-forensics/03/#item-35-3-2)
  - [35.3.3 存储故障先修基础设施，再谈数据库重建](/data-rescue-forensics/03/#item-35-3-3)
- [35.4 索引、collation 与 `amcheck`](/data-rescue-forensics/04/)
  - [35.4.1 `bt_index_check`、`heapallindexed` 与锁成本](/data-rescue-forensics/04/#item-35-4-1)
  - [35.4.2 collation 版本变化与索引顺序异常](/data-rescue-forensics/04/#item-35-4-2)
  - [35.4.3 索引可重建不意味着堆表数据安全](/data-rescue-forensics/04/#item-35-4-3)
- [35.5 抽取、跳过与重建策略](/data-rescue-forensics/05/)
  - [35.5.1 优先从备份、健康副本或逻辑来源恢复](/data-rescue-forensics/05/#item-35-5-1)
  - [35.5.2 对可读数据做分段抽取和校验](/data-rescue-forensics/05/#item-35-5-2)
  - [35.5.3 危险恢复参数只在克隆现场、明确损失下使用](/data-rescue-forensics/05/#item-35-5-3)
  - [35.5.4 何时停止自救并升级到专业支持](/data-rescue-forensics/05/#item-35-5-4)
- [35.6 工程取证与业务验证](/data-rescue-forensics/06/)
  - [35.6.1 保留原始证据、操作副本和完整时间线](/data-rescue-forensics/06/#item-35-6-1)
  - [35.6.2 区分“数据库能启动”与“业务数据可信”](/data-rescue-forensics/06/#item-35-6-2)
  - [35.6.3 记录不可恢复范围与合规沟通](/data-rescue-forensics/06/#item-35-6-3)
- [35.7 实战：在克隆环境分类并恢复](/data-rescue-forensics/07/)
  - [35.7.1 仅在启用 checksum 的专用镜像注入可控页异常](/data-rescue-forensics/07/#item-35-7-1)
  - [35.7.2 另设索引或 collation 异常，随机隐藏故障类型](/data-rescue-forensics/07/#item-35-7-2)
  - [35.7.3 用备份、重建或抽取恢复并验证不变量](/data-rescue-forensics/07/#item-35-7-3)
  - [35.7.4 用 `reset:host` 重建 Pigsty L3，不复用损坏现场](/data-rescue-forensics/07/#item-35-7-4)

##### [ch36 事故复盘、控制固化与平台演进——举一反三](/postmortem-platform-improvement/)

- [36.1 服务恢复不等于事件结束](/postmortem-platform-improvement/01/)
  - [36.1.1 恢复用户影响、数据正确性与运行余量](/postmortem-platform-improvement/01/#item-36-1-1)
  - [36.1.2 清理临时降级、应急权限和旁路配置](/postmortem-platform-improvement/01/#item-36-1-2)
  - [36.1.3 通知、观察窗口与正式结案条件](/postmortem-platform-improvement/01/#item-36-1-3)
- [36.2 从时间线建立因果链](/postmortem-platform-improvement/02/)
  - [36.2.1 触发条件、放大机制与失效防线](/postmortem-platform-improvement/02/#item-36-2-1)
  - [36.2.2 技术、流程、组织与认知因素](/postmortem-platform-improvement/02/#item-36-2-2)
  - [36.2.3 避免单一根因和个人归罪](/postmortem-platform-improvement/02/#item-36-2-3)
- [36.3 证据质量与决策复盘](/postmortem-platform-improvement/03/)
  - [36.3.1 哪些事实当时可见，哪些后来才知道](/postmortem-platform-improvement/03/#item-36-3-1)
  - [36.3.2 哪些假设被验证，哪些动作靠运气](/postmortem-platform-improvement/03/#item-36-3-2)
  - [36.3.3 告警、日志和时间同步缺口](/postmortem-platform-improvement/03/#item-36-3-3)
- [36.4 把行动项变成控制](/postmortem-platform-improvement/04/)
  - [36.4.1 所有者、截止时间、验证方法与失效条件](/postmortem-platform-improvement/04/#item-36-4-1)
  - [36.4.2 自动检查、发布门、容量线与恢复演练](/postmortem-platform-improvement/04/#item-36-4-2)
  - [36.4.3 不能验证的“加强意识”不是合格行动项](/postmortem-platform-improvement/04/#item-36-4-3)
- [36.5 回写 SLO、SOP 与架构 ADR](/postmortem-platform-improvement/05/)
  - [36.5.1 更新观察契约、告警规则与 runbook](/postmortem-platform-improvement/05/#item-36-5-1)
  - [36.5.2 修正 RPO/RTO、容量和安全假设](/postmortem-platform-improvement/05/#item-36-5-2)
  - [36.5.3 将必要变更纳入服务目录与版本路线](/postmortem-platform-improvement/05/#item-36-5-3)
- [36.6 将控制固化到平台](/postmortem-platform-improvement/06/)
  - [36.6.1 配置模板、验证脚本与策略即代码](/postmortem-platform-improvement/06/#item-36-6-1)
  - [36.6.2 备份、切换、容量和维护的周期演练](/postmortem-platform-improvement/06/#item-36-6-2)
  - [36.6.3 从单个补丁升级为默认护栏](/postmortem-platform-improvement/06/#item-36-6-3)
- [36.7 实战：复盘四类事故并完成全书结业](/postmortem-platform-improvement/07/)
  - [36.7.1 汇总 ch32–ch35 的证据、决策与用户影响](/postmortem-platform-improvement/07/#item-36-7-1)
  - [36.7.2 找出跨事故重复出现的控制缺口](/postmortem-platform-improvement/07/#item-36-7-2)
  - [36.7.3 输出 90 天改进路线、平台 backlog 与复验计划](/postmortem-platform-improvement/07/#item-36-7-3)
  - [36.7.4 回看从 SQL 到生产的能力地图](/postmortem-platform-improvement/07/#item-36-7-4)

## 附录

- [附录 A](/appendices/a/)
- [附录 B](/appendices/b/)
- [附录 C](/appendices/c/)
- [附录 D](/appendices/d/)
- [附录 E](/appendices/e/)
- [附录 F](/appendices/f/)
