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

关于MongoDB mongosync

在此页面上

  • 详情
  • 连接源集群和目标集群
  • 开始同步
  • 暂停同步
  • 完成同步
  • 反向同步
  • 了解详情

mongosync二进制文件是Cluster-to-Cluster Sync中使用的主节点 (primary node in the replica set)进程。 mongosync将数据从源集群迁移到目标集群,并使集群保持持续同步,直到您完成同步。

您可以使用mongosync创建反映生产环境的专用分析、开发或测试集群。

mongosync 通过state追踪其当前操作。 mongosync根据收到的请求进入不同状态。 当前的mongosync状态决定了您可以运行哪些API操作。

注意

大多数状态转换都是由于API调用而发生的。 例外情况是:

  • COMMITTINGCOMMITTED的转换。 有关更多信息,请参阅完成同步。

  • REVERSINGRUNNING的转换。 有关更多信息,请参阅反向同步。

要查看mongosync的当前状态,请使用/progress端点。

下图说明了mongosync状态和API操作之间的关系:

“mongosync”状态和API操作之间的关系图
点击放大

您必须先创建与源集群和目标集群的初始连接,然后mongosync才能开始同步数据。 有关更多信息,请参阅连接mongosync

mongosync连接到源集群和目标集群时,同步进程进入IDLE状态。

要启动同步进程,请调用启动端点。

start端点进入RUNNING状态,此时mongosync将数据从源集群同步到目标集群。 如果您对源集群进行后续写入, mongosync会将这些操作应用于目标集群。

对于每个同步的源集合, mongosync都会在目标上创建相应的集合。

mongosync 临时更改目标集群中的某些已复制集合特征。 它在COMMIT状态期间将这些目标集群特征更改回源集群特征。 有关更多信息,请参阅集合特征更改。

RUNNING状态包括两个阶段:

在集合复制阶段, mongosync执行从源集群到目标集群的初始数据传输。 mongosync通过将源集合拆分为分区并将分区复制到相应的目标集合来执行此数据传输。

变更事件应用程序(CEA) 阶段在集合复制阶段结束后开始。

在 CEA 阶段,当您对源集群进行更改时, mongosync会持续更新目标集群。

为了持续更新目标集群, mongosync在源集群上打开变更流,并将收到的变更事件应用于目标集群。

当 CEA 阶段开始时, mongosync会应用在集合复制阶段收到的变更事件,然后再处理在 CEA 阶段收到的事件。

要暂停同步进程并进入PAUSED状态,请调用暂停端点。

要恢复暂停的同步进程并将mongosync返回到RUNNING状态,请调用恢复端点。

要完成源集群和目标集群之间的同步,请调用提交端点。

commit端点会启动COMMITTING状态,此时mongosync会停止源集群与目标集群之间的连续同步。

COMMITTING状态开始时, mongosync会检索提交时间戳,即对源集群进行最近一次操作的时间。

如果没有错误, mongosync会发送成功消息,并通过处理提交时间戳之前的事件来退出 CEA。 mongosync还会恢复mongosync在同步期间临时更改的集合特征。

上述进程完成后, mongosync进入COMMITTED状态。 COMMITTED状态表示切换进程已完成。

要反转已提交同步操作的方向,请调用反向端点。

reverse端点进入REVERSING状态。 mongosync交换源集群和目标集群,并继续应用变更事件。

如果反向同步成功, mongosync将进入RUNNING状态。 同步从原始同步作业的相反方向继续进行。

要学习;了解有关mongosync的详情,请参阅:

后退

快速入门