DBAtlas · Atlas d'exploitation des bases de données

Configurer l'archivage WAL pour pgBackRest (archive-push/archive-get)

PostgreSQLSauvegarde et PITR

Commande

# 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

Ce que fait la commande

Fait envoyer par PostgreSQL chaque segment WAL terminé vers le dépôt pgBackRest (archive-push) et l'y récupérer pendant la restauration (archive-get) ; archive-async rend l'envoi parallèle et asynchrone via un répertoire spool.

Quand l'utiliser

Comme première étape de la mise en place des sauvegardes physiques et du PITR avec pgBackRest, avant stanza-create.

Attention

Tant qu'archive_command échoue, le WAL s'accumule dans pg_wal et la primaire s'arrête quand le disque est plein ; surveillez pg_stat_archiver.failed_count. Avec Patroni, définissez ces paramètres via patroni.yml / edit-config plutôt que dans postgresql.conf. Archiver deux clusters différents dans la même stanza corrompt le dépôt.

Ouvrir dans DBAtlas →

Voir aussi