我过去曾使用mongodb --repair
来恢复因文档删除而导致的稀疏空间;但在我的时间里,我从未使用--repair
过程增加数据库大小。
我在原始数据上运行了三次修复,并且每次增加DB大小。
我开始使用558 GB
数据库。
原始
> db.stats() { "db" : "selfservice", "collections" : 4, "objects" : 2821806, "avgObjSize" : 190351.89918229674, "dataSize" : 537136131224, "storageSize" : 558518763536, "numExtents" : 291, "indexes" : 12, "indexSize" : 1314422816, "fileSize" : 566592798720, "nsSizeMB" : 16, "dataFileVersion" : { "major" : 4, "minor" : 5 }, "extentFreeList" : { "num" : 17, "totalSize" : 5067198464 }, "ok" : 1 }
...最后得到一个786 GB
数据库。
修复
> db.stats() { "db" : "selfservice", "collections" : 4, "objects" : 2821806, "avgObjSize" : 277948.7895397487, "dataSize" : 784317562016, "storageSize" : 786090391904, "numExtents" : 399, "indexes" : 12, "indexSize" : 1082731328, "fileSize" : 789822046208, "nsSizeMB" : 16, "dataFileVersion" : { "major" : 4, "minor" : 5 }, "extentFreeList" : { "num" : 0, "totalSize" : 0 }, "ok" : 1 }
我的文件计数没有改变
原始
> db.docs.find().count() 2784992
修复
> db.docs.find().count() 2784992
我确实从原始数据库和空间中删除了文件以回收,但为什么数据库大小在--repair
我无能为力之后会增加。
维修日志没有说明原因;没有错误,没有问题......只需要分配比原始数据库更多的2GB文件。
有人有任何想法吗?
Mongodb:2.6.7