如何對MongoDB釋放空閑空間并整理空間碎片?
MongoDB釋放空閑空間及整理磁盤碎片可使用如下命令:
db.repairDatabase()
或
db.runCommand( { repairDatabase: 1 } )
有以下幾點需要注意:
1: 對于MMAPv1存儲引擎
在運行命令期間會產(chǎn)生鎖,建議暫停對外服務(wù)再進(jìn)行操作;
在運行命令時需要剩余磁盤空間是當(dāng)前數(shù)據(jù)集的大小再加上兩千兆字節(jié);
如磁盤剩余空間不足可使用—repairpath 單獨指定需要修復(fù)的db;
2: 對于WiredTiger存儲引擎(3.2版本后默認(rèn)使用該存儲引擎)
不產(chǎn)生鎖,不需要額外的磁盤。
推薦使用WiredTiger存儲引擎。
可參考官方文檔:
https://docs.mongodb.com/manual/reference/command/repairDatabase/index.html