PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Copia del database PostgreSQL su un altro server

Non è necessario creare un file intermedio. Puoi fare

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

o

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

usando psql o pg_dump per connettersi a un host remoto.

Con un database grande o una connessione lenta, scaricare un file e trasferire il file compresso potrebbe essere più veloce.

Come ha detto Kornel, non è necessario eseguire il dump su un file intermedio, se vuoi lavorare compresso puoi usare un tunnel compresso

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

o

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

ma questa soluzione richiede anche di ottenere una sessione in entrambe le estremità.

Nota: pg_dump è per il backup e psql è per il ripristino. Quindi, il primo comando in questa risposta è copiare da locale a remoto e il secondo è da remoto a locale . Altro -> https://www.postgresql.org/docs/9.6/app-pgdump.html