Restaurar o backup mais recente com pgBackRest
PostgreSQLBackup e PITRComando
# PostgreSQL must be stopped and PGDATA empty (otherwise use --delta)
sudo systemctl stop postgresql-16
sudo -u postgres pgbackrest --stanza=<stanza> --log-level-console=info restore
# From a specific backup: --set=<backup_label>
# When restoring to another server for testing, disable archiving:
# sudo -u postgres pgbackrest --stanza=<stanza> --archive-mode=off restore
sudo systemctl start postgresql-16O que faz
Restaura o backup mais recente e grava recovery.signal e restore_command; na inicialização o PostgreSQL reaplica todo o WAL arquivado até o ponto consistente mais recente e é promovido em uma nova timeline.
Quando usar
Quando o diretório de dados do primário foi perdido/corrompido ou ao testar regularmente se os backups são restauráveis.
Atenção
Se o cluster restaurado e o antigo arquivarem no mesmo stanza ao mesmo tempo, o repositório é corrompido; use --archive-mode=off para restores de teste. Sob o Patroni, pause o cluster ou pare o Patroni antes, senão o Patroni interfere. Se existirem tablespaces ou caminhos fora do PGDATA, revise as opções --tablespace-map e de link.
Relacionados
- Configurar o arquivamento de WAL para o pgBackRest (archive-push/archive-get)
- Criar o stanza do pgBackRest e verificar o arquivamento (stanza-create/check)
- Fazer backups full, differential e incremental com pgBackRest
- Mostrar o catálogo de backups do pgBackRest e o intervalo do arquivo de WAL (info)
- Restaurar para um ponto no tempo com pgBackRest (PITR, --type=time)
- Reconstruir rapidamente um standby com delta restore do pgBackRest