2014-10-15 40 views
7

Ağımdaki uzak sanal makinede (örneğin, ip 192.168.0.190 ve posta bağlantı noktası 5432) geri yüklemek istediğim postgres dmp dosyası olan kendi makinem var. Bu dökümü uzak makineye dökümü kopyalamadan pg_restore kullanarak geri yüklemek mümkün mü? Çünkü yaklaşık 12GB'lık boşaltma boyutu ve sanal makinedeki disk alanı 20GB'tır. TeşekkürlerUzak makinedeki çöp kutusunu geri yükleme

cevap

13

Çöp kutusunu uzak ana bilgisayara kopyalamaksızın ağ üzerinden geri yükleme çalıştırabilirsiniz.

Sadece örneğin, döküm dosyası var ana bilgisayarda (farklı kullanıcının kimliğini doğrulamak için ve muhtemelen -U <username>) -h <hostname> ve -p <port> ile pg_restore çağırmak:

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

Referanslar:

+0

Evet, haklısınız. Bu gibi deneyiyorum pg_restore -i -h 192.168.1.190 -p 5432 -U postgres -d MFC_sara -v /home/develop/BD_Dumps/Saratov.dmp; Ancak bu komuttan sonra hedef veri tabanı için şifre girmek gerekiyor. Ve ben bunu bilmiyorum, sanal makinede oluşturduğum db gibi oluşturdumb -T template0 MFC_sara –

+1

Uzak bir makineden erişmek istiyorsanız, parola kimlik doğrulaması (veya herhangi bir yerel olmayan kimlik doğrulaması) gerekir. Bir kullanıcı oluşturun ve veritabanı için ayrıcalıklar atayın. Ya da bu üretim ortamı değilse, parola ile bir süper kullanıcı oluşturun: 'createuser -P -s someusername' – nif

0

Sen psql'i kullanabilirsiniz,

2

Alternatif PGPASSWORD = "your_database_password" kullanarak "pg_restore" önce komut şifre parametresi iletebilirsiniz:

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

0

AWS uzak bir RDS örneği için bir örnek

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

Bunu bana çalıştırmak ve çalışır:

scp backup.dump [email protected]:~ 

    ssh [email protected] "pg_restore -h localhost -p 5432 -U databaseuser -W -F c -d databasename -v backup.dump" 

Bunu otomatikleştirmek için bir komut dosyası yazabilirsiniz.