PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Kopieren der PostgreSQL-Datenbank auf einen anderen Server

Sie müssen keine Zwischendatei erstellen. Sie können

tun
pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname

oder

pg_dump -C -h remotehost -U remoteuser dbname | psql -h localhost -U localuser dbname

mit psql oder pg_dump um sich mit einem entfernten Host zu verbinden.

Bei einer großen Datenbank oder einer langsamen Verbindung kann das Sichern einer Datei und das Übertragen der komprimierten Datei schneller sein.

Wie Kornel sagte, ist es nicht notwendig, in eine Zwischendatei zu kopieren, wenn Sie komprimiert arbeiten möchten, können Sie einen komprimierten Tunnel verwenden

pg_dump -C dbname | bzip2 | ssh  [email protected] "bunzip2 | psql dbname"

oder

pg_dump -C dbname | ssh -C [email protected] "psql dbname"

aber diese Lösung erfordert auch eine Sitzung an beiden Enden.

Hinweis: pg_dump dient zum Sichern und psql ist zum restaurieren. Der erste Befehl in dieser Antwort ist also das Kopieren von lokal nach remote und der zweite von remote nach lokal . Mehr -> https://www.postgresql.org/docs/9.6/app-pgdump.html