2013-10-07 24 views
17

我們最近將一些數據移植到MongoDB,現在正在考慮運行日常備份,最好是從cron作業運行,並將其中一個備份恢復到第二個mongo數據庫。來自遠程服務器的Mongodump

我們的系統設置如下:

有三臺服務器:服務器1具有發展蒙戈數據庫,服務器2有兩個蒙戈數據庫,一個用來暫存數據,一個用於生產,而第三服務器我們在那裏運行我們所有的cron作業/批處理腳本。

我查了蒙戈文檔,並登錄到我們的計劃任務的服務器,並試圖運行下面的命令:(用戶名,主機和密碼已更改爲安全,我沒有實際連接到本地主機)

mongodump --host 127.0.0.1/development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1 

我得到以下信息:

週一十月七日10時03分42秒起對副本集127.0.0.1新的副本設置顯示器與發展的種子:27017
週一十月七日10時03分42秒順利連接到種子開發:複製品集127.0的27017。 0.1
Mon Oct 7 10:03:42 warning:node:development:27017不是集合的一部分:127.0.0.1 ismaster:{ismaster:true,maxBsonObjectSize:16777216,ok:1.0}
Mon Oct 7 10 :03:44副本集監視器爲副本集127.0.0.1啓動,地址爲127.0.0.1/
Mon Oct 7 10:03:44 [ReplicaSetMonitorWatcher]啓動無法連接到[127.0.0.1/development:27017] connect無法設置127.0.0.1/development:27017

我確定可以連接到使用mongo -u -p ip/development

我們的最終目標WIL蒙戈數據庫l是從生產數據庫轉儲數據並將其存儲在臨時數據庫中。這兩個數據庫都位於同一個盒子中,如果這有所作爲,但出於測試目的,我只是試圖獲得開發測試數據的備份。

+3

嘗試用'--host 127.0.0.1 -d development'替換'--host 127.0.0.1/development',它可能會解決您的問題。 –

+0

所以它,當我使用'mongo -u -p'連接時,我只是在主機之後添加數據庫。顯然這不是處理它的適當方式,至少對於mongodump來說。轉儲工作完全符合這一變化 – awestover89

回答

32

mongo客戶端可以解析MongoDB connection string URI,因此不是分別指定所有連接參數,而是可以傳遞單個連接字符串URI。

對於您的情況,您嘗試將連接URI作爲host傳遞,但127.0.0.1/development不是有效的主機名。這意味着你應該從host分別指定database參數:

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


這爲我工作。

參考:https://docs.mongodb.com/manual/reference/program/mongodump


語法1:

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

語法2:

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



實施例1:

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

實施例2:

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

下面是從節點服務器出口採集到本地機器的例子:

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」