524 Stimmen

Wiederherstellung einer Postgres-Sicherungsdatei über die Befehlszeile?

Ich bin neu in Postgresql, und lokal verwende ich pgadmin3. Auf dem Remote-Server habe ich diesen Luxus jedoch nicht.

Ich habe bereits eine Sicherungskopie der Datenbank erstellt und diese kopiert, aber gibt es eine Möglichkeit, eine Sicherungskopie über die Befehlszeile wiederherzustellen? Ich sehe nur Dinge, die sich auf die GUI oder auf pg_dumps beziehen. Wenn mir also jemand sagen kann, wie man das macht, wäre das großartig!

9voto

Dinesh Appuhami Punkte 662

1. Öffnen Sie das Terminal.

2. Sichern Sie Ihre Datenbank mit folgendem Befehl

Ihr Postgres-Bin -> /opt/PostgreSQL/9.1/bin/

Ihren Quelldatenbankserver -> 192.168.1.111

Speicherort und Name Ihrer Sicherungsdatei -> /home/dinesh/db/mydb.backup

den Namen Ihrer Quell-DB -> mydatabase

/opt/PostgreSQL/9.1/bin/pg_dump --host '192.168.1.111' --port 5432 --username "postgres" --no-password  --format custom --blobs --file "/home/dinesh/db/mydb.backup" "mydatabase"

3. Stellen Sie die Datei mydb.backup am Zielort wieder her.

Ihren Zielserver -> localhost

den Namen Ihrer Zieldatenbank -> mydatabase

Erstellen Sie die Datenbank für die Wiederherstellung des Backups.

/opt/PostgreSQL/9.1/bin/psql -h 'localhost' -p 5432 -U postgres -c "CREATE DATABASE mydatabase"

Stellen Sie die Sicherung wieder her.

/opt/PostgreSQL/9.1/bin/pg_restore --host 'localhost' --port 5432 --username "postgres" --dbname "mydatabase" --no-password --clean "/home/dinesh/db/mydb.backup"

8voto

Harrish Selvarajah Punkte 1465

So stellen Sie eine Dump-Datei wieder her

psql -d [Dbname] -U [UserName] -p 5432 < [FileLocation]

So stellen Sie eine .SQL-Datei wieder her

pg_restore -U [Username] -d [Dbname] -1 [FileLocation]

Wenn Sie Fehler bei der Benutzerauthentifizierung erhalten, gehen Sie zur Datei pg_hba.conf, die sich im Ordner PSQL/data in Ihren Programmdateien befindet, und ändern Sie "METHOD" in "Trust". Starten Sie den psql-Server in den Windows-Diensten neu (Win + R --> services.msc).

8voto

Wenn Sie ein Backup mit pg_dump erstellen, können Sie es auf folgende Weise wiederherstellen:

  1. Befehlszeilenfenster öffnen
  2. Gehen Sie zum Postgres-Bin-Ordner. Zum Beispiel: cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
  3. Geben Sie den Befehl zur Wiederherstellung Ihrer Datenbank ein. For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
  4. Geben Sie das Passwort für Ihren Postgres-Benutzer ein
  5. Überprüfen Sie den Wiederherstellungsprozess

8voto

Igr Pn Punkte 81

Ich habe hier nicht gesehen, dass die Erweiterung der Dump-Datei (*.dump) erwähnt wird.

Diese Lösung hat bei mir funktioniert:

Ich habe eine Dump-Datei erhalten und musste sie wiederherstellen.

Zuerst habe ich versucht, dies mit pg_restore und bekam:

pg_restore: error: input file appears to be a text format dump. Please use psql.

Ich habe es mit psql und hat gut funktioniert:

psql -U myUser -d myDataBase < path_to_the_file/file.dump

7voto

Vaibhav Desai Punkte 2176

1) Öffnen Sie das Terminal psql.

2) Entpacken Sie die Dump-Datei.

3) Erstellen Sie eine leere Datenbank.

4) Verwenden Sie den folgenden Befehl, um die .dump-Datei wiederherzustellen

<database_name>-# \i <path_to_.dump_file>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X