WAL(write ahead log)位于数据目录下的pg_wal目录。这个日志等于OracleREDO log。与Oracle归档不同的是,PG采用第三方工具(文件系统级备份)来对WAL进行归档。

配置文件postgresql.conf

  • 设置wal_levelreplica或更高级别;
    -mininal : 只记录实例恢复所需的信息
    -replica :记录支持WAL归档和复制的足够信息
    -logical :记录支持逻辑解码的足够信息
  • 设置archive_modeon
    -off : 禁用归档模式
    -on : 启用归档模式
    -always : 启用归档模式,并且在归档恢复和备库模式下依然归档。

当wal_level设置为mininal时,归档模式不能被启用。

  • 设置archive_command为合适的shell命令
    1. 这里shell命令中%p表示需要归档的全路径,%f表示文件名。
    2. shell命令返回0值,则PostgreSQL认为已归档成功,否则会重新进行归档。
    3. 归档命令应该被设计为不要覆盖已有的文件。
    4. 归档命令只会作用在完成的WAL段上,因此如果需要限时进行归档,可以设置archive_timeout参数来强制数据库switch WAL
    5. 也可以手动执行pg_switch_wal来手动切换。(在Oracle中是手动switcharchive logfile current
  • No labels