20

几天前我设置了一个 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

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

4

1 回答 1

21

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

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

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

于 2013-09-27T21:31:32.403 回答