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

bla*_*gun 15 mongodb

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

rs0:PRIMARY> show dbs
local   24.06640625GB
test    0.203125GB
Run Code Online (Sandbox Code Playgroud)

除"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
}
Run Code Online (Sandbox Code Playgroud)

这是我的mongodb.conf

dbpath=/data/db

#where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
port = 27017
fork = true
replSet = rs0
Run Code Online (Sandbox Code Playgroud)

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

drm*_*ror 19

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

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

一句话:除非你真的缺少磁盘空间(显然你不是,否则oplog不会被创建得那么大),不要担心它.它提供额外的安全性.

  • 建议不要先在QA环境中尝试过生产中的_anything_.如果旧的MongoDB版本离新版本不太远,那么只需将旧数据文件传输到新的主数据目录并重新启动新的副本集就可以更容易了.复制应该赶上完全同步.如果不首先在QA中尝试,请不要这样做! (4认同)