Ich speichere meine Postgres-Datenbank mit pg_dump (im Nur -Text-Format) und stelle sie dann einfach mit psql (mit der -f
Option) wieder her.
Was wirft die Frage auf: Fehlt mir etwas, wenn ich pg_restore nicht verwende, was wie ein spezialisiertes Wiederherstellungstool (verglichen mit dem generischen psql
) aussieht ?
Ich kann Optionen wie das Deaktivieren von Triggern und dergleichen mithilfe von pg_dump
Parametern steuern . Wofür wird dann pg_restore
verwendet? Nicht-Klartext-Dump-Formate?
postgresql
postgresql-9.1
Marcus Junius Brutus
quelle
quelle
Antworten:
Wenn Sie einen Speicherauszug im SQL-Format erstellt haben, können Sie ihn nur verwenden
psql
.Wenn Sie einen Speicherauszug im benutzerdefinierten Format (
pg_dump -Fc
) oder im Verzeichnisformat (pg_dump -Fd
) erstellt haben, können und müssen Sie diesen verwendenpg_restore
.Benutzerdefinierte und Verzeichnisformat-Speicherauszüge bieten viele Vorteile gegenüber einfachen SQL-Skript-Speicherauszügen, und ich verwende sie ausschließlich. Sie können selektiv nur einige Tabellen / Schemas wiederherstellen und auswählen, ob nur Schemas, nur Daten oder beides beim Wiederherstellen usw. eingeschlossen werden sollen. Viele der Optionen, die Sie zum
pg_dump
Zeitpunkt von SQL- Speicherabbildern angeben müssen, können beim Wiederherstellen ausgewählt werden. Zeit, wenn Sie ein benutzerdefiniertes Format Dump und verwendenpg_restore
.Ohne Abwärtskompatibilität
pg_dump
wäre das Standardformat-Fc
(benutzerdefiniert).Sie können einen SQL-Speicherauszug nicht in ein benutzerdefiniertes Format oder ein Verzeichnisformat konvertieren, ohne ihn in einer PostgreSQL-Datenbank wiederherzustellen und anschließend die wiederhergestellte Datenbank zu sichern.
quelle
pg_restore
ohnedbname
Argument in einen Speicherauszug im SQL-Format umwandeln, wenn Sie einen benötigen. Das Gegenteil ist nicht möglich.pg_restore
unterstützt die parallele Wiederherstellung. Wenn Sie diese verwenden, ist sie VIEL schneller.