pgBackRest用にWALアーカイブを構成(archive-push/archive-get)
PostgreSQLバックアップとPITRコマンド
# postgresql.conf (changing archive_mode requires a restart):
wal_level = replica
archive_mode = on
archive_command = 'pgbackrest --stanza=<stanza> archive-push %p'
# On the restore/standby side (in postgresql.conf on PG12+):
restore_command = 'pgbackrest --stanza=<stanza> archive-get %f "%p"'
# /etc/pgbackrest/pgbackrest.conf (database host, local repo example):
[global]
repo1-path=/var/lib/pgbackrest
repo1-retention-full=2
archive-async=y
spool-path=/var/spool/pgbackrest
process-max=4
compress-type=zst
start-fast=y
[<stanza>]
pg1-path=/var/lib/pgsql/16/data概要
PostgreSQLが完了した各WALセグメントをpgBackRestリポジトリに送信し(archive-push)、リカバリ時にそこから取得する(archive-get)ようにする。archive-asyncはスプールディレクトリを介して送信を並列・非同期にする。
使用する場面
pgBackRestで物理バックアップとPITRを設定する最初の手順として、stanza-createの前に。
注意
archive_commandが失敗している間はWALがpg_walに蓄積し、ディスクが満杯になるとプライマリが停止する。pg_stat_archiver.failed_countを監視する。Patroniでは、これらのパラメータはpostgresql.confではなくpatroni.yml / edit-configで設定する。2つの異なるクラスタから同じstanzaにアーカイブするとリポジトリが破損する。