2013-10-07 19 views
17

Kısa bir süre önce MongoDB'ye bazı veriler aktardık ve şimdi günlük yedeklemeleri, tercihen bir cron'dan çalıştırmayı ve yedeklerden birini ikincil bir mongo veritabanına geri yükledik.Uzak sunucudan Mongodump

şöyle Sistemimiz kurulur

:

üç sunucu var: Sunucu 1 gelişimi Mongo veritabanına sahip, sunucu 2 iki Mongo veritabanları, evreleme verileri için bir tane ve üretim için bir tane vardır ve üçüncü sunucusudur Tüm cron işimizi/toplu komut dosyalarını çalıştırıyoruz.

mongodump --host 127.0.0.1/development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1 
(kullanıcı adı, ana bilgisayar ve güvenlik için değiştirildi şifre, aslında localhost'a bağlanma değilim):

Ben Mongo dokümanlar kontrol ve bizim Cron sunucusuna giriş yapmış ve aşağıdaki komutu çalıştırmak için çalıştı başarıyla 7 Ekim 10:03:42 27017
Mon: gelişim tohumla çoğaltma kümesi 127.0.0.1 için yeni çoğaltma kümesi monitörü başlayan

Mon 7 Ekim 10:03:42:

Ben şu mesajları almak Tohum gelişimine bağlı: Replica set 127.0 için 27017. 0.1
Mon Eki 7 10:03:42 uyarı: düğüm: geliştirme: 27017 setin parçası değil: 127.0.0.1 ismaster: {ismaster: true, maxBsonObjectSize: 16777216, tamam: 1.0}
Pzt Ekim 7 10 : 03: 44 çoğaltma seti için kopya seti 127.0.0.1 başlatıldı, adres 127.0.0.1/
Mon Eki 7 10:03:44 [ReplicaSetMonitorWatcher], [127.0.0.1/development:27017] bağlantısına bağlanamadı Ben mongo -u -p ip/development

nihai hedefimiz wil kullanarak Mongo veritabanına bağlanmak doğruladı 127.0.0.1/development:27017

ayarlamak için başarısız Verileri üretim veritabanından dökmek ve bunu hazırlama veritabanında saklamak istiyorum. Bu iki veritabanının ikisi de aynı kutuda bulunur, eğer bu bir fark yaratırsa, ancak test amaçlı olarak sadece geliştirme testi verilerinin bir yedeğini almaya çalışıyorum.

+3

'--host 127.0.0.1/development' ile' --host 127.0.0.1 -d development' değiştirmeyi deneyin, sorununuzu çözebilir. –

+0

Yani, 'mongo -u -p' kullanarak bağlandığımda, veritabanını yalnızca ana bilgisayardan sonra ekledim. Görünüşe göre bu, en azından mongodump için uygun bir yol değil. Döküm, bu değişimle mükemmel bir şekilde çalıştı – awestover89

cevap

32

mongo istemci MongoDB connection string URI ayrıştırmak, bu nedenle bunun yerine ayrı ayrı tüm bağlantı parametrelerini belirleme Eğer tek bağlantı dizesini URI geçebilir.

Sizin durumunuzda, bağlantı URI'sini host olarak iletmeye çalışıyorsunuz, ancak 127.0.0.1/development geçerli bir ana bilgisayar adı değil. Bu host ayrı database parametresini belirtmelidir anlamı:

mongodump --host 127.0.0.1 -d development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1 
0
mongodump --host remotehostip:port --db dbname -u username -p password 
7


Bu benim için çalıştı.

Referans: https://docs.mongodb.com/manual/reference/program/mongodump


Kullanımı 1:

mongodump --host <hostname:port> --db <database> --username <username> --password <password> --out <path> 

Kullanımı 2:

mongodump -h <hostname:port> -d <database> -u <username> -p <password> -o <path> 



Örnek 1:

mongodump --host 127.0.0.1:27017 --db db_app --username root --password secret --out /backup/db/app-17-03-07 

Örnek 2: Burada

mongodump -h 127.0.0.1:27017 -d db_app -u root -p secret -o /backup/db/app-17-03-07 
0

yerel makineye bir düğüm sunucusundan toplama ihraç bir örneğidir:

Host : xxx.xxx.xxx.xx 
Port :27017 
Username:”XXXX” 
Password :”YYYY” 
AuthDB : “admin” 
“DB”: “mydb” 

D:\mongodb-backup>mongodump -h xxx.xxx.xxx.xxx –port 27017 -u “XXXX” -p “YYYY” –authenticationDatabase “admin” –db “mydb” 
İlgili konular