mongosync 二进制文件是Cluster-to-Cluster Sync中使用的主节点 (primary node in the replica set)进程。mongosync 将数据从源集群迁移到目标集群,并使集群保持持续同步,直到您最终完成同步。
您可以使用mongosync创建反映生产环境的专用分析、开发或测试集群。
mongosync 通过state追踪其当前操作。 mongosync根据收到的请求进入不同状态。 当前的mongosync状态决定了您可以运行哪些API操作。
注意
要查看mongosync的当前状态,请使用/progress端点。
下图说明了mongosync状态和API操作之间的关系:
详情
连接源集群和目标集群
您必须先创建与源集群和目标集群的初始连接,然后mongosync才能开始同步数据。 有关更多信息,请参阅连接mongosync 。
当mongosync连接到源集群和目标集群时,同步进程进入IDLE状态。
开始同步
要启动同步进程,请调用启动端点。
start端点进入RUNNING状态,此时mongosync将数据从源集群同步到目标集群。 如果您对源集群进行后续写入, mongosync会将这些操作应用于目标集群。
对于每个同步的源集合, mongosync都会在目标上创建相应的集合。
mongosync 临时更改目标集群中的某些已复制集合特征。 它在COMMIT状态期间将这些目标集群特征更改回源集群特征。 有关更多信息,请参阅集合特征更改。
RUNNING状态包括两个阶段:
集合副本
在集合复制阶段, mongosync执行从源集群到目标集群的初始数据传输。 mongosync通过将源集合拆分为分区并将分区复制到相应的目标集合来执行此数据传输。
变更事件应用程序
变更事件应用程序(CEA) 阶段在集合复制阶段结束后开始。
在 CEA 阶段,当您对源集群进行更改时, mongosync会持续更新目标集群。
为了持续更新目标集群, mongosync在源集群上打开变更流,并将收到的变更事件应用于目标集群。
当 CEA 阶段开始时, mongosync会应用在集合复制阶段收到的变更事件,然后再处理在 CEA 阶段收到的事件。
暂停同步
要恢复暂停的同步进程并将mongosync返回到RUNNING状态,请调用恢复端点。
完成同步
要完成源集群和目标集群之间的同步,请调用提交端点。
commit端点会启动COMMITTING状态,此时mongosync会停止源集群与目标集群之间的连续同步。
当COMMITTING状态开始时, mongosync会检索提交时间戳,即对源集群进行最近一次操作的时间。
如果没有错误, mongosync会发送成功消息,并通过处理提交时间戳之前的事件来退出 CEA。 mongosync还会恢复mongosync在同步期间临时更改的集合特征。
上述进程完成后,mongosync 进入 COMMITTED 状态。COMMITTED 状态表示同步进程的切换已完成。
反向同步
要反转已提交同步操作的方向,请调用反向端点。
reverse端点进入REVERSING状态。 mongosync交换源集群和目标集群,并继续应用变更事件。
如果反向同步成功, mongosync将进入RUNNING状态。 同步从原始同步作业的相反方向继续进行。
了解详情
要学习;了解有关mongosync的详情,请参阅: