我在 32 位系统上使用 Mongo 数据库,我需要创建一个最大为 1GB 的大型上限集合。在 64 位系统上一切正常,但在 32 位系统上出现错误:
com.mongodb.CommandResult$CommandFailure: command failed [command failed [create] {
"serverUsed" : "localhost:27017" ,
"errmsg" : "exception: assertion db\\pdfile.cpp:437" ,
"code" : 0 ,
"ok" : 0.0}
在 32 位系统上,服务器的总存储大小为 2GB,但即使使用这个大小,我也无法创建大于 500MB 的集合。这个神奇的数字是什么意思?
Mongo db服务器版本为2.0.6
附加信息:
我有几个数据库文件,它们的总大小是34MB
. 在运行 mongo db 之前,我将这些文件复制到“data”目录中,启动 Mongo db,然后在 shell 中我看到相同的总大小数字 - 35651584 (34MB)
(使用的命令取自下面的评论)。如果我尝试创建一个大小为 500MB 的集合,我会看到添加了一个新文件 (512MB)。但是,例如,如果我将尝试创建一个大小为 600MB 的集合,则会出现上述错误(但仍添加了 512MB 文件)。
Mongo db 使用命令行选项启动:
> db.adminCommand("getCmdLineOpts")
{
"argv" : [
"mongod.exe",
"--dbpath",
"..\\data",
"-vvvvvv",
"--logpath",
"..\\log\\server.log"
],
"parsed" : {
"dbpath" : "..\\data",
"logpath" : "..\\log\\server.log",
"vvvvvv" : true
},
"ok" : 1
}
>