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
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:
Alternativement, vous pouvez utiliser psql:
psql -h 192.168.0.190 -p 5432 -d <dbname> -U <username> -W -f mydump.dump
Vous pouvez passer le paramètre password dans votre script avant "pg_restore" à l'aide de PGPASSWORD = "your_database_password"
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.
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)