将副本集同步到分片集群
本页概述了使用 mongosync
将数据从副本集同步到分分片集群的过程。
注意
mongosync
不支持从分分片集群同步到副本集。
开始之前
要学习;了解更多信息,请参阅mongosync设置说明。
步骤
1
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非仲裁节点,并且必须从非仲裁节点进行同步。
有关更多详细信息,请参阅限制。