web-dev-qa-db-fra.com

Restaurer le vidage sur la machine distante

J'ai ma propre machine avec le fichier postgres dmp, que je veux restaurer sur la machine virtuelle distante (par exemple, ip est 192.168.0.190 et le port postgres est 5432) sur mon réseau. Est-il possible de restaurer ce dump en utilisant pg_restore sans copier dump sur une machine distante? Parce que la taille du dump est d’environ 12 Go et que l’espace disque de la machine virtuelle est de 20 Go. Merci

11
Danila Zharenkov

Vous pouvez exécuter une restauration sur le réseau sans copier le dump sur l'hôte distant.

Appelez simplement pg_restore avec -h <hostname> et -p <port> (et probablement -U <username> pour vous authentifier en tant qu'utilisateur différent) sur l'hôte auquel vous avez obtenu le fichier de vidage, par exemple:

pg_restore -h 192.168.0.190 -p 5432 -d databasename -U myuser mydump.dump

Références:

19
nif

Alternativement, vous pouvez utiliser psql:

psql -h 192.168.0.190 -p 5432 -d <dbname> -U <username> -W -f mydump.dump

4
mopdobopot

Vous pouvez passer le paramètre password dans votre script avant "pg_restore" à l'aide de PGPASSWORD = "your_database_password"

0
Van

Je lance ceci et travaille pour moi:

    scp backup.dump user@remotemachine:~

    ssh user@remotemachine "pg_restore -h localhost -p 5432 -U databaseuser -W -F c -d databasename -v backup.dump"

Vous pouvez écrire un script pour automatiser cela.

0
Franco S

Exemple pour une instance RDS distante sur 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
Dr Manhattan