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

连接两个 Atlas 集群

在此页面上

  • Considerations
  • 连接字符串(Connection Strings)
  • 身份验证
  • 角色
  • 行为
  • 例子

mongosync 实用程序在MongoDB集群之间创建连接。 mongosync 可以连接到以下任何集群:

  • 自管理集群

  • MongoDB Atlas托管集群

  • 自管理集群和Atlas托管集群

本页提供使用 MongoDB Cluster-to-Cluster Sync 连接 Atlas 集群的说明。 有关连接到 Atlas 集群的更多详细信息,请参阅连接到数据库部署

  • 源 Atlas 集群和目标 Atlas 集群都必须使用 MongoDB 6.0或更高版本。

  • mongosync 支持副本集和分片集群。

  • mongosync 支持Atlas共享集群或无服务器实例。 您只能将mongosync与 M 10或更多Atlas集群一起使用。

mongosync 使用MongoDB URI 连接string连接Atlas集群:

  • SRV 连接方案的形式为:

    mongodb+srv://[username:password]@[clusterName].[host].mongodb.net/

    有关如何在 中查找 SRV 连接string Atlas的信息,请参阅 连接到集群。

  • 标准 URI 连接方案的形式如下:

    mongodb://[username:password]@[clusterName].[host].mongodb.net/

mongosync 需要primary读取偏好才能连接到源集群和目标集群。 有关详细信息,请参阅读取偏好选项。

提供有效的身份验证以连接到MongoDB Atlas集群。 如果您还没有Atlas数据库用户,则必须创建一个用户。

mongosync连接字符串中指定的用户必须对源集群和目标集群具有所需的权限。 这些权限会有所不同,具体取决于您的环境以及您要运行写入阻塞还是反向同步。

Atlas 权限包括:

同步类型
所需的源权限
所需的目标权限

访问

  • atlasAdmin

  • atlasAdmin

写入阻塞、反转或多个反转

  • atlasAdmin

  • bypassWriteBlockMode 特权

  • atlasAdmin

  • bypassWriteBlockMode 特权

有关Atlas角色的详细信息,请参阅: Atlas user角色。

要更新Atlas user权限,请参阅:管理对项目的访问权限。

mongosync实用程序可以托管在靠近源集群或目标集群的自己的硬件上。 它不必与集群中的mongodmongos实例之一托管在同一服务器上。 这种灵活性允许您将数据推送或拉取到目标集群,同时对在那里运行的mongodmongos实例的影响最小。

mongosync连接时,它处于IDLE状态。 您必须发出启动命令才能开始同步。

在尝试使用 M10+ Atlas 集群运行 mongosync 之前,请禁用 Require Indexes for All Queries(需要所有查询的索引)选项。

通用连接字符串格式为:

mongodb://<user>:<password>@<clusterName>.<hostname>.mongodb.net/

您可以从string 用户界面获取Atlas 集群的连接Atlas 。要学习;了解详情,请参阅连接到数据库部署。

您为cluster0cluster1收集的连接字符串应如下所示:

cluster0:
mongodb+srv://clusterAdmin:superSecret@cluster1Name.abc123.mongodb.net
cluster1:
mongodb+srv://clusterAdmin:superSecret@cluster2Name.abc123.mongodb.net

包含集群的项目中有一个数据库管理用户clusterAdmin ,密码为superSecret

下面的mongosync命令布局已修改以进行显示。 要使用mongosynccluster0连接到cluster1 ,请在一行中输入以下命令:

mongosync \
--cluster0 "mongodb+srv://clusterAdmin:superSecret@cluster1Name.abc123.mongodb.net" \
--cluster1 "mongodb+srv://clusterAdmin:superSecret@cluster2Name.abc123.mongodb.net"

Atlas 集群需要 TLS 连接。如要将 Atlas 集群与 mongosync 搭配使用,需要添加 tls=true 选项。例如,要连接到 cluster0cluster1 上的admin 数据库:

mongosync \
--cluster0 "mongodb+srv://clusterAdmin:superSecret@cluster1Name.abc123.mongodb.net/admin?tls=true" \
--cluster1 "mongodb+srv://clusterAdmin:superSecret@cluster2Name.abc123.mongodb.net/admin?tls=true"

您还可以将mongodb+srv连接字符串与mongosync一起使用。 您无需将tls=true选项添加到 mongodb+srv 连接string中。 示例:

mongosync \
--cluster0 "mongodb+srv://clusterAdmin:superSecret@cluster1Name.abc123.mongodb.net/" \
--cluster1 "mongodb+srv://clusterAdmin:superSecret@cluster2Name.abc123.mongodb.net/"

有关mongodb+srv连接字符串的更多详细信息,请参阅SRV 连接格式。

后退

连接