2017-07-20 42 views
-1

我在我的/data/db目錄如何在/ data/db /中使用具有多個本地數據塊的輸入目錄恢復mongo?

$ mongo 
MongoDB shell version: 3.2.9 
connecting to: db-A 

$ show dbs 
db-A 0.00gb 
db-B 0.02gb 
db-C 0.08gb 
db-D 0.00gb 

當地時間4個DBS當我嘗試運行:

$ mongorestore -h dsxxxxx.mlab.com:xxxxx -d <dbname> -u <user> -p <password> /data/db` 

它導入db-A數據庫,以我的MLAB分貝,我怎麼指定我想導入數據庫的db-C

+0

通過指定'-d db-C',就像用法提示您在''處提示的那樣。除非你的「備份」實際上不包含該數據庫的備份。看起來你實際上有「根本沒有備份」,並試圖直接運行數據庫文件。你不能這樣做。相反,通過'mongodump'創建備份,然後使用'mongorestore'來填充目標。 –

+0

值得注意。在MongoDB 3.x之前,'mongorestore'和'mongodump'可以直接訪問數據庫文件(儘管在執行時不應該運行'mongod')。從本版本開始刪除,因爲使用的機制「推測」數據格式爲MMAPv1格式。隨着新的數據庫引擎的添加,這些工具不再可能實現,而是通過與正在運行的實例進行通信來工作。 –

+0

事情是我從mlabs文檔直接抓住那條線,並且他們實際上填充了'',因爲我的db的名字在mlabs上,所以我認爲這是正確的?對於上下文,我試圖完成的是將我的本地'db-C'中的數據傳輸到我在mlabs上創建的全新數據庫,如果這有幫助... –

回答

0

如果您要將數據從一個mongodb實例移動到另一個實例,則需要首先從第一個數據庫中轉出數據,然後將其導入到其他數據庫中。您不能使用mongorestore直接讀取源數據庫並將其「還原」爲新數據庫。

您可以使用目標mongo中的copyDatabase()命令從其他機器複製整個數據庫。

還有mongodb-connector你也可以使用。實際上,它是在兩個實例之間「複製」一種方式的非常方便的工具。

+0

謝謝。這兩個參考看起來很有用,我會檢查出來! –

相關問題