Restaurer à un instant donné avec pgBackRest (PITR, --type=time)
PostgreSQLSauvegarde et PITRCommande
sudo systemctl stop postgresql-16
sudo -u postgres pgbackrest --stanza=<stanza> --delta --type=time "--target=2026-10-08 14:30:00+03" --target-action=pause restore
sudo systemctl start postgresql-16
# Recovery stops at the target (read-only); validate the data:
psql -X -c "SELECT pg_is_in_recovery(), pg_last_xact_replay_timestamp();"
# If correct, end recovery and open read-write on a new timeline:
psql -X -c "SELECT pg_wal_replay_resume();"Ce que fait la commande
Restaure une sauvegarde terminée avant l'instant cible et ne rejoue le WAL que jusqu'à la cible ; target-action=pause s'arrête à la cible pour que vous puissiez valider les données, et pg_wal_replay_resume() effectue la promotion.
Quand l'utiliser
Pour revenir au moment juste avant une erreur logique comme un DELETE/DROP/UPDATE accidentel.
Attention
Tous les changements postérieurs à la cible sont perdus sur ce cluster ; si possible, effectuez le PITR sur un serveur séparé et ne rapatriez que les données concernées avec pg_dump. Indiquez explicitement le fuseau horaire dans la cible. pgBackRest 2.24+ sélectionne automatiquement une sauvegarde adaptée antérieure à la cible ; dans les versions plus anciennes, indiquez avec --set une sauvegarde terminée avant la cible. Si la cible est antérieure à l'heure de fin de la sauvegarde, la restauration ne peut pas atteindre la cohérence.
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)
- Effectuer des sauvegardes full, différentielles et incrémentales avec pgBackRest
- Afficher le catalogue de sauvegardes pgBackRest et la plage d'archives WAL (info)
- Restaurer la dernière sauvegarde avec pgBackRest
- Reconstruire rapidement une standby avec la restauration delta de pgBackRest