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

命名空间重映射

在此页面上

  • 语法
  • 参数字段
  • 行为
  • 有效命名空间重新映射
  • 步骤
  • 连接源集群和目标集群
  • 通过命名空间重新映射同步集群
  • 了解详情

重要

Cluster-to-Cluster Sync beta计划

此功能仅在 mongosync beta中可用。 要学习;了解更多信息,请参阅 Cluster-to-Cluster Sync beta计划。

mongosync beta 1.8开始,您可以在同步期间重新映射数据库名称。 这样就可以将源集群上一个数据库中的数据迁移到目标集群上的另一个数据库中。

要使用命名空间重新映射,源集群和目标集群都必须使用受支持的MongoDB版本。

/start API端点接受可选的namespaceRemap参数,语法如下:

curl <host>:<port>/api/v1/start -XPOST \
--data '
{
"source": "cluster0",
"destination": "cluster1"
"namespaceRemap": [
{
"from": {
"database": "<source-database>"
},
"to": {
"database": "<destination-database>"
}
}
]
} '
字段
类型
必需
说明
namespaceRemap
阵列
Optional

指定在同步期间进行的命名空间更改的文档数组。

1.8 版本中的新增功能:beta

namespaceRemap[n]. from
文档
必需

用于指定在重新映射操作中从中迁移的源集群上的数据库的文档。

1.8 版本中的新增功能:beta

namespaceRemap[n]. from.database
字符串
必需

源集群上要迁移的数据库。

1.8 版本中的新增功能:beta

namespaceRemap[n]. to
文档
必需

用于指定在重映射操作中要迁移到的目标集群上的数据库的文档。

1.8 版本中的新增功能:beta

namespaceRemap[n]. to.database
字符串
必需

目标集群上要迁移到的数据库。

1.8 版本中的新增功能:beta

以下限制应用于命名空间重新映射:

  • 命名空间重映射不允许写入systemconfigadminlocal数据库,也不允许写入mongosync使用的内部数据库。

  • 目标集群上的数据库名称必须在Windows限制下有效。

    有关详细信息,请参阅 Windows数据库名称限制。

  • 目标集群上重新映射的数据库名称不能只有大小写不同。

  • 您无法在指定命名空间重映射的同时设立reversible标志设置为true

  • 重映射不会在目标集群上产生命名空间冲突。

    例如:

    "namespaceRemap": [
    {
    "from": { "database": "us-west" },
    "to": {"database": "us-accounts" }
    },
    {
    "from": { "database": "us-south" },
    "to": { "database": "us-accounts" }
    }
    ]

    如果源集群上的每个数据库都包含texas集合,则mongosync可能会失败、损坏数据或表现出意外行为。

1

以下示例将源集群( cluster0 ) 与目标集群( cluster1 ) 连接:

mongosync \
--cluster0 "mongodb://localhost:27000" \
--cluster1 "mongodb://localhost:35000"
2

以下/start调用会启动同步,并将源集群上的accounts数据库重新映射到目标集群上的sales数据库:

curl -X POST "http://localhost:27182/api/v1/start" --data '
{
"source": "cluster0",
"destination": "cluster1",
"namespaceRemap": [
{
"from": {
"database": "accounts",
},
"to": {
"database": "sales",
}
}
]
} '

响应示例:

{"success":true}

后退

预先存在的数据处理