2019年01月17日 16:22:29 DreamLRH 閱讀數 266mongodb
1.mongodump建立高保真的BSON文件,mongorestore能夠用其恢復數據庫。對於小型數據庫的備份和恢復,這兩個工具很是簡單和高效,但對於大型數據庫的備份並不理想。
2.mongodump/mongorestore能夠直接對正在運行的mongodb執行操做。
3.默認狀況下,mongodump不會捕獲本地數據庫的內容,而只是捕獲其中的document,因此佔用空間較小(我試過了,佔用空間也很多,原空間佔用17G,備份完了37G)。不過,這也致使mongorestore恢復數據時,須要重建索引。
4.mongodump執行過程當中會影響mongodb的性能。另外,即便執行結束後的一段時間性能依然會受到影響,由於讀取冷數據時,會把熱數據從緩存中擠出去了。
5.若是數據大於系統內存,那麼查詢將會致使內存溢出,從而致使page faults。不過我測試時,待備份數據17G,機器內存8G,並無出現錯誤。
6.若是輸出文件夾中有文件,mongodump會覆蓋。數據庫
mongodump使用--oplog選項,捕獲備份過程當中的修改,以保障備份數據的一致性。但這個須要另外配置,涉及複製功能。本文檔未使用此選項。相對應的,若是備份時使用--oplog,那麼恢復數據時使用--oplogReplay選項。緩存
可使用--host/--port指定要備份的實例。用這兩個選項能夠進行遠程備份。工具
指定備份的數據和集合。性能
mongodump使用此選項,指定備份的數據寫到哪一個路徑。若是不指定,默認寫在當前工做目錄的dump/路徑下。測試
插入數據時,檢查完整性。spa
在恢復數據以前,刪除以前的集合。.net
1.執行備份命令,將備份數據寫入到/home/dump/文件夾下。以下各命令使用的用戶「root」是超級用戶,其角色爲內置角色root。3d
mongodump --username "root" --password "xxxxxx" --out /home/dump/
若是出現以下內容,則表示備份完成:rest
備份的數據包含288萬多條document,數據庫大小16G多,耗時14分鐘左右。
2.執行恢復命令。
mongorestore --username "root" --password "xxxxxx" /home/dump/
若是出現以下內容,則表示恢復完成:
數據恢復總共耗時17分鐘左右。其中數據恢復完成後,重建索引花費了5分鐘的時間。