Mongodb:似乎不遵守上限大小限制

标签 mongodb

在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/

相关文章:

python - 在mongodb中保存numpy数组

javascript - 如何使用我的位置通过纬度和经度计算两点之间的距离

javascript - 如何在测验应用程序中移至下一个或上一个问题?

javascript - 使用 Mongoose 更新信息,对象内部的数组动态地更新

swift - 在 ubuntu 上使用 MongoSwift 时 Vapor 崩溃

MongoDB 无法在 Karaf 4.0.8 和 Camel 2.18.1 上运行

c# - 如何通过使用 MongoDB C# 驱动程序调用 obj.ToBsonDocument() 来全局忽略空值?

Mongodb查询可变数量的搜索词

javascript - 如何从 Mongo Shell 运行 js 文件

mongodb - 是否可以使用 Mongoose 查询构建器只返回聚合管道数组而不运行查询?