簡要說一下MongoDB的備份方式:
1. mogodump / mongorestore
這2命令將mongodb的數據dump為BSON格式,需要的時候可以恢復。
這種方式作為小的數據庫還適用。但如果是sharding或者幾百G數據以上的話
就幾乎不可用了。因為BSON及其占用空間。
2. Slave Replication
這是最適合和可靠的,適合生產環境。MongoDb支持master+多個slave。因此可以很方便的起一個slave來進行備份。
但是需要注意的是如果數據量很大的話,如果是新建的slave,速度又沒有保證的話,一定要調高 oplogSize 的大小,對於一個300G的數據庫,
可以調到60G以上。這樣避免同步到中間出現oplogSize不足等異常。
3. 關於增量熱備份
對於某些熱衷單獨文件備份的同志,也可以考慮使用“增量熱”備份的方式作為最後的屏障。
做法就是,最開始將某個slave暫時shutdown,然後將數據庫文件復制到另一個目錄作為增量備份的起點。
每次備份的時候,在這個目錄上起一個slave, 使用–fastsync參數,同步完畢即可tar這個目錄就可以了。
這種方式的一個缺點就是如果備份周期的過長的話,空間浪費會非常大,尤其是頻繁刪除的情況下,
目前1.6以前的版本對於刪除的空間回收機制有bug。這個問題應該在1.6版本發布時候解決。
要想回收這些空間需要repairDatabase,速度比較慢,不如直接從頭clone一個新的db了。(其實Repair的過程也就是先clone然後copy回來)。
綜上所述, 最靠譜和安全的備份方式就是用mongodb自身的同步復制機制.
最經典也最小的生產環境是:
1 master + 2 slaves
以上所述就是本文關於MongoDB的備份方式的全部內容了,希望大家能夠喜歡。