我试图实现改变加盖集合大小的功能,并且在2GB的32位系统上运行的可用虚拟空间不足。如果我尝试删除旧集合并创建具有相同名称但大小不同的新集合,Mongo db会不断创建新文件。32位Windows 2003上的多个'repairDatabase'导致MongoDb终止
为了解决这个问题,我决定在每次更改集合的大小时都要执行一次repairDatabase,以便Mongo Db在执行该操作之前可以减小文件大小。它在Windows 2008 32位但在Windows 2003 32位上正常工作在尝试执行一系列操作'repairDatabase','dropCollection','createCollection'(尝试接近10次)后出现以下错误。
Tue Aug 28 06:24:28 [conn7] MapViewOfFileEx for C:/Program Files/.../MongoDb/data/$tmp_repairDatabase_0/sbm.1 failed with errno:8 ?????????????????????????? (file size is 536870912) in MemoryMappedFile::map, terminating.
我beleive由问题字符替换该消息是'Not enough storage is available to process this command.'
。我在这里看到它SERVER-6044和这里SERVER-5244。但是这些问题似乎都与我的情况一样。有什么办法可以阻止Mongo Db终止?或者是否有更好的方法来减少文件大小,如果我改变封顶的集合大小?
我还试图创建只有大小不超过500MB的集合(请参阅this问题以查明原因)。我使用的Mongo Db版本是2.0.7