PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Copie de la base de données PostgreSQL sur un autre serveur

Vous n'avez pas besoin de créer un fichier intermédiaire. Vous pouvez faire

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

en utilisant psql ou pg_dump pour se connecter à un hôte distant.

Avec une grande base de données ou une connexion lente, le vidage d'un fichier et le transfert du fichier compressé peuvent être plus rapides.

Comme l'a dit Kornel, il n'est pas nécessaire de vider dans un fichier intermédiaire, si vous voulez travailler compressé, vous pouvez utiliser un tunnel compressé

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

ou

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

mais cette solution nécessite également d'avoir une session aux deux bouts.

Remarque : pg_dump est pour la sauvegarde et psql est pour la restauration. Ainsi, la première commande de cette réponse consiste à copier de local à distant et la seconde de distant à local . Plus -> https://www.postgresql.org/docs/9.6/app-pgdump.html