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

将副本集同步到分片集群

在此页面上

  • 开始之前
  • 步骤
  • 后续步骤
  • 限制
  • 了解详情

本页概述了使用 mongosync将数据从副本集同步到分分片集群的过程。

注意

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

  • 定义源副本集和目标分片集群。

  • 定义在两个集群中都具有权限的管理用户。

  • 下载并安装 mongosync.

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

1

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

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

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

按照集群架构的连接说明设置连接字符串格式并连接到集群中的 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非仲裁节点,并且必须从非仲裁节点进行同步。

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

后退

集群拓扑