Letztes Backup mit pgBackRest wiederherstellen
PostgreSQLBackup & PITRBefehl
# PostgreSQL must be stopped and PGDATA empty (otherwise use --delta)
sudo systemctl stop postgresql-16
sudo -u postgres pgbackrest --stanza=<stanza> --log-level-console=info restore
# From a specific backup: --set=<backup_label>
# When restoring to another server for testing, disable archiving:
# sudo -u postgres pgbackrest --stanza=<stanza> --archive-mode=off restore
sudo systemctl start postgresql-16Was es tut
Stellt das letzte Backup wieder her und schreibt recovery.signal und restore_command; beim Start spielt PostgreSQL alles archivierte WAL bis zum jüngsten konsistenten Punkt ein und wird auf einer neuen Timeline zur Primary.
Wann einsetzen
Wenn das Datenverzeichnis der Primary verloren/beschädigt ist oder um regelmäßig zu testen, dass Backups wiederherstellbar sind.
Vorsicht
Archivieren der wiederhergestellte und der alte Cluster gleichzeitig in dieselbe Stanza, wird das Repository beschädigt; nutze für Test-Restores --archive-mode=off. Unter Patroni zuerst den Cluster pausieren oder Patroni stoppen, sonst greift Patroni ein. Gibt es Tablespaces oder Pfade außerhalb von PGDATA, prüfe die Optionen --tablespace-map und link.
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)
- Mit pgBackRest auf einen Zeitpunkt wiederherstellen (PITR, --type=time)
- Standby mit pgBackRest-Delta-Restore schnell neu aufbauen