wake-up-neo.net

Wiederherstellen einer Postgres-Sicherungsdatei über die Befehlszeile?

Ich bin neu bei postgresql und lokal verwende ich pgadmin3. Auf dem Remote-Server habe ich jedoch keinen solchen Luxus.

Ich habe bereits ein Backup der Datenbank erstellt und kopiert, aber gibt es eine Möglichkeit, ein Backup von der Befehlszeile aus wiederherzustellen? Ich sehe nur Dinge, die sich auf GUI oder pg_dumps beziehen.

176
TwixxyKit

Je nachdem, wie Sie die Dump-Datei erstellt haben, gibt es zwei Tools, die Sie überprüfen können.

Ihre erste Referenzquelle sollte die Manpage pg_dump(1) sein, da dies den Speicherauszug selbst erstellt. Es sagt:

Dumps können in Skript oder .__ ausgegeben werden. Archivdateiformate. Skriptabbilder sind Nur-Text-Dateien, die die SQL-Datei .__ enthalten. zur Rekonstruktion erforderliche Befehle die Datenbank auf den Zustand es war zu der Zeit wurde es gerettet. Zu Wiederherstellen aus einem solchen Skript, füttern Sie es mit psql (1). Skriptdateien können verwendet werden um die Datenbank selbst zu rekonstruieren auf anderen Maschinen und anderen Architekturen; mit einigen Modifikationen auch auf anderen SQL-Datenbankprodukten.

Die alternativen Archivdateiformate muss mit pg_restore (1) bis .__ verwendet werden. Erstellen Sie die Datenbank neu. Sie erlauben pg_restore um wählerisch zu sein wird wiederhergestellt, oder sogar die .__ neu angeordnet. Elemente vor dem Wiederherstellen. Das Archivdateiformate sind auf .__ ausgelegt. tragbar über Architekturen hinweg.

Es hängt also davon ab, wie es abgeladen wurde. Sie können es wahrscheinlich mit dem ausgezeichneten file(1)-Befehl herausfinden - wenn es ASCII Text und/oder SQL erwähnt, sollte es mit psql wiederhergestellt werden, ansonsten sollten Sie wahrscheinlich pg_restore verwenden.

Das Wiederherstellen ist ziemlich einfach:

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 die Wiederherstellung beeinflussen. Möglicherweise müssen Sie Ihre "Live" -Datenbanken bereinigen oder aus template0 neu erstellen (wie in einem Kommentar angegeben), bevor Sie die Wiederherstellung durchführen, je nachdem, wie die Speicherabbilder generiert wurden.

223

ein Backup erstellen

pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f 
"/usr/local/backup/10.70.0.61.backup" old_db

-F c ist ein benutzerdefiniertes Format (komprimiert und kann parallel mit -j N ausgeführt werden) -b enthält Blobs

von der Sicherung wiederherstellen

pg_restore -h localhost -p 5432 -U postgres -d old_db -v 
"/usr/local/backup/10.70.0.61.backup"

Wichtig zu setzen -h localhost - Option

131
pilot

Sie müssen möglicherweise als postgres angemeldet sein, um vollständige Berechtigungen für Datenbanken zu erhalten.

su - postgres
psql -l                      # will list all databases on Postgres cluster

pg_dump/pg_restore

  pg_dump -U username -f backup.dump database_name -Fc 

schalter -F Format der Sicherungsdatei angeben:

  • c verwendet ein benutzerdefiniertes PostgreSQL-Format, das komprimiert ist und die kleinste Sicherungsdateigröße ergibt
  • d für das Verzeichnis, in dem jede Datei eine Tabelle enthält
  • t 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 Erzwingt pg_dump zur Eingabe eines Kennworts, bevor eine Verbindung zu einer Datenbank hergestellt wird 

backup wiederherstellen:

   pg_restore -d database_name -U username -C backup.dump

Der Parameter -C sollte vor dem Import der Daten eine Datenbank erstellen. Wenn es nicht funktioniert, können Sie immer eine Datenbank erstellen, z. mit Befehl (als Benutzer postgres oder einem anderen Konto, das zum Erstellen von Datenbanken berechtigt ist) createdb db_name -O owner

pg_dump/psql

Falls Sie das Argument -F nicht angegeben haben, wurde das Standardformat Nur-Text (oder mit -F p) verwendet. Dann können Sie pg_restore nicht verwenden. Sie können Daten mit psql importieren.

backup:

pg_dump -U username -f backup.sql database_name

wiederherstellen: 

psql -d database_name -f backup.sql
58
Tombart

POSTGRESQL 9.1.12

DUMP:

pg_dump -U user db_name > archive_name.sql

geben Sie das Benutzerpasswort ein und drücken Sie die Eingabetaste.

WIEDERHERSTELLEN:

psql -U user db_name < /directory/archive.sql

geben Sie das Benutzerpasswort ein und drücken Sie die Eingabetaste.

40
Natan Medeiros

Hier ist meine Version von pg_dump, die ich zum Wiederherstellen der Datenbank verwende:

pg_restore -h localhost -p 5432 -U postgres -d my_new_database my_old_database.backup

oder psql verwenden:

psql -h localhost -U postgres -p 5432 my_new_database < my_old_database.backup

wo -h Host, -p Port, -u Login Benutzername, -d Name der Datenbank

25
Yahor M

Sichern und Wiederherstellen mit GZIP

Für größere Datenbanken ist dies sehr gut

backup

pg_dump -U user -d mydb | gzip > mydb.pgsql.gz

resore

gunzip -c mydb.pgsql.gz | psql dbname -U user

https://www.postgresql.org/docs/9.1/static/backup-dump.html

9
Sarath Ak
Backup:  $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}

Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
7
Aaron Lelevier

1.Öffnen Sie das Terminal.

2. sichern Sie Ihre Datenbank mit folgendem Befehl

ihre Postgres-Bin - /opt/PostgreSQL/9.1/bin/

ihr Quelldatenbankserver - 192.168.1.111

speicherort und Name der Sicherungsdatei - /home/dinesh/db/mydb.backup

ihr Quell-Datenbankname - meine Datenbank

/opt/PostgreSQL/9.1/bin/pg_dump --Host '192.168.1.111' --port 5432 --Benutzername "postgres" --no-password --Format --blobs --file "/ home/dinesh/db /mydb.backup "" mydatabase "

3. Wiederherstellen der Datei mydb.backup im Ziel.

ihr Zielserver - localhost

der Name Ihrer Zieldatenbank - meineDatenbank

Datenbank zum Wiederherstellen der Sicherung erstellen.

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

Wiederherstellung der Sicherung.

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

6
Dinesh-SriLanka

Wie unten angegeben, können Sie den psql-Befehl zum Wiederherstellen der Speicherauszugsdatei verwenden:

https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE

psql dbname < infile

wenn Sie einen Benutzernamen festlegen müssen, fügen Sie nach dem Befehl einfach den Benutzernamen hinzu:

psql dbname < infile username
2
Maryam Saeidi

Versuchen Sie herauszufinden, ob die folgenden Befehle Ihnen helfen können:

Sudo su - yourdbuser
psql
\i yourbackupfile
2
Mehmet Ali

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

  1. Befehlszeilenfenster öffnen
  2. Gehen Sie in den Postgres-Ordner. Zum Beispiel: cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
  3. Geben Sie den Befehl zum Wiederherstellen 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 Wiederherstellungsvorgang
2
Nick Taylor

Wenn Sie eine SQL-Sicherungsdatei haben, können Sie diese problemlos wiederherstellen. Befolgen Sie einfach die Anweisungen unten

1. At first, create a database using pgAdmin or whatever you want (for example my_db is our created db name)
2. Now Open command line window
3. Go to Postgres bin folder. For example:  cd "C:\ProgramFiles\PostgreSQL\pg10\bin"
4. Enter the following command to restore your database: psql.exe -U postgres -d my_db -f D:\Backup\backup_file_name.sql 

Geben Sie bei Bedarf ein Passwort für Ihren postgres-Benutzer ein und lassen Sie Postgres seine Arbeit erledigen. Dann können Sie den Wiederherstellungsprozess überprüfen.

1
Omar Hasan

Das Wiederherstellen einer Postgres-Sicherungsdatei hängt davon ab, wie Sie die Sicherung überhaupt durchgeführt haben.

Wenn Sie pg_dump mit -F c oder -F d verwendet haben, müssen Sie pg_restore verwenden. Andernfalls können Sie es einfach verwenden 

psql -h localhost -p 5432 -U postgres <Sicherungsdatei

9 Möglichkeiten zum Sichern und Wiederherstellen von Postgres-Datenbanken

1
Prashant Kumar

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

<database_name>-# \i <path_to_.dump_file>
1
Vaibhav Desai

Das hat bei mir funktioniert:

pg_restore --verbose --clean --no-acl --no-owner --Host = localhost -dbname = db_name --username = username latest.dump

1
Franz

versuchen:

pg_restore -h localhost -p 5432 -U <username> -d <dbname> -1 <filename>
1

Wenn Sie Ihre Daten sichern oder Daten von einer Sicherung wiederherstellen möchten, können Sie die folgenden Befehle ausführen:

1 Um eine Sicherung Ihrer Daten zu erstellen, wechseln Sie in Ihr Postgres\bin\-Verzeichnis wie C:\programfiles\postgres\10\bin\ und geben Sie den folgenden Befehl ein: pg_dump -FC -U ngb -d ngb -p 5432 >C:\BACK_UP\ngb.090718_after_readUpload.backup

2 Um Daten aus einem Backup wiederherzustellen, wechseln Sie in das Postgres\bin\-Verzeichnis wie C:\programfiles\postgres\10\bin\. Geben Sie dann den folgenden Befehl ein: - C:\programFiles\postgres\10\bin> pg_restore -Fc -U ngb -d ngb -p 5432 <C:\ngb.130918.backup

Stellen Sie sicher, dass die Sicherungsdatei vorhanden ist.

Ich hatte Authentifizierungsprobleme beim Ausführen von pg_dump, also habe ich meine Dump-Datei verschoben

mv database_dump /tmp

in das temporäre Verzeichnis und lief dann

su -u postgres
cd /tmp
pg_restore database_dump

Wenn Sie über einen umfangreichen Datenbankspeicherauszug verfügen, möchten Sie möglicherweise nur ein anderes Verzeichnis erstellen, in dem Ihr aktueller Benutzer und der Postgres-Benutzer darauf zugreifen können.

0
user1876508

versuche dies:

psql -U <username> -d <dbname> -f <filename>.sql

Stellen Sie DB-psql aus der .sql-Datei wieder her

0
Faysal Maqsood