Fazer backups full, differential e incremental com pgBackRest
PostgreSQLBackup e PITRComando
sudo -u postgres pgbackrest --stanza=<stanza> --type=full backup
sudo -u postgres pgbackrest --stanza=<stanza> --type=diff backup # changes since the last full
sudo -u postgres pgbackrest --stanza=<stanza> --type=incr backup # changes since the last backup of any type
# cron example (postgres user): full on Sunday, diff on other days
# 30 1 * * 0 pgbackrest --stanza=<stanza> --type=full backup
# 30 1 * * 1-6 pgbackrest --stanza=<stanza> --type=diff backupO que faz
Um backup full copia o cluster inteiro, diff copia os arquivos alterados desde o último full, incr copia os arquivos alterados desde o último backup de qualquer tipo; ao final verifica-se que o WAL necessário foi arquivado e o expire roda automaticamente conforme a retenção.
Quando usar
Em uma rotina regular de backup: tipicamente full semanal + diff/incr diário, incr mais frequente em clusters grandes.
Atenção
Sem um full anterior, as solicitações diff/incr são promovidas automaticamente a full. Uma cadeia de incr mais longa aumenta o tempo de restore e a dependência; perder um backup da cadeia inutiliza os posteriores. Para aliviar o primário, faça backup a partir de um standby com backup-standby=y (o primário ainda é necessário para a coordenação).
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)
- Mostrar o catálogo de backups do pgBackRest e o intervalo do arquivo de WAL (info)
- Restaurar o backup mais recente com pgBackRest
- Restaurar para um ponto no tempo com pgBackRest (PITR, --type=time)
- Reconstruir rapidamente um standby com delta restore do pgBackRest