PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Stellen Sie eine Postgres-Sicherungsdatei über die Befehlszeile wieder her?

Es gibt zwei Tools, die Sie sich ansehen sollten, je nachdem, wie Sie die Dump-Datei erstellt haben.

Ihre erste Referenzquelle sollte die Manpage pg_dump(1) sein denn das ist es, was den Dump selbst erstellt. Es heißt:

Dumps können in Skript- oder Archivdateiformaten ausgegeben werden. Skript-Dumps sind Klartextdateien, die die SQL-Befehle enthalten, die erforderlich sind, um die Datenbank in den Zustand zu versetzen, in dem sie sich zum Zeitpunkt der Speicherung befand. Um ein solches Skript wiederherzustellen, füttern Sie es mit topsql(1). Skriptdateien können verwendet werden, um die Datenbank sogar auf anderen Maschinen und anderen Architekturen zu rekonstruieren; mit einigen Modifikationen sogar auf anderen SQL-Datenbankprodukten.

Die alternativen Archivdateiformate müssen mit pg_restore(1) verwendet werden, um die Datenbank neu aufzubauen. Sie ermöglichen es pg_restore, auszuwählen, was wiederhergestellt wird, oder sogar die Elemente vor der Wiederherstellung neu anzuordnen. Die Archivdateiformate sind so konzipiert, dass sie über Architekturen hinweg portierbar sind.

Es kommt also darauf an, wie es entsorgt wurde. Sie können es wahrscheinlich mit der ausgezeichneten file(1) herausfinden Befehl - wenn es ASCII-Text und/oder SQL erwähnt, sollte es mit psql wiederhergestellt werden andernfalls sollten Sie wahrscheinlich pg_restore verwenden

Das Wiederherstellen ist ziemlich einfach:

psql -U username -d dbname < filename.sql

-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql

oder

pg_restore -U username -d dbname -1 filename.dump

Schauen Sie sich die jeweiligen Manpages an – es gibt einige Optionen, die sich auf die Funktionsweise der Wiederherstellung auswirken. Möglicherweise müssen Sie Ihre "Live"-Datenbanken bereinigen oder sie aus template0 neu erstellen (wie in einem Kommentar angegeben), bevor Sie sie wiederherstellen, je nachdem, wie die Dumps generiert wurden.