更新时间:2023-04-19 GMT+08:00

归档

archive_mode

参数说明:该参数控制是否将已完成的WAL段文件进行归档存储。

参数类型:SIGHUP

取值范围: 布尔值

  • on表示进行归档。
  • off表示不进行归档。

默认值:off

wal_level设置成minimal时,archive_mode参数无法使用。

archive_command

参数说明:由管理员设置的用于归档WAL日志的命令,建议归档路径为绝对路径。

参数类型:SIGHUP

取值范围:字符串

默认值:(disabled)

  • 字符串中任何%p都被要归档的文件的绝对路径代替,而任何%f都只被该文件名代替(相对路径都相对于数据目录的)。如果需要在命令里嵌入%字符就必须双写%。
  • 这个命令当且仅当成功的时候才返回零。示例如下:
    1
    2
    archive_command = 'cp --remove-destination %p /mnt/server/archivedir/%f' 
    archive_command = 'copy %p /mnt/server/archivedir/%f'  # Windows
    
  • --remove-destination选项作用为:复制前如果目标文件已存在,会先删除已存在的目标文件,然后执行复制操作。
  • 当archive_mode为on, archive_mode未设置时,系统会在pg_xlog目录下新建backup目录,并将wal日志复制压缩至pg_xlog/backup目录。

max_xlog_backup_size

参数说明:设置pg_xlog/backup目录下备份WAL日志的大小。

参数类型:SIGHUP

取值范围:整型,1048576 ~ 104857600,单位为KB。

默认值:2097152

  • 当且仅当archive_mode开启,archive_command为NULL时,max_xlog_backup_size参数设置才会生效。
  • 每分钟检查pg_xlog/backup目录下备份WAL日志大小,当超过max_xlog_backup_size设置值时,删除最早的备份wal日志,直至备份WAL日志小于max_xlog_backup_size * 0.9。

archive_timeout

参数说明:表示归档周期。

参数类型:SIGHUP

取值范围:整型,0 ~ INT_MAX,单位为秒。其中0表示禁用该功能。

默认值:0

  • 超过该参数设定的时间时强制切换WAL段。
  • 由于强制切换而提早关闭的归档文件仍然与完整的归档文件长度相同。因此,将archive_timeout设为很小的值将导致占用巨大的归档存储空间,建议将archive_timeout设置为60秒。