类型: | enum |
默认: | replica |
上下文: | postmaster |
重新开始: | true |
值: | [minimal, replica, logical] |
wal_level
决定多少信息写入到 WAL 中。默认值是replica
,它会写入足够的数据以支持WAL归档和复制,包括在后备服务器上运行只读查询。minimal
会去掉除从崩溃或者立即关机中进行恢复所需的信息之外的所有记录。最后,logical
会增加支持逻辑解码所需的信息。每个层次包括所有更低层次记录的信息。这个参数只能在服务器启动时设置。
在minimal
级别中,某些批量操作的 WAL 日志可以被安全地跳过,这可以使那些操作更快(见populate-pitr)。这种优化可以应用的操作包括:
- CREATE TABLE AS
- CREATE INDEX
- CLUSTER
- COPY到在同一个事务中被创建或截断的表中
replica
或更高级别。
在logical
层,与replica
相同的信息会被记录,外加上 允许从 WAL 抽取逻辑修改集所需的信息。使用级别 logical
将增加 WAL 容量,特别是如果为了REPLICA IDENTITY FULL
配置了很多表并且执行了很多UPDATE和DELETE 语句时。
在 9.6 之前的版本中,这个参数也允许值archive
和hot_standby
。现在仍然接受这些值,但是它们会被映射到replica
。
建议 [EN]
Level replica is required for binary replication, and level logical is required for logical replication. This is a setting because raising the level adds more writes to the WAL, so if you’re not doing replication or archiving at all, set it to minimal.