pgBackRest
Automação de backup físico e PITR para clusters PostgreSQL 18.4 auto-hospedados - configuração de stanza, arquivamento de WAL, simulações de restauração e integração com Patroni.
Busque em todas as páginas da documentação
Automação de backup físico e PITR para clusters PostgreSQL 18.4 auto-hospedados - configuração de stanza, arquivamento de WAL, simulações de restauração e integração com Patroni.
Cartão de referência rápida - pronto para copiar e colar.
# /etc/pgbackrest/pgbackrest.conf
[global]
repo1-type=s3
repo1-s3-bucket=pg-backups-prod
repo1-s3-region=us-east-1
repo1-retention-full=4
repo1-cipher-type=aes-256-cbc
[main]
pg1-path=/var/lib/postgresql/18/main
pg1-port=5432pgbackrest --stanza=main stanza-create
pgbackrest --stanza=main backup --type=full
pgbackrest --stanza=main checkQuando usar isso:
Passo 1 - Habilitar arquivamento no PostgreSQL
ALTER SYSTEM SET archive_mode = on;
ALTER SYSTEM SET archive_command = 'pgbackrest --stanza=main archive-push %p';
SELECT pg_reload_conf();# Verificar fluxo de arquivamento WAL
pgbackrest --stanza=main checkPasso 2 - Cronograma de backup agendado
# /etc/cron.d/pgbackrest
0 2 * * 0 postgres pgbackrest --stanza=main backup --type=full
0 2 * * 1-6 postgres pgbackrest --stanza=main backup --type=diffPasso 3 - Simulação de restauração para host isolado
# Na sandbox de restauração (diretório de dados vazio)
pgbackrest --stanza=main --delta restore
pg_ctl -D /var/lib/postgresql/18/main start
psql -c "SELECT pg_is_in_recovery(), now();"O que isso demonstra:
archive-push envio contínuo de WAL para PITRcheck valida o conjunto de backup e a continuidade do arquivo antes que você precise deles--delta restore evita o re-download completo ao ensaiar mensalmente| Tipo | Quando | Dados de Restauração |
|---|---|---|
| full | Semanalmente como base | Arquivos inteiros do cluster |
| diff | Diariamente vs último full | Blocos alterados desde o full |
| incr | Opcional durante o dia | Blocos alterados desde o último backup de qualquer tipo |
[main]
backup-standby=y
pg2-host=replica.internal
pg2-path=/var/lib/postgresql/18/mainhot_standby = on e não esteja atrasada durante a janela de backuppgbackrest --stanza=main info
pgbackrest --stanza=main verify-- Após a simulação de restauração
SELECT count(*) FROM pg_database;
SELECT max(created_at) FROM app.orders; -- linha de sanidade específica do aplicativopg_basebackup cron mais pgBackRest no mesmo cluster causa risco de corrupção e custo duplicado de S3. Correção: apenas um agente.archive_command - WAL se acumula no disco primário se o push falhar. Correção: monitore pg_stat_archiver, alerte sobre failed_count.pg1-path incorreto - a stanza aponta para o caminho Debian, mas o RHEL usa um layout diferente. Correção: corresponda exatamente a SHOW data_directory;.repo1-s3-* de privilégio mínimo.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| Backups automáticos RDS/Aurora | Postgres gerenciado pela AWS | Você precisa de controle em nível de arquivo em auto-hospedado |
pg_basebackup + WAL manual | Pequeno nó único de desenvolvimento | PITR de produção com política de retenção |
| Barman | Equipe já padronizada em Barman | Adoção Greenfield de pgBackRest com operações nativas de S3 |
Não. Backup físico mais PITR é para recuperação de desastres. Mantenha pg_dump periódico para restauração lógica em nível de tabela e upgrades de versão principal.
repo1-retention-full=4 mantém quatro backups completos. Adicione uma política de retenção de WAL alinhada ao RPO (geralmente 7-30 dias). Documente no runbook de DR.
A restauração física permanece na mesma versão principal. Upgrades de versão principal usam pg_upgrade ou replicação lógica, não restauração entre versões principais do pgBackRest.
checkVersões da Stack: Esta página foi escrita para PostgreSQL 18.4, pgBackRest 2.55+ e Patroni 4.x em clusters auto-hospedados.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026