Настроить архивирование WAL для pgBackRest (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 делает отправку параллельной и асинхронной через spool-каталог.
Когда использовать
Как первый шаг настройки физических бэкапов и PITR с pgBackRest, перед stanza-create.
Внимание
Пока archive_command завершается ошибкой, WAL накапливается в pg_wal, и при заполнении диска primary останавливается; следите за pg_stat_archiver.failed_count. С Patroni задавайте эти параметры через patroni.yml / edit-config, а не в postgresql.conf. Архивирование из двух разных кластеров в одну stanza повреждает репозиторий.
Связанные материалы
- Создать stanza pgBackRest и проверить архивирование (stanza-create/check)
- Снять полный, дифференциальный и инкрементальный бэкапы через pgBackRest
- Показать каталог бэкапов pgBackRest и диапазон архива WAL (info)
- Восстановить последний бэкап через pgBackRest
- Восстановить на момент времени через pgBackRest (PITR, --type=time)
- Быстро пересоздать standby через delta restore pgBackRest