DBAtlas · Atlas de operaciones de bases de datos

Configurar el archivado de WAL para pgBackRest (archive-push/archive-get)

PostgreSQLBackup y PITR

Comando

# 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

Qué hace

Hace que PostgreSQL envíe cada segmento WAL completado al repositorio de pgBackRest (archive-push) y lo recupere de allí durante la recuperación (archive-get); archive-async hace el envío paralelo y asíncrono mediante un directorio de spool.

Cuándo usarlo

Como primer paso para configurar backups físicos y PITR con pgBackRest, antes de stanza-create.

Precaución

Mientras archive_command falle, el WAL se acumula en pg_wal y el primario se detiene cuando se llena el disco; monitoree pg_stat_archiver.failed_count. Con Patroni, defina estos parámetros mediante patroni.yml / edit-config en lugar de postgresql.conf. Archivar desde dos clústeres distintos en la misma stanza corrompe el repositorio.

Abrir en DBAtlas →

Relacionado