2014-10-15 8 views
7

Ich habe meine eigene Maschine mit postgres dmp-Datei, die ich auf der remote virtuellen Maschine (z. B. ip ist 192.168.0.190 und Postgres-Port ist 5432) in meinem Netzwerk wiederherstellen möchte. Ist es möglich, diesen Speicherauszug mit pg_restore wiederherzustellen, ohne den Dump auf den Remote-Rechner zu kopieren? Da die Größe des Dumps ungefähr 12 GB beträgt und der Speicherplatz auf der virtuellen Maschine 20 GB beträgt. DankWiederherstellen von Dump auf dem Remote-Computer

Antwort

13

Sie können eine Wiederherstellung über das Netzwerk ausführen, ohne den Speicherauszug auf den Remote-Host zu kopieren.

einfach aufrufen pg_restore mit -h <hostname> und -p <port> auf dem Host Sie die Dump-Datei bekam (und wahrscheinlich -U <username> als unterschiedliche Benutzer zu authentifizieren), zum Beispiel:

pg_restore -h 192.168.0.190 -p 5432 -d databasename -U myuser mydump.dump 

Referenzen:

+0

Ja, Sie haben Recht. Ich versuche so pg_restore -i -h 192.168.1.190 -p 5432 -U postgres -d MFC_sara -v /home/develop/BD_Dumps/Saratov.dmp; Aber nach diesem Befehl muss ein Passwort für die Zieldatenbank eingegeben werden. Und ich weiß es nicht, auf virtueller Maschine ich erstelle nur db wie createdb -T Vorlage0 MFC_sara –

+1

Wenn Sie von einem Remote-Rechner zugreifen möchten, benötigen Sie Passwort-Authentifizierung (oder jede andere nicht-lokale Authentifizierung). Erstellen Sie einen Benutzer und weisen Sie Berechtigungen für die Datenbank zu. Wenn dies keine Produktionsumgebung ist, erstellen Sie einen Superuser mit dem Kennwort 'createuser -P -s someusername' – nif

0

Sie können das Passwort Parameter in Ihrem Skript vor "pg_restore" mit PGPASSWORD = "your_database_password"

2

Alternativ passieren, Sie psql verwenden können:

psql -h 192.168.0.190 -p 5432 -d <dbname> -U <username> -W -f mydump.dump

0

Ein Beispiel für eine Remote-RDS-Instanz auf AWS

psql -h mydb.dsdreetr34.eu-west-1.rds.amazonaws.com -p 5432 -d mydbname -U mydbuser -W -f mydatabase-dump.sql 

    -f, --file=FILENAME  execute commands from file, then exit 
    -W, --password   force password prompt (should happen automatically) 
0

ich betreibe dieses und arbeitet für mich:

scp backup.dump [email protected]:~ 

    ssh [email protected] "pg_restore -h localhost -p 5432 -U databaseuser -W -F c -d databasename -v backup.dump" 

Sie können ein Skript schreiben, um dies zu automatisieren.

Verwandte Themen