我已經寫了this question in mongodb google group,沒有任何回覆在這裏發佈。需要多少額外的空間來修復數據庫需要
我們有一個單節點mongo(版本2.0.1)實例。即使每天歸檔後,我們的磁盤空間也不足,因爲mongo不會將空間返回到操作系統,並嘗試自行使用它。目前我們的設置已經變得非常稀疏,約有50%的空間閒置。您可以看到數據+索引大小約爲1170 GB,而存儲大小約爲2158 GB,文件大小約爲2368 GB。
db.stats()
{
"db" : "default",
"collections" : 106,
"objects" : 553988389,
"avgObjSize" : 2094.1392962010254,
"dataSize" : NumberLong("1160128855044"),
"storageSize" : NumberLong("2315777236208"),
"numExtents" : 1487,
"indexes" : 107,
"indexSize" : 97914435136,
"fileSize" : NumberLong("2543459500032"),
"nsSizeMB" : 16,
"ok" : 1
}
我們要回收空間,並因爲這不是一個關鍵任務系統(它像日誌傾倒場)可以維持的停機時間。我們不想花費在創建副本集上,我們也在物理數據中心,因此寧願不附加額外的磁盤來修復數據庫。
我想了解: -
- 如何需要修復數據庫
我們 - 如何多少空間可以希望修復數據庫
-Around應該花費多少時間來修復數據庫之後收回多少可用磁盤空間。
- 如果所有修復數據庫都在繼續,那麼殺死它並重新啓動數據庫是否安全?
我們的數據大量存在於單個集合中,因此緊湊集合是否優於修復數據庫。
修復可能需要多達2倍的空間。 –
數據大小或存儲大小的2倍? – pseudonym
修復會做一個''mongodump''和''mongorestore'',因此它需要數據庫使用的磁盤空間的兩倍,即需要空間來存儲舊的和新的數據庫文件。爲了避免你可以手動執行''mongodump'',刪除數據庫文件,然後運行''mongorestore''。另外,如果你只需要回收未使用的空間,你可以運行「compact」(確保你有2GB可用空間)。 – diliop