可能重複:
Auto compact the deleted space in mongodb?MongoDB的數據刪除 - 回收磁盤空間
我的理解是,在刪除操作MongoDB中不會釋放磁盤空間,但根據需要將重用。
- 這是正確的嗎?
- 如果不是,我會運行修復命令嗎?
- 修復可以在活的mongo實例上運行嗎?
可能重複:
Auto compact the deleted space in mongodb?MongoDB的數據刪除 - 回收磁盤空間
我的理解是,在刪除操作MongoDB中不會釋放磁盤空間,但根據需要將重用。
db.repairDatabase()
以縮小數據庫大小。這有點這個問題的MongoDB的副本的......
Auto compact the deleted space in mongodb?
查看怎麼說答案細節...
還可以看到此相關的博客文章:http://learnmongo.com/posts/compacting-mongodb-data-files/
我有另一種解決方案可能工作不是做db.repairDatabase(),如果您不能負擔的系統更好地被鎖定,或者不要沒有雙倍的存儲空間。
您必須使用副本集。
我的想法是,一旦你已經刪除了吞噬你的磁盤的所有多餘數據,停止一個輔助副本,擦除它的數據目錄,啓動它並讓它與主節點重新同步。重複與其他次級人物,一次一個。
在主設備上,執行rs.stepDown()以將MASTER切換到其中一個同步輔助設備,現在停止此設備,擦除它並重新同步。
該過程非常耗時,但執行rs.stepDown()時應該只花費幾秒鐘的停機時間。
雖然您可以在實時系統上運行修復,但它會使其不可用,因爲它在運行時鎖定服務器;我認爲這實際上意味着如果您打算繼續使用該實例,則無法在實例上運行它。 – 2011-04-03 14:39:44