对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

将副本集同步到分片集群

本页介绍了使用 mongosync 将数据从副本集同步到分片集群的步骤。

注意

mongosync 不支持从分分片集群同步到副本集。

要学习;了解更多信息,请参阅mongosync设置说明。

1

mongosync 必须先在源副本集和目标分片集群之间创建初始连接,然后才能开始同步数据。

要使用mongosync将cluster0连接到cluster1 ,请输入以下命令:

mongosync \ --cluster0 "<cluster0_connection_string>" \ --cluster1 "<cluster1_connection_string>"

请按照您的集群架构(Atlas 到 Atlas、自管理到自管理或自管理到 Atlas)的连接说明来格式您的连接字符串,并连接到集群中的 mongos 实例。

2

调用起始端点以发起数据同步。

要从副本集同步到分分片集群,请将start命令的sharding选项设立为目标分片上的集群分片。 有关更多信息,请参阅分片参数。

使用sharding.shardingEntries参数指定要分片的分片。 未在此大量中列出的集合将复制为未分片。 有关更多信息,请参阅分片副本集和选择分片键。

以下示例启动从副本集到分分片集群的同步:

curl localhost:27182/api/v1/start -XPOST \--data ' { "source": "cluster0", "destination": "cluster1", "sharding": { "createSupportingIndexes": true, "shardingEntries": [ { "database": "accounts", "collection": "us_east", "shardCollection": { "key": [ { "location": 1 }, { "region": 1 } ] } } ] } } '
{"success":true}

您可以使用mongosync切换进程最终完成迁移并将应用程序工作负载从源转移到目标集群。

  • 不能在副本集和分片集群之间使用反向端点。
  • mongosync 允许用户重命名同步期间sharding.shardingEntries选项包含的集合,但有一些限制。 有关详细信息,请参阅在同步期间重命名。

  • 如果使用sharding.createSupportingIndexes选项,则在同步期间会在目标集群上自动创建索引。 此后无法在源集群上创建这些索引。

  • 如果要手动创建索引以支持分分片键,则必须在mongosync启动之前或迁移完成且mongosync停止之后创建索引。

  • 如果源副本集具有仲裁节点,则源副本集必须具有超过2非仲裁节点,并且必须从非仲裁节点进行同步。

有关更多详细信息,请参阅 mongosync 迁移限制。