为什么我新创建的mongodb本地数据库增长到24GB?

时间:2013-09-27 20:45:55

标签: mongodb

我几天前设置了mongodb副本集,我对它进行了一些小测试,一切运行良好。今天我发现它的本地系列增长到了24G !!!

rs0:PRIMARY> show dbs
local   24.06640625GB
test    0.203125GB

除“oplog.rs”外,其他集合看起来很正常:

rs0:PRIMARY> db.oplog.rs.stats()
{
    "ns" : "local.oplog.rs",
    "count" : 322156,
    "size" : 119881336,
    "avgObjSize" : 372.12200300475547,
    "storageSize" : 24681987920,
    "numExtents" : 12,
    "nindexes" : 0,
    "lastExtentSize" : 1071292416,
    "paddingFactor" : 1,
    "systemFlags" : 0,
    "userFlags" : 0,
    "totalIndexSize" : 0,
    "indexSizes" : {

    },
    "capped" : true,
    "max" : NumberLong("9223372036854775807"),
    "ok" : 1
}

这是我的mongodb.conf

dbpath=/data/db

#where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
port = 27017
fork = true
replSet = rs0

我该如何解决?非常感谢。

1 个答案:

答案 0 :(得分:19)

oplog用于保存主要操作的持续日志并用于复制机制,默认情况下分配为可用磁盘空间的5%(对于Linux / Unix系统,而不是Mac OS X或视窗)。因此,如果你有大量的可用磁盘空间,MongoDB会生成一个大的oplog,这意味着你有一个很长的时间窗口,你可以在其中恢复到任何时间点。一旦oplog达到其最大大小,它就会翻转(环形缓冲区)。

您可以使用oplogSize选项初始化数据库时指定oplog的大小,请参阅http://docs.mongodb.org/manual/core/replica-set-oplog/

底线:除非你真的缺少磁盘空间(显然你没有,否则oplog不会被创建得那么大),不要担心它。它提供了额外的安全性。