Docs 菜单
Docs 主页
/
MongoDB Cluster-to-Cluster Sync
/

oplog 大小调整

mongosync程序使用变更流在源集群和目标集群之间同步数据。 mongosync不直接访问权限oplog ,但当变更流返回过去的事件时,这些事件必须在oplog时间范围。

mongosync集合复制 阶段之后,将源集群上 oplog 中的操作应用于目标集群上的数据。当 mongosync 未应用的操作滚动源集群上的 oplog 时,同步将失败并且 mongosync 退出。

注意

mongosync 不会将同步期间在源集群上进行的applyOps操作复制到目标集群。

如果您预计同步大型数据集,或者计划长时间暂停同步,则可能会超过oplog window 。 使用oplogSizeMB设置增加源集群上oplog的大小。

目标集群必须有足够的磁盘存储,以容纳正在迁移的逻辑数据大小以及初始同步中的目标oplog条目。 示例,要迁移10 GB的数据,目标集群必须至少有 10 GB用于数据,另外 10 GB用于初始同步中的插入oplog条目。

要使用嵌入式验证,目标上必须有更大的oplog 。如果启用嵌入式验证程序并减小目标oplog的大小,则嵌入式验证程序可能无法跟上,从而导致 mongosync 出错。

如果需要减少目标oplog条目的开销并且嵌入式验证程序已禁用,则可以:

  • 使用oplogSizeMB 设置来减小目标集群的oplog大小。

  • 用于oplogMinRetentionHours 设置来降低或删除目标集群的最短oplog保留期。

1

要获取oplog运行db.getReplicationInfo()中第一个条目和最后一个条目之间的秒数差异。 如果要复制分片集群,请在每个分片上运行该命令。

db.getReplicationInfo().timeDiff

返回的值是集群的最小oplog窗口。 如果有多个分片,则最小的数字是最小oplog窗口。

2

要获取lagTimeSeconds值,请运行/progress命令。 延迟时间是指mongosync应用的最后一个事件与源集群上的当前最新事件的时间之间的时间(以秒为单位)。

它用于衡量落后于源集群mongosync的程度。

3

如果延迟时间接近最小oplog窗口,请进行以下更改之一:

注意

同步期间,复制延迟的oplog窗口和变化率可能会发生变化。 在迁移过程中重复这些步骤以监控进度。

后退

使用 Workload Identity Federation 进行身份验证

在此页面上