跳到主要内容

WAL参数

wal_level

枚举类型。WAL(Write-Ahead Log,预写式日志)的级别。默认replica。其它可选的值包括minimal、logical。

#wal_level = replica # minimal, replica, or logical (change requires restart)

fsync

布尔类型。是否尝试确保数据已写入磁盘。默认值on。

#fsync = on # flush data to disk for crash safety (turning this off can cause unrecoverable data corruption)

full_page_writes

布尔类型。是否将整页写入到WAL日志中。默认为on。

#full_page_writes = on # recover from partial page writes

wal_compression

枚举类型。是否对WAL日志进行压缩。有效值包括off、on、pglz、lz4。默认值off。

#wal_compression = off # enables compression of full-page writes; off, on, pglz, or lz4

wal_recycle

布尔类型。是否重用WAL日志文件。默认值on。

#wal_recycle = on # recycle WAL files

min_wal_size

数值类型。WAL日志文件大小的下限,也是WAL日志空间回收后保留的最小值。默认值80MB。该参数可在运行期间设置(reload后生效)。

min_wal_size = 8GB

max_wal_size

数值类型。WAL日志文件大小的上限。在自动检查点期间,系统会尽量将WAL日志空间控制在min_wal_size与max_wal_size之间。max_wal_size默认值1GB。该参数可在运行期间设置(reload后生效)。

max_wal_size = 2GB

archive_mode

枚举类型。是否开启日志归档。有效值包括off、on、always。默认值off。该参数只能在实例启动时设置。开启归档需同时设置archive_command,可在 $PGDATA/postgresql.conf 中修改,例如:

archive_mode = on # (change requires restart)

archive_command

字符串类型。归档使用的命令。一个简单且较常用的命令类似'test ! -f <归档路径>/%f && cp %p <归档路径>/%f'。

archive_command = 'test ! -f /data/halo/archivedir/%f && cp %p /data/halo/archivedir/%f' # e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'