mongodb 釋放磁盤空間


db.copyDatabase("from","to","127.0.0.1:16161");

將127.0.0.1上的from庫。拷貝到to庫。

這樣做有一個額外的好處。就是from庫中可能是刪除過數據的庫。看我們知道刪除數據時磁盤空間是不會被釋放的。參考博客里的另一篇文章:mongodb刪除集合后磁盤空間不釋放

肯能造成占用很大磁盤空間。雖然可以用    db.repairDatabase()修復數據。但這種方法有兩個不好的地方。1.在生產上操作如果意外停止可能會造成數據無法恢復的危險。2.如果磁盤空間不足,小於現在這個db時間占有的空間,這種情況是用不了    db.repairDatabase()的。

所以介紹用db.copyDatabase可以備份復制數據的方法。

1.db.copyDatabase("from","to","127.0.0.1:16161");復制出一個新的to數據庫。這個已經是最小數據占用的數據。會在數據目錄下產生to的相關數據文件。

2.將所有程序的配置從from庫改為to庫。測試無誤。

3.這時可以刪除from庫。方法。use from 后 db.dropDatabase()。這個方法的好處是可以時間將磁盤上的數據刪除掉。節省出很大的空間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM