PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Copiando o banco de dados PostgreSQL para outro servidor


Você não precisa criar um arquivo intermediário. Você pode fazer
pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname

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

usando psql ou pg_dump para se conectar a um host remoto.

Com um banco de dados grande ou uma conexão lenta, despejar um arquivo e transferir o arquivo compactado pode ser mais rápido.

Como Kornel disse não há necessidade de despejar em um arquivo intermediário, se você quiser trabalhar compactado, pode usar um túnel compactado
pg_dump -C dbname | bzip2 | ssh  [email protected] "bunzip2 | psql dbname"

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

mas esta solução também requer uma sessão em ambas as extremidades.

Observação: pg_dump é para fazer backup e psql é para restaurar. Portanto, o primeiro comando nesta resposta é copiar de local para remoto e o segundo é de remoto para local . Mais -> https://www.postgresql.org/docs/9.6/app-pgdump.html