wal_level
英文手册覆盖始于 PostgreSQL 7.4. 来源历史与运行验证各自保留独立版本边界。
当前阅读 PG 18·选择有来源记录的版本
- boot val
- replica
- category
- Write-Ahead Log / Settings
- context
- postmaster
- documented
- true
- enumvals
- minimal, replica, logical
- extra desc
- 未知
- lang
- en
- max val
- 未知
- metadata version
- 18
- min val
- 未知
- name
- wal_level
- short desc
- Sets the level of information written to the WAL.
- source
- pg-settings-source-snapshot
- unit
- 未知
- vartype
- enum
版本定义 PG 18
wal_level决定多少信息写入到 WAL 中。默认值是replica,它会写入足够的数据以支持WAL归档和复制,包括在备库上运行只读查询。minimal会去掉除从崩溃或者立即关机中进行恢复所需的信息之外的所有记录。最后,logical会增加支持逻辑解码所需的信息。每个层次包括所有更低层次记录的信息。这个参数只能在服务器启动时设置。
minimal级别生成最少的WAL日志量。对于在当前事务中创建或重写的永久关系,不记录其行信息。这可以使操作速度更快(参见第 14.4.7 节)。触发此优化的操作包括:
ALTER ... SET TABLESPACE |
CLUSTER |
CREATE TABLE |
REFRESH MATERIALIZED VIEW(不使用CONCURRENTLY) |
REINDEX |
TRUNCATE |
然而,minimal 级别的 WAL 不包含足够的信息用于时间点恢复,因此必须使用replica或更高级别来启用持续归档(archive_mode)和流式二进制复制。实际上,如果max_wal_senders不为零,服务器甚至不会以此模式启动。请注意,将wal_level更改为minimal会使先前的基础备份无法用于时间点恢复和备库。
在logical级别上,记录与replica相同的信息,以及从WAL中提取逻辑变更集所需的信息。使用logical级别会增加 WAL 的数量,特别是如果许多表被配置为REPLICA IDENTITY FULL,并且执行了许多UPDATE和DELETE语句。
在 9.6 之前的版本中,这个参数也允许值archive和hot_standby。现在仍然接受这些值,但是它们会被映射到replica。
比较版本
来源引用
定义来源
center · PostgreSQL 18 · english-manuals:f3739c9193b8aba5d64bc752adcfdac035a0aa826ea6ef4fe2252ed93d55c881
正文语言: zh-Hans · 2026-09-11@29c86d9