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()。這個方法的好處是可以時間將磁盤上的數據刪除掉。節省出很大的空間。
