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
7
A
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
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.
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 –
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