Effectuer des sauvegardes full, différentielles et incrémentales avec pgBackRest
PostgreSQLSauvegarde et PITRCommande
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 backupCe que fait la commande
Une sauvegarde full copie tout le cluster, diff copie les fichiers modifiés depuis la dernière full, incr copie les fichiers modifiés depuis la dernière sauvegarde de tout type ; à la fin, l'archivage du WAL nécessaire est vérifié et expire s'exécute automatiquement selon la rétention.
Quand l'utiliser
Dans un planning de sauvegarde régulier : typiquement full hebdomadaire + diff/incr quotidienne, incr plus fréquentes sur les gros clusters.
Attention
Sans full préalable, les demandes diff/incr sont automatiquement promues en full. Une chaîne incr plus longue augmente le temps de restauration et la dépendance ; perdre une sauvegarde de la chaîne rend les suivantes inutilisables. Pour soulager la primaire, sauvegardez depuis une standby avec backup-standby=y (la primaire reste nécessaire pour la coordination).
Voir aussi
- Configurer l'archivage WAL pour pgBackRest (archive-push/archive-get)
- Créer la stanza pgBackRest et vérifier l'archivage (stanza-create/check)
- Afficher le catalogue de sauvegardes pgBackRest et la plage d'archives WAL (info)
- Restaurer la dernière sauvegarde avec pgBackRest
- Restaurer à un instant donné avec pgBackRest (PITR, --type=time)
- Reconstruire rapidement une standby avec la restauration delta de pgBackRest