PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

19.5. 预写式日志设置 #

控制系统的持久性与恢复性能边界:

wal_level(enum)

决定记录在 WAL 中的信息丰度。可选值为 minimal(仅能用于崩溃恢复)、replica(支持物理流复制与物理归档恢复,默认推荐值)以及 logical(支持逻辑复制与 CDC 数据捕获)。

fsync(boolean)

控制服务器是否在事务提交时强制调用 fsync() 系统调用将 WAL 日志物理刷入磁盘。生产环境绝对严禁关闭此选项,否则突发掉电将导致数据库文件物理损坏无法启动。

synchronous_commit(enum)

控制事务提交时是否同步等待 WAL 刷盘完成。设为 off 可开启异步提交以大幅换取写吞吐。

checkpoint_timeout(integer,带时间单位)

自动检查点触发的最大时间间隔,默认通常为 5 分钟(建议生产环境适当延长至 15 到 30 分钟)。

max_wal_size(integer,带内存单位)

在两次自动检查点之间允许产生的最大 WAL 日志体积。超过此阈值将强制提前触发检查点刷盘,生产环境通常设定在 16GB 到 64GB 之间。

archive_mode 与 archive_command

开启 WAL 日志归档并指定物理归档脚本,是搭建基于时间点恢复(PITR)和远程冷备的核心参数。