Es gibt zwei Tools, die Sie sich ansehen können, je nachdem, wie Sie die Dump-Datei erstellt haben.
Ihre erste Referenzquelle sollte die Manpage sein, pg_dump(1)
da dadurch der Speicherauszug selbst erstellt wird. Es sagt:
Dumps können in Skript- oder Archivdateiformaten ausgegeben werden. Skript-Dumps sind Nur-Text-Dateien, die die SQL-Befehle enthalten, die erforderlich sind, um die Datenbank in den Zustand zu versetzen, in dem sie sich zum Zeitpunkt des Speicherns befand. Um ein solches Skript wiederherzustellen, geben Sie es an psql (1) weiter. Skriptdateien können verwendet werden, um die Datenbank auch auf anderen Computern und anderen Architekturen zu rekonstruieren. mit einigen Änderungen sogar bei anderen SQL-Datenbankprodukten.
Die alternativen Archivdateiformate müssen mit pg_restore (1) verwendet werden, um die Datenbank neu zu erstellen. Sie ermöglichen es pg_restore, selektiv zu entscheiden, was wiederhergestellt werden soll, oder sogar die Elemente vor der Wiederherstellung neu zu ordnen. Die Archivdateiformate sind so konzipiert, dass sie über Architekturen hinweg portierbar sind.
Kommt also darauf an, wie es rausgeworfen wurde. Sie können es wahrscheinlich mit dem ausgezeichneten file(1)
Befehl herausfinden. Wenn ASCII-Text und / oder SQL erwähnt werden, sollte es mit wiederhergestellt werden, psql
andernfalls sollten Sie es wahrscheinlich verwendenpg_restore
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. Je nachdem, wie die Dumps generiert wurden, müssen Sie möglicherweise Ihre "Live" -Datenbanken bereinigen oder aus template0 neu erstellen (wie in einem Kommentar angegeben), bevor Sie sie wiederherstellen.
-d
und-f
gleichzeitig haben.pg_restore: options -d/--dbname and -f/--file cannot be used together
cannot be used together
sehen, hier: stackoverflow.com/questions/27882070/...ein Backup erstellen
-F c ist ein benutzerdefiniertes Format (komprimiert und kann parallel zu -j N ausgeführt werden) -b enthält Blobs, -v ist ausführlich, -f ist der Name der Sicherungsdatei
von der Sicherung wiederherstellen
wichtig, um die Option -h localhost - zu setzen
quelle
Möglicherweise müssen Sie wie angemeldet sein,
postgres
um über die vollständigen Berechtigungen für Datenbanken zu verfügen.pg_dump / pg_restore
Schalter
-F
Format der Sicherungsdatei angeben:c
verwendet das benutzerdefinierte PostgreSQL-Format, das komprimiert ist und die kleinste Größe der Sicherungsdatei ergibtd
für Verzeichnis, in dem jede Datei eine Tabelle istt
für TAR-Archiv (größer als benutzerdefiniertes Format)-h
/--host
Gibt den Hostnamen des Computers an, auf dem der Server ausgeführt wird-W
/--password
Erzwingen Siepg_dump
die Eingabe eines Kennworts, bevor Sie eine Verbindung zu einer Datenbank herstellenBackup wiederherstellen:
Der Parameter
-C
sollte vor dem Importieren von Daten eine Datenbank erstellen. Wenn es nicht funktioniert, können Sie jederzeit eine Datenbank erstellen, z. mit Befehl (als Benutzerpostgres
oder anderes Konto, das Rechte zum Erstellen von Datenbanken hat)createdb db_name -O owner
pg_dump / psql
Falls Sie das Argument nicht angegeben haben, wurde das
-F
Standard-SQL-Format (oder mit-F p
) verwendet. Dann kannst du nicht benutzenpg_restore
. Sie können Daten mit importierenpsql
.Backup:
wiederherstellen:
quelle
postgres
) ein Kennwort festgelegt hat,-W
sollte bei Verwendung von psql die Option verwendet werden. Zum Beispiel unter Ubuntu, ohnesu postgres
irgendwo vom Terminal aus zu arbeiten,$ psql -h localhost -U postgres -W -d DB_NAME < DB_BACKUP.sql
ist der Befehl, der für mich funktioniert hat, um mein Backup auf meinem lokalen Host wiederherzustellen. Beachten Sie, dass die-h
Option benötigt wird.-W
Option ist nie wesentlich.pg_dump
fordert automatisch zur Eingabe eines Kennworts auf, wenn der Server eine Kennwortauthentifizierung anfordert. Sie können auch diePGPASSWORD
Variable env verwenden, wenn Sie Klartextkennwörter verwenden.-h
wird benötigt, wenn die StandardeinstellungPGHOST
nicht anwendbar ist. Diese Optionen sind für viele PostgreSQL-Dienstprogramme üblich und daher für die Beantwortung dieser Frage nicht unbedingt erforderlich (dies hängt stark von Ihrem Setup ab).pg_dump/psql
ist Arbeit für mich. aber 1. Teilpg_dump/pg_restore
ist nicht Arbeit für mich für die Wiederherstellung. Danke dir.-Fc
POSTGRESQL 9.1.12
DUMP:
Geben Sie das Benutzerpasswort ein und drücken Sie die Eingabetaste.
WIEDERHERSTELLEN:
Geben Sie das Benutzerpasswort ein und drücken Sie die Eingabetaste.
quelle
Unten ist meine Version, mit
pg_dump
der ich die Datenbank wiederherstelle:oder verwenden
psql
:wo
-h
Host,-p
Port,-u
Login-Benutzername,-d
Name der Datenbankquelle
my_new_database
sollte schon bei der Verwendung vorhanden seinpsql
, nicht?Sichern und Wiederherstellen mit GZIP
Backup
wiederherstellen
https://www.postgresql.org/docs/9.1/static/backup-dump.html
quelle
gunzip -c mydb.pgsql.gz | sudo -u postgres psql
Um die Berechtigungen für den Betrieb der Datenbank zu erhalten. Beachten Sie auch das--clean
Flag beim Dumping, das alle vorhandenen Daten löscht. Dies kann nützlich sein.quelle
Das hat bei mir funktioniert:
quelle
--no-owner
hat mir wirklich geholfen.1. Öffnen Sie das Terminal.
2.Sichern Sie Ihre Datenbank mit dem folgenden Befehl
Ihr Postgres bin - /opt/PostgreSQL/9.1/bin/
Ihr Quellendatenbankserver - 192.168.1.111
Speicherort und Name Ihrer Sicherungsdatei - /home/dinesh/db/mydb.backup
Ihr Quell-Datenbankname - mydatabase
/opt/PostgreSQL/9.1/bin/pg_dump --host '192.168.1.111' --port 5432 --Benutzername "postgres" --no-password --format custom --blobs --file "/ home / dinesh / db /mydb.backup "" mydatabase "
3.Stellen Sie die Datei mydb.backup im Ziel wieder her.
Ihr Zielserver - localhost
Ihr Zieldatenbankname - mydatabase
Erstellen Sie eine Datenbank zum Wiederherstellen der Sicherung.
/opt/PostgreSQL/9.1/bin/psql -h 'localhost' -p 5432 -U postgres -c "CREATE DATABASE mydatabase"
Stellen Sie das Backup wieder her.
/opt/PostgreSQL/9.1/bin/pg_restore --host 'localhost' --port 5432 --Benutzername "postgres" --dbname "mydatabase" --no-password --clean "/ home / dinesh / db / mydb. Backup "
quelle
Wenn Sie ein Backup mit pg_dump erstellen, können Sie es auf folgende Weise einfach wiederherstellen:
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
quelle
1) Öffnen Sie das psql-Terminal.
2) Entpacken / entpacken Sie die Dump-Datei.
3) Erstellen Sie eine leere Datenbank.
4) Verwenden Sie den folgenden Befehl, um die Dump-Datei wiederherzustellen
quelle
Versuche dies:
Stellen Sie DB psql aus der SQL-Datei wieder her
quelle
Wie unten angegeben, können Sie den Befehl psql zum Wiederherstellen der Speicherauszugsdatei verwenden:
https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
Wenn Sie einen Benutzernamen festlegen müssen, fügen Sie den Benutzernamen nach dem Befehl wie folgt hinzu:
quelle
Versuchen:
quelle
Das Wiederherstellen einer Postgres-Sicherungsdatei hängt davon ab, wie Sie die Sicherung überhaupt erstellt haben.
Wenn Sie pg_dump mit -F c oder -F d verwendet haben, müssen Sie pg_restore verwenden, andernfalls können Sie einfach verwenden
9 Möglichkeiten zum Sichern und Wiederherstellen von Postgres-Datenbanken
quelle
Versuchen Sie herauszufinden, ob die folgenden Befehle Ihnen helfen können:
quelle
Entschuldigung für den Nekropost, aber diese Lösungen haben bei mir nicht funktioniert. Ich bin auf Postgres 10. Unter Linux:
service postgresql-10 restart
Wechseln Sie in das Verzeichnis, in dem sich meine backup.sql befand, und führen Sie Folgendes aus:
psql postgres -d database_name -1 -f backup.sql
-database_name ist der Name meiner Datenbank
-backup.sql ist der Name meiner .sql-Sicherungsdatei.
quelle
Ich hatte Authentifizierungsprobleme beim Ausführen von pg_dump, daher habe ich meine Dump-Datei verschoben
in das temporäre Verzeichnis und lief dann
Wenn Sie einen großen Datenbankspeicherauszug haben, möchten Sie möglicherweise nur ein anderes Verzeichnis erstellen, in das Ihr aktueller Benutzer und der Benutzer postgres zugreifen und die Datenbankspeicherauszugsdatei darin ablegen können.
quelle
Wenn Sie eine SQL-Sicherungsdatei haben, können Sie diese problemlos wiederherstellen. Folgen Sie einfach den Anweisungen unten
Geben Sie bei Bedarf ein Passwort für Ihren Postgres-Benutzer ein und lassen Sie Postgres seine Arbeit erledigen. Anschließend können Sie den Wiederherstellungsprozess überprüfen.
quelle
Wenn Sie Ihre Daten sichern oder Daten aus einer Sicherung wiederherstellen möchten, können Sie die folgenden Befehle ausführen:
Um eine Sicherung Ihrer Daten zu erstellen, gehen Sie in Ihr Verzeichnis postgres \ bin \ like
C:\programfiles\postgres\10\bin\
und geben Sie den folgenden Befehl ein:Um Daten aus einer Sicherung wiederherzustellen, gehen Sie in Ihr Verzeichnis postgres \ bin \ like
C:\programfiles\postgres\10\bin\
und geben Sie den folgenden Befehl ein:Bitte stellen Sie sicher, dass die Sicherungsdatei vorhanden ist.
quelle
Siehe unten Beispiel seiner Funktionsweise
C: / Programme / PostgreSQL / 9.4 / bin \ pg_restore.exe --host localhost --port 5432 --Benutzername "postgres" --dbname "newDatabase" --no-password --verbose
" C: \ Benutzer \ Yogesh \ Downloads \ neuer Download \ DB.backup "
quelle