MongoDB更改Oplog大尺寸小

  

MongoDB的副本集同步中Oplog占了非常关键的作用。

<人力资源/>
Oplog大小可不可以随意更改?

https://docs.mongodb.com/manual/reference/configuration-options/replication.oplogSizeMB
官方配置文档说明

 replication.oplogSizeMB
  类型:整数
  
  的最大大小复制操作日志(即以兆字节为单位。oplog)。
  在MongoDB 4.0开始,过去oplog可以长其配置的大小限制,以避免删除大多数提交点。
  默认情况下,mongod过程创建一个基于oplog> <李> 

以单节点模式重启节点

在主节点上可以使用<代码> rs.stepDown() 指令来强制手动切换为二级节点。

<李>

并保留就的oplog的条目作为查询条件,清空oplog。rs集合并重新建立指定大小的oplog。rs集合。

<李>

以副本集模式启动mongod实例。

<人力资源/>

<>以前比;db.shutdownServer ()

在其他端口上以单节点模式(不包含——replSet参数)重新启动<代码> mongod 实例。命令如下:

 # sudo - u mongod mongod——端口37017 dbpath/var/lib/mongo 


我们可以选择备份现有结点的oplog来以防万一,命令如下:

 mongodump——端口37017 db当地——“oplog集合。rs”


保存oplog中最新的条目,例如,连接进入<代码> mongo Shell> <>以前比;使用本地

在<代码> mongo Shell代码窗口中,我们也可以使用如下命令来设置<代码> db :

<>以前比;db=db.getSiblingDB(当地)

确保<代码>本地。临时>

比;db.temp.drop () 

使用自然秩序排序来找到oplog中最后一条数据,并通过<代码> db.collection.save() 命令插入<代码>本地。临时>

比;db.temp.save (db.oplog.rs。找到({},{ts: 1、h: 1})。排序({$自然:1}).limit (1) . next()方法)

检验<代码>本地。临时>

比;db.temp.find () 


通过如下命令在当地<代码> 代码库中删除老的<代码> oplog。rs> <>以前比;db=db.getSiblingDB(当地)   比;db.oplog.rs.drop ()

结果会返回真正<代码>


通过<代码>创建代码> 20 * 1024 * 1024 * 1024> <>以前比;db.runCommand({创建:“oplog。rs”,限制:真的,大小:(20 * 1024 * 1024 * 1024)})

命令执行成功后会返回如下内容:

 {" ok ": 1} 

<>以前比;db.oplog.rs。保存(db.temp.findOne ())

通过如下命令来确认:

<>以前比;db.oplog.rs.find ()

<>以前比;db=db.getSiblingDB(管理)   比;db.shutdownServer ()   #服务mongod重启

该复制集将会恢复并会在其成为主节点之前“迎头赶上”数据。


MongoDB更改Oplog大尺寸小