-rw------- 1 root wheel 67108864 8 16 13:49 video.0
-rw------- 1 root wheel 134217728 8 16 13:48 video.1
-rw------- 1 root wheel 268435456 8 16 13:48 video.2
-rw------- 1 root wheel 536870912 8 16 13:48 video.3
-rw------- 1 root wheel 1073741824 8 16 13:49 video.4
-rw------- 1 root wheel 2146435072 8 16 13:49 video.5
-rw------- 1 root wheel 16777216 8 16 13:49 video.ns
我感覺 video.ns 是 video.0 到 video.5 是一個成長的過程 感覺最新的資料就是 video.5 請問其他的資料是可以刪掉的嗎? 我之前用了rm的命令去刪除,之後啟動mongo會報錯說資料被破壞,這種方式估計是有問題的,想問下有什麼其它的方式去釋放這些空間。 。 。 。
天蓬老师2017-05-02 09:23:52
如果你仔細算一下的話,
video.0 = 64MB
video.1 = 128MB
video.2 = 256MB
...
video.5 = 2GB
這是MMAPv1引擎的分配空間方式,2的n次方,到2GB之後不再成長。 每個檔案都是存有實際資料的,不能隨便刪除
講真,為什麼會想到直接刪除資料庫的檔案?似乎沒有哪個資料庫支持這樣的做法。如果想要釋放空間,比較安全的方法應該考慮複製集重新同步,或是repairDatabase。後者有很多限制,請注意仔細看文件。
另外如果沒有大規模刪除過資料的話,也沒有必要進行上面兩個操作,因為反正也釋放不出什麼空間來。