我几天前设置了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
我该如何解决?非常感谢。
答案 0 :(得分:19)
oplog用于保存主要操作的持续日志并用于复制机制,默认情况下分配为可用磁盘空间的5%(对于Linux / Unix系统,而不是Mac OS X或视窗)。因此,如果你有大量的可用磁盘空间,MongoDB会生成一个大的oplog,这意味着你有一个很长的时间窗口,你可以在其中恢复到任何时间点。一旦oplog达到其最大大小,它就会翻转(环形缓冲区)。
您可以使用oplogSize
选项初始化数据库时指定oplog的大小,请参阅http://docs.mongodb.org/manual/core/replica-set-oplog/
底线:除非你真的缺少磁盘空间(显然你没有,否则oplog不会被创建得那么大),不要担心它。它提供了额外的安全性。