如何使 mongodb 数据库大小更大?

如何使 mongodb 数据库大小更大?

我一直在将带有报告的照片上传到 mongodb。我已达到数据库大小限制。如何增加数据库的大小?

db.stats()
{
        "db" : "fieldops",
        "collections" : 6,
        "objects" : 20454,
        "avgObjSize" : 890464.9997066589,
        "dataSize" : 18213571104,
        "storageSize" : 18432802736,
        "numExtents" : 52,
        "indexes" : 4,
        "indexSize" : 809424,
        "fileSize" : 21398290432,
        "nsSizeMB" : 16,
        "extentFreeList" : {
                "num" : 0,
                "totalSize" : 0
        },
        "dataFileVersion" : {
                "major" : 4,
                "minor" : 22
        },
        "ok" : 1
}

另外,顺便说一句。我现在每个月上传 12,000 张照片。我读到 mongodb 的限制是 16,000。我在词汇表中data file找不到 的定义。这是指我上传到数据库的图片吗?那么,一旦发生这种情况,我必须设置一个带有分片的单独服务器吗?或者我可以在同一台机器上创建一个分片吗?data filebuffered

提前致谢。

答案1

我一直在将带有报告的照片上传到 mongodb。我已达到数据库大小限制。如何增加数据库的大小?

假设您有可用的磁盘空间,MongoDB 将根据需要自动分配额外的磁盘空间。由于您正在运行 MMAP 存储引擎(根据您的db.stats()输出),MongoDB 将以递增的增量预分配空间,每个新文件最多 2GB(如果您恰好使用smallFiles选项)。假设您的数据库当前大于 18GB,您将需要至少 2GB 的可用空间(如果您的临时目录位于同一卷上,还需要一些用于 O/S 的空间)。

集合的文档数量没有限制,除非你恰好使用具有指定上限的集合max限制(必须小于 2^32)。MongoDB 生产部署中有数万亿个文档(参考:MongoDB 规模化)。

MongoDB 3.0+ 具有存储引擎 API,因此可能存在一些因存储引擎而异的限制。例如,数据大小限制对于使用经典 MMAPv1 存储引擎的单个服务器,mongod在启用日志功能的情况下,通常有 64 TB 的数据。WiredTiger 存储引擎(3.0 中为可选,3.2+ 中为默认)没有此限制。

每月插入数万份文件应该不是问题。

更多信息请参阅:MongoDB 限制和阈值

相关内容