Configurei o pgBackRest e o PostgreSQL em dois servidores diferentes.
Configurei com o crontab um backup completo por semana e um backup diferencial por dia.
0 1 * * 0 pgbackrest --type=full --stanza=stanzaname backup
0 1 * * 1-6 pgbackrest --type=diff --stanza=stanzaname backup
Configurei a retenção conforme abaixo para economizar o uso do disco:
repo1-retention-full=2
repo1-retention-diff=1
repo1-retention-archive-type=full
É possível garantir que o PITR cubra até 2 semanas com essa configuração de retenção?
Se sim, há algum benefício em definir uma retenção diferencial maior que 1?
Porque manter mais backups diferenciais pode consumir muito espaço em disco.
Dependendo da sua política de retenção de arquivo (WAL), talvez.
Diferenças noturnas: contando apenas com seu diferencial noturno, sua janela de recuperação PITR iria apenas até o backup completo do último domingo. De seus documentos, "Backup Diferencial: pgBackRest copia apenas os arquivos de cluster de banco de dados que foram alterados desde o último backup completo ".
Digamos que hoje seja quinta-feira, 19 de setembro, e que você queira se recuperar até a terça-feira da semana passada (10). Você não pode usar seu único diferencial, aquele feito hoje à noite (dia 19) à 1h da manhã, que contém apenas as alterações desde o último backup completo feito no domingo, dia 15. Se você restaurar seu backup completo mais antigo, aquele feito no domingo, 8, você não terá diferenciais obtidos de segunda-feira, 9, até sábado, 14, para aplicar a ele.
Arquivos WAL: Então, você pode usar arquivos WAL arquivados, se você aplicá-los depois de restaurar o backup completo feito no domingo, 8 de setembro? Talvez - esta seja a parte em que acho que a documentação não é um pouco clara: "pgBackRest remove automaticamente segmentos WAL arquivados ao expirar backups (o padrão expira WAL para backups completos com base na opção repo1-retention-full)".
Não tenho certeza se eles significam que os WALS da semana passada foram mantidos ou não; parece que sim, já que o full mais antigo ainda não expirou .. mas a declaração entre colchetes me dá uma pausa.
Independentemente do nº 2, minha recomendação seria encontrar uma solução que não dependa apenas da retenção de arquivos WAL. Você pode configurar uma retenção mais alta para seus diffs noturnos para não precisar depender apenas de arquivos WAL (ideais, mas com uso pesado de disco) ou apenas fazer um backup completo a cada 2 semanas (eu não gosto dessa opção , já que prefiro a tranquilidade de um full semanal)
Ou você pode fazer o que fazemos, incrementais noturnos : "Os backups incrementais não podem ser expirados independentemente - eles sempre expiram com seu backup completo ou diferencial relacionado."
Para atingir a mesma janela PITR de 14 dias estamos fazendo:
Achamos que o acima é um bom equilíbrio para nós: os incrementos noturnos são relativamente pequenos e são mais rápidos que um diferencial, especialmente à medida que nos afastamos do sábado cheio.
Fonte: https://pgbackrest.org/user-guide.html (visitado em 2019-09-19)