六、WAL、检查点与恢复
**预写日志(Write-Ahead Logging,WAL)**是 PostgreSQL 持久性与可恢复性的基石:任何对数据页的修改,都必须先把对应的 WAL 记录持久化,才能允许数据页落盘。基于 WAL,PostgreSQL 实现崩溃恢复、归档恢复、时间点恢复(PITR)与流复制。本章讲清 WAL 的结构与刷盘链路、检查点与整页写、三类恢复流程,以及 WAL 激增/归档积压/复制槽保留这三类高频容量问题的诊断。
本章目录
学习目标
- 说清 WAL 的写前日志原则、LSN 与段文件组织
- 理解检查点、整页写与 Shared Buffers/后台进程/存储刷盘的关系
- 区分崩溃恢复、归档恢复与 PITR,掌握恢复目标与时间线
- 建立 WAL 生成量、归档状态、复制槽保留与磁盘压力的诊断路径
依赖与前置
- 前置:MVCC、Vacuum 与膨胀(冻结/清理也会产生 WAL)。
- 后置:本章是复制与高可用与备份、恢复与容灾的直接基础。
