DBAtlas · Atlas für Datenbankbetrieb

Letztes Backup mit pgBackRest wiederherstellen

PostgreSQLBackup & PITR

Befehl

# 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-16

Was 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.

In DBAtlas öffnen →

Verwandte Einträge