MongoDB复制集调整oplog大小

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

 

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

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

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

db.shutdownServer()

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

vim ./mongodb.conf

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

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

 

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和内存资源。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值