Mit pgBackRest auf einen Zeitpunkt wiederherstellen (PITR, --type=time)
PostgreSQLBackup & PITRBefehl
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();"Was es tut
Stellt ein Backup wieder her, das vor dem Zielzeitpunkt fertig wurde, und spielt WAL nur bis zum Ziel ein; target-action=pause hält am Ziel an, damit du die Daten prüfen kannst, und pg_wal_replay_resume() führt das Promote aus.
Wann einsetzen
Um zum Moment unmittelbar vor einem logischen Fehler wie einem versehentlichen DELETE/DROP/UPDATE zurückzukehren.
Vorsicht
Alle Änderungen nach dem Ziel gehen auf diesem Cluster verloren; führe PITR nach Möglichkeit auf einem separaten Server aus und übertrage nur die betroffenen Daten mit pg_dump zurück. Gib die Zeitzone im Ziel explizit an. pgBackRest ab 2.24 wählt automatisch ein passendes Backup vor dem Ziel; in älteren Releases gib mit --set ein Backup an, das vor dem Ziel fertig wurde. Liegt das Ziel vor der Endzeit des Backups, kann der Restore keine Konsistenz erreichen.
Verwandte Einträge
- WAL-Archivierung für pgBackRest konfigurieren (archive-push/archive-get)
- pgBackRest-Stanza anlegen und Archivierung prüfen (stanza-create/check)
- Voll-, differenzielle und inkrementelle Backups mit pgBackRest erstellen
- pgBackRest-Backup-Katalog und WAL-Archivbereich anzeigen (info)
- Letztes Backup mit pgBackRest wiederherstellen
- Standby mit pgBackRest-Delta-Restore schnell neu aufbauen