PostgreSQL pg_restore
PostgreSQL `pg_restore` ist ein Dienstprogramm zur Wiederherstellung einer PostgreSQL-Datenbank aus einem mit `pg_dump` erstellten Archiv. Sie wird verwendet, um die Datenbank aus einer Sicherungsdatei wieder in ihren ursprünglichen Zustand zu versetzen.
Verwendung
Das Werkzeug `pg_restore` wird eingesetzt, wenn du Daten aus einer Sicherungsdatei in eine PostgreSQL-Datenbank zurückspielen musst. Es unterstützt verschiedene Archivformate (z.B. benutzerdefiniert, Verzeichnis, tar) und Optionen, um zu kontrollieren, was wiederhergestellt wird.
bash
pg_restore [options] backup_file
In dieser Syntax gibt `backup_file` die Archivdatei an, aus der wiederhergestellt werden soll, und `[options]` enthält verschiedene Flags, um den Wiederherstellungsprozess zu optimieren.
Beispiele
1. Grundlegende Wiederherstellung
bash
pg_restore -d mydatabase mybackup.dump
Dadurch wird der gesamte Inhalt von "mybackup.dump" in der Datenbank "mydatabase" wiederhergestellt.
2. Wiederherstellen mit spezifischem Schema
bash
pg_restore -d mydatabase --schema=public mybackup.dump
Dieser Befehl stellt nur das "öffentliche" Schema aus "mybackup.dump" in der Datenbank wieder her und ermöglicht so eine selektive Wiederherstellung.
3. Wiederherstellung mit parallelen Jobs
bash
pg_restore -d mydatabase -j 4 mybackup.dump
Hier ermöglicht die Option `-j 4` die parallele Verarbeitung mit vier Jobs, was die Wiederherstellung großer Datenbanken beschleunigt.
4. Wiederherstellen mit bestimmter Tabelle
bash
pg_restore -d mydatabase --table=mytable mybackup.dump
Dieser Befehl stellt nur die Tabelle `mytable` aus `mybackup.dump` in `mydatabase` wieder her.
5. Nur Daten wiederherstellen
bash
pg_restore -d mydatabase --data-only mybackup.dump
Diese Option stellt nur die Daten wieder her, ohne Datenbankschemaobjekte zu erstellen.
6. Wiederherstellung nur nach Schema
bash
pg_restore -d mydatabase --schema-only mybackup.dump
Diese Option stellt nur die Schemaobjekte wieder her, nicht aber die Daten.
Tipps und bewährte Praktiken
- Verwende das richtige Format. Stelle sicher, dass das Archivformat der Sicherungsdatei den Fähigkeiten von `pg_restore` entspricht.
- Teste die Wiederherstellung regelmäßig. Führe Testwiederherstellungen durch, um zu überprüfen, ob deine Backups gültig sind und wie erwartet wiederhergestellt werden können.
- Nutze parallele Jobs. Verwende die Option `-j`, um die Wiederherstellung zu beschleunigen, besonders bei großen Datenbanken.
- Selektive Wiederherstellung. Verwende Optionen wie `--table`, `--schema`, `--data-only` oder `--schema-only`, um bestimmte Teile der Datenbank wiederherzustellen, wenn eine vollständige Wiederherstellung nicht notwendig ist.
- Überprüfe die Abhängigkeiten. Achte auf Objektabhängigkeiten, wenn du bestimmte Tabellen oder Schemata wiederherstellst, um fehlende Referenzen zu vermeiden. Erwäge die Verwendung der Option "Disable Triggers", um Abhängigkeiten bei reinen Datenwiederherstellungen effektiv zu verwalten.
- Fehlerbehandlung. Häufige Fehler bei der Wiederherstellung sind fehlende Tablespaces oder Rollen. Stelle sicher, dass die Zieldatenbankumgebung mit der ursprünglichen Einrichtung übereinstimmt. Verwende Logdateien, um Fehler zu diagnostizieren und zu beheben.