MongoDB更改oplog的大小

MongoDB更改oplog的大小,第1张

概述(一)oplog介绍 oplog是MongoDB数据库的 *** 作日志,记录了MongoDB数据库的所有写 *** 作,类似MySQL数据库的binlog日志。在MongoDB副本集中,oplog从主节点被复制到次

(一)oplog介绍
oplog是MongoDB数据库的 *** 作日志,记录了MongoDB数据库的所有写 *** 作,类似MysqL数据库的binlog日志。在MongoDB副本集中,oplog从主节点被复制到次级节点,通过次级节点对日志进行重做,实现次级节点与主节点数据一致。oplog日志保存在local.oplog.rs集合中。


(二)修改oplog的大小

oplog大小修改根据数据库版本,有2种不同的方法:

在MongoDB 3.4及更早的版本中,直接删除并重建local.oplog.rs集合来调整 *** 作日志的大小;在MongoDB 3.6及后续的版本中,使用replSetResizeOplog命令来调整 *** 作日志的大小;

从MongoDB 4.0开始,MongoDB禁止删除local.oplog.rs集合,所以只能用replSetResizeOplog来修改oplog的大小了。


这里演示在MongoDB 4.2版本上修改oplog的大小,先在次级节点上修改 *** 作日志的大小,最后在主机点上修改。

具体 *** 作步骤如下:
STEP1:连接到副本集成员

mongo --authenticationDatabase admin -u replica -p replica

STEP2:【可选】验证oplog的大小

rstest:PRIMARY> use localswitched to db localrstest:PRIMARY> db.oplog.rs.stats().maxSizeNumberLong(1970031616)

STEP3:修改副本集节点oplog的大小,oplog必须大于990MB,这里改为1000MB

rstest:PRIMARY> db.adminCommand({replSetResizeOplog:1,size:1000}) {     "ok" : 1,$clusterTime" : {         clusterTime" : Timestamp(1593527768,),1)">signature : {             hash" : BinData(0,1)">7fw3+0veB35tVTFl83c57kvM0OI=keyID" : NumberLong(6841443127941660675)         }     },1)">operationTime) }

STEP4:【可选】压缩oplog.rs以回收磁盘空间
减小oplog的大小不会回收已经分配的磁盘空间,必须压缩oplog.rs来回收磁盘空间。

use localdb.runcommand({compactoplog.rs"})

注意:当执行压缩时,副本集成员无法复制oplog条目,可能会导致主节点的 *** 作日志被覆盖,刺激节点无法同步数据而产生重新完全同步,建议在无业务的时间段内执行压缩 *** 作。


【完】

总结

以上是内存溢出为你收集整理的MongoDB更改oplog的大小全部内容,希望文章能够帮你解决MongoDB更改oplog的大小所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1152001.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存