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.
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.
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
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 ergibtd
für das Verzeichnis, in dem jede Datei eine Tabelle enthältt
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
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.
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
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
Backup: $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
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 "
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
Versuchen Sie herauszufinden, ob die folgenden Befehle Ihnen helfen können:
Sudo su - yourdbuser
psql
\i yourbackupfile
Wenn Sie ein Backup mit pg_dump erstellen, können Sie es auf folgende Weise wiederherstellen:
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
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.
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) Ö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>
Das hat bei mir funktioniert:
pg_restore --verbose --clean --no-acl --no-owner --Host = localhost -dbname = db_name --username = username latest.dump
versuchen:
pg_restore -h localhost -p 5432 -U <username> -d <dbname> -1 <filename>
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.
versuche dies:
psql -U <username> -d <dbname> -f <filename>.sql
Stellen Sie DB-psql aus der .sql-Datei wieder her