在win2012上运行mongodb
Mongo数据库版本v2.6.4
我们的集合是使用此参数创建的:
上限:true,大小:500000000000//500 GB
但是仅保存这一个集合的数据目录已增长到 720GB。
此 mongo 服务器上根本没有使用复制。
如何才能将数据目录保持在 ~ 500 GB?
这个数据库有时确实会进行大量插入,但我们还需要控制最大大小(并让它丢弃旧数据)。
上限大小是否可能不包含索引?
或者我还应该考虑其他开销吗? (以及如何?
还是?
数据库统计
> db.stats
function (scale){
return this.runCommand( { dbstats : 1 , scale : scale } );
}
> db.stats()
{
"db" : "logging",
"collections" : 3,
"objects" : 289637086,
"avgObjSize" : 2076.3166847770317,
"dataSize" : 601378314192,
"storageSize" : 606012620432,
"numExtents" : 305,
"indexes" : 12,
"indexSize" : 147827443456,
"fileSize" : 776943435776,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"ok" : 1
}
>
我们用来创建集合的命令:
db.createCollection("LogItem", { capped:true, size:500000000000 })
因此,我们写入的集合是使用 capped cmd 创建的。这就是所有空间的所在
由于磁盘空间不足,我无法执行 db.collection.stats()...
谢谢!
最佳答案
已解决
问题?好吧,您可以创建一个作为上限的集合,这确实有效......但是在创建新数据库时,如果传入连接正在发送数据,则在您有机会将其创建为上限之前,会自动创建新数据库,并且你最终会得到......一个无上限的集合。
解决方案:
当 mongo 离线时,通过将其设置为非标准端口的配置将其暂时恢复。创建集合。然后在正常端口重新启动mongo,一切顺利。
关于Mongodb:似乎不遵守上限大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27587683/