DBAtlas · Atlas de operações de banco de dados

Configurar o arquivamento de WAL para o pgBackRest (archive-push/archive-get)

PostgreSQLBackup e 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

O que faz

Faz o PostgreSQL enviar cada segmento de WAL concluído ao repositório do pgBackRest (archive-push) e buscá-lo de lá durante a recuperação (archive-get); archive-async torna o envio paralelo e assíncrono por meio de um diretório de spool.

Quando usar

Como primeiro passo da configuração de backups físicos e PITR com pgBackRest, antes do stanza-create.

Atenção

Enquanto o archive_command falhar, o WAL se acumula no pg_wal e o primário para quando o disco enche; monitore pg_stat_archiver.failed_count. Com Patroni, defina esses parâmetros pelo patroni.yml / edit-config em vez do postgresql.conf. Arquivar dois clusters diferentes no mesmo stanza corrompe o repositório.

Abrir no DBAtlas →

Relacionados