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

关于MongoDB mongosync

mongosync 二进制文件是Cluster-to-Cluster Sync中使用的主节点 (primary node in the replica set)进程。mongosync 将数据从源集群迁移到目标集群。

mongosync 复制数据并从一个集群写入到另一个集群,直到完成 同步。您可以使用此工具在MongoDB集群之间执行一次性数据迁移,同时最短停机时间。

有关执行期间的 mongosync 和目标集群行为的更多信息,请参阅中间同步注意事项。

重要

在您对commit mongosynccanWrite调用 且 成功返回true 之前,目标集群上的已迁移集合不能用于接受应用程序读取或写入流量。请勿使用mongosync 维护灾难恢复集群。

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

注意

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

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

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

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

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

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

Frequently Asked Questions (FAQ)(常见问题解答 (FAQ))页面解答了用户提出的有关 mongosync 的问题。

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

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

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

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

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

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

RUNNING状态包括两个阶段:

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

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

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

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

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

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

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

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

注意

在开始提交进程之前,您必须区块对源集群的写入。

enableUserWriteBlocking"sourceAndDestination"如果您之前在使用起始端点时将 设立为mongosync ,则当您使用 端点时,commit 会自动阻止对源集群的写入。

如果您没有将enableUserWriteBlocking 设立为"sourceAndDestination" setUserWriteBlockMode,运行在源集群上运行 以区块写入。

commit 端点会启动 COMMITTING 状态,此时 mongosync 会停止在源集群与目标集群之间迁移数据。

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

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

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

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

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

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

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

后退

快速入门

在此页面上