MongoDB复制集调整oplog大小

oplog过小会引起主从同步失败,调整oplog大小是比较常用的操作。步骤如下

1、登录到要调整oplog大小的机器,如果这台机器是主节点,让主节点退位

rs.stepDown() ##退位主节点,可选

2、关闭当前节点(保证该节点已经是从几点了)

db.shutdownServer()

3、将当前节点以单机模式运行,只需修改下端口号和复制集名称即可

vim ./mongodb.conf

port=47030 #端口需要临时改成别的

#replSet=test#注释掉复制集名称

扫描二维码关注公众号,回复: 942720 查看本文章

mongd --config ./mongodb.conf  ##启动

4、临时将oplog中最后一条insert操作保存到其它集合

use local

var cursor=db.oplog.rs.find()

var cursor = db.oplog.rs.find({"op":"i"})

var lastInsert = cursor.sort({"$natural":-1}).limit(1).next()

db.tempLastOp.save(lastInsert)

db.tempLastOp.findOne() ##验证下确保插入了,非常重要

5、删除当前oplog

db.oplog.rs.drop()

6、创建一个新的oplog,下面是200Moplog(以字节表示)

db.createCollection("oplog.rs",{"capped":true,"size":209715200})

7、将最后一条操作记录写回oplog

var temp=db.tempLastOp.findOne()

db.oplog.rs.insert(temp)

db.oplog.rs.findOne() ##验证下确实插入成功,非常重要

8、恢复之前的mongdb的配置。改回之前的端口,和复制集的名称

9、重新启动,会自动进行同步

10、等一会后,可以调整之前的节点优先级使之成为主节点

 

 

附加:oplog调大即可,不用刻意调小。他不会占用过多的cpu和内存资源。

 

猜你喜欢

转载自blog.csdn.net/donghaixiaolongwang/article/details/79885024