Ho la mia macchina con file dmp postgres, che voglio ripristinare sulla macchina virtuale remota (ad esempio, ip è 192.168.0.190 e la porta Postgres è 5432) nella mia rete. È possibile ripristinare questo dump usando pg_restore senza copiare dump su macchina remota? Poiché la dimensione di dump di circa 12 GB e lo spazio su disco sulla macchina virtuale è 20 GB. GrazieRipristino dump sul computer remoto
7
A
risposta
13
È possibile eseguire un ripristino sulla rete senza copiare il dump sull'host remoto.
Basta invocare pg_restore
con -h <hostname>
e -p <port>
(e probabilmente -U <username>
per autenticare come altro utente) sull'host hai il file di dump, ad esempio:
pg_restore -h 192.168.0.190 -p 5432 -d databasename -U myuser mydump.dump
Riferimenti:
0
È possibile passare il parametro della password nello script prima di "pg_restore" utilizzando PGPASSWORD = "your_database_password"
2
In alternativa, è possibile utilizzare psql:
psql -h 192.168.0.190 -p 5432 -d <dbname> -U <username> -W -f mydump.dump
0
Un esempio per un'istanza RDS remoto su 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
corro questo e lavora per me:
scp backup.dump [email protected]:~
ssh [email protected] "pg_restore -h localhost -p 5432 -U databaseuser -W -F c -d databasename -v backup.dump"
È possibile scrivere uno script per automatizzarlo.
Sì, hai ragione. Sto provando in questo modo pg_restore -i -h 192.168.1.190 -p 5432 -U postgres -d MFC_sara -v /home/develop/BD_Dumps/Saratov.dmp; Ma dopo questo comando è necessario inserire una password per il database di destinazione. E non lo so, sulla macchina virtuale creo solo db come createdb -T template0 MFC_sara –
Se si desidera accedere da una macchina remota è necessario l'autenticazione della password (o qualsiasi altra autenticazione non locale). Crea un utente e assegna i privilegi per il database. O se questo non è un ambiente di produzione, crea un superutente con password: 'createuser -P -s someusername' – nif