一、 在mongo 3.4版本之前修改oplog的大小的方式
---关闭节点
mongod --dbpath /srv/mongodb --shutdown
如果这个节点是primary ,那么会出发一个failover,另外一个节点的replication会成为主节点。
---用单实例重启关闭的节点,换一个端口和去掉shard,用单实例启动
mongod --port 37017 --dbpath /srv/mongodb
--备份现有oplog log
mongodump --db local --collection 'oplog.rs' --port 37017
---登录单实例
mongo --port 37017
---保存最新的oplog 条目
use local
db.temp.save( db.oplog.rs.find().sort( {$natural : -1} ).limit(1).next() )
db.temp.find()
---重新设置oplog
use local
db.oplog.rs.drop()
--创建新的 oplog, 这里需要注意oplog size
db.runCommand( { create : "oplog.rs", capped : true, size : 2147483648 } )
--保存新的数据到oplog中
db.oplog.rs.save( db.temp.findOne() )
db.oplog.rs.find()
--重启实例,恢复到集群中
mongod --dbpath /srv/mongodb --shutdown
mongod --replSet rs0 --dbpath /srv/mongodb
rs.stepDown()
二、在3.6版本 之后,修改oplog变的简单了很多
---登录副本集
mongo --host <hostname>:<port>
---确定当前oplog日志的大小
use local
db.oplog.rs.stats().maxSize
---修改当前oplog的大小为16G
db.adminCommand({replSetResizeOplog: 1, size: 16000})