WAL 机制在集群启动时默认自动激活,管理员无需任何手动介入,只需确保为存储 WAL 的文件系统规划充足的磁盘空间。
每条新写入的 WAL 记录均以单调递增的字节偏移量进行唯一定位,该物理偏移量被称为日志序号(Log Sequence Number,简称 LSN)。LSN 对应的数据类型为 pg_lsn。通过比对和相减两个 LSN,可以精确测算各节点之间的数据落后量,广泛应用于主备流复制延迟监控。
WAL 文件存放在数据目录下的 pg_wal 子目录中,以一系列固定大小(默认每个段文件为 16MB)的日志段文件存在。段文件以单调递增的十六进制数值命名(例如 000000010000000000000001)。在企业级架构中,将 pg_wal 软链接或单独挂载至独立的高速物理盘或专用 NVMe 阵列上,是避免日志顺序写与数据随机写争抢 I/O 资源的标准最佳实践。
每次成功完成检查点并将 WAL 刷盘后,检查点的最新 LSN 位置会被固化保存在核心控制文件 pg_control 中。因此在系统遭遇意外宕机重启时,实例首先读取 pg_control 获悉最近检查点位置,随后驱动 REDO 引擎自该位置起向后扫描日志,将集群恢复到崩溃前最后一刻的强一致性状态。