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

将 Atlas Core 集群迁移到专用配置服务器

重要

在公共预览版期间,Atlas Infinite 集群目前不支持本页面描述的功能。有关公共预览版中支持的功能,请参阅 公共预览版可用性。

注意

如果您运行的是自管理部署,请参阅从嵌入式配置服务器过渡到专用配置服务器,了解如何使用transitionToDedicatedConfigServer数据库命令过渡配置服务器类型。

当分片集群使用嵌入式配置服务器(称为 配置分片)时,Atlas 或用户可以将集群过渡为使用 专用配置服务器。通过嵌入式配置服务器,配置分片可存储集群元数据和用户数据。使用专用配置服务器时,配置节点仅存储元数据。在某些条件下, Atlas会自动将集群从嵌入式配置服务器过渡到专用配置服务器。您也可以手动启动转换。

从嵌入式配置服务器是一项在线操作,需要将所有用户数据从配置分片移出。对于配置分片上有大量数据的集群,此进程可能需要数小时到数天。在开始过渡之前,请确认以下内容:

  • 您的目标分片有足够的空间。在迁移过程中,从配置分片接收数据的分片会发现 CPU、内存和 I/O 增加。过渡运行时, Atlas无法扩展集群层或修改存储,因为一次只能运行一个长时间运行的计划。如果接收分片接近容量,请在开始过渡之前对其扩展扩展。

  • 您的集群仅使用支持的功能。 MongoDB Search、MongoDB 向量搜索、未分片的时间序列集合以及配置分片上未分片的 Queryable Encryption 集合会阻止自动过渡。有关阻塞功能的完整列表,请参阅 限制和例外。

  • 删除 system.profile 然后再在早期MongoDB版本上进行过渡。 配置分片上的 system.profile集合可能会区块转换。如果已启用分析,请在开始过渡前删除 system.profile,或者升级到MongoDB 8.2.7 或更高版本。

  • 配置服务器上不得处于写入阻塞状态。如果配置服务器上处于 写入阻塞 状态,Atlas 将不允许转换到专用配置服务器。当写入阻塞处于活动状态时,Atlas 会在集群页面上显示一个横幅,指示转换被阻止。要继续,请 增加集群存储 或 启用存储自动伸缩 以清除写入阻塞状况,然后重试转换。

启用Atlas 托管配置服务器后, Atlas会自动管理嵌入式配置服务器和专用配置服务器之间的转换。下图显示了Atlas何时触发每次转换:

Atlas默认为所有 8.0 集群默认Atlas 托管的配置服务器。启用后, Atlas会根据分片计数自动在配置服务器类型之间转换集群:

  • 当分片计数增加到超过 10 时, Atlas会从嵌入式配置服务器转换为专用配置服务器。

  • 当分片计数减少到 10 个或更少时, Atlas从专用配置服务器转换为嵌入式配置服务器。

注意

当您将分片集群从 MongoDB 7.0 升级到 8.0 时,Atlas 会开启 Atlas 托管的配置服务器,但不会更改集群现有的配置服务器类型。从 MongoDB 8.0 开始,Atlas 托管的配置服务器默认开启,这些标准仅应用于分片数量的更改。要将集群迁移到嵌入式配置服务器,请联系 MongoDB 支持。

要手动 trigger 到专用配置服务器的转换,请完成以下步骤:

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. 在侧边栏中,单击 Database 标题下的 Clusters。

会显示集群页面。

2

单击集群名称旁边的 ,然后选择 Edit Configuration。展开 Additional Settings 面板,为集群配置其他设置。

3

关闭 Atlas-Managed Configuration Servers 开关。

在 Additional Settings > More Configuration Options 下,关闭 Atlas-Managed Configuration Servers 开关。

4

单击 Review Changes,然后单击 Apply Changes。Atlas立即开始转换为专用配置服务器。

MongoDB无法移动配置元元数据,因此Atlas必须首先清空配置分片config-0 中的所有用户数据,然后才能过渡到专用配置服务器。作为过渡的一部分, Atlas添加了一个替换分片以维持目标分片数量,因为 config-0 不再提供服务用户数据。

下表显示了当您将第 11 个分片添加到启用 Atlas 托管配置服务器的 10-分片集群时, Atlas执行的步骤,这将启动转换。

step
操作
有效分片数

开始

10 — 具有嵌入式配置服务器的分片集群(config-0 和 shard-0 到 shard-8)

10

1

Atlas添加 shard-9,使集群达到目标分片数量。集群现在有 11 个面向用户的分片:shard-0 到 shard-9 和 config-0,但仍存储用户数据。

11

2

Atlas运行transitionToDedicatedConfigServer,它会在内部于config-0上运行removeShard。分片集合使用数据块迁移通过负载均衡器引流到其他分片。未分片集合通过 moveCollection 移动。

11(正在进行清空)

3

Atlas等待orphanCleanupDelaySecs 过去,然后再确认 config-0 已清除。在运行早于 8.2.7 的MongoDB版本的集群上,Atlas会等待所有范围删除完成,这可能需要更长的时间。

11(正在进行清理)

4

config-0 converts to a dedicated config server. Atlas adds shard-10 to restore the target shard count. The 11 user-facing shards are now shard-0 through shard-10.

11

5

Atlas将 config-0 缩减为专用配置服务器的默认M30。

11

过渡持续时间取决于配置分分片上的用户数据量。排干配置分片涉及分片的集合的数据数据块迁移和未分片集合的 moveCollection 操作,这两种操作都会通过网络移动数据。持续时间因 datasets 大小而异:

  • 小型 datasets(几GB):几分钟到几小时不等

  • 大型 datasets(数百GB到数 TB):数小时到数天

注意

如果您的集群在 配置分片上有大量数据,请在流量低谷期执行过渡。

从嵌入式配置配置服务器会对集群的运行产生以下影响:

  • 无需停机。过渡是在线的。您的应用程序在整个过程中都会持续读取和写入。

  • 接收分片时的资源使用量增加。在迁移期间,从配置分片吸收数据的分片可能会遇到更高的 CPU、内存和 I/O。受影响分片上的应用程序延迟可能会略有增加。

  • Atlas plan 锁。过渡运行期间, Atlas无法在集群上执行其他长时间运行的计划,例如扩展集群层、更改存储或添加或删除其他分片。一次只能运行一个长时间运行的计划。

警告

请勿在过渡开始后取消过渡。

在过渡期间,请勿通过Atlas用户界面或减少分片计数来取消过渡。如需取消,联系MongoDB Support。

下图显示了可用于监控过渡进度的方法:

过渡期间, Atlas会在集群页面上显示以下横幅:

We are deploying your changes (current action: transitioning config server type).

Atlas不会自动为使用以下功能的集群过渡配置服务器。如果您的集群使用这些功能之一并需要更改配置服务器类型,联系MongoDB支持部门:

功能
自动转换
解决方案

MongoDB Search / 向量搜索

Atlas将配置服务器类型固定为启用搜索时的类型。该限制适用于分片的和非分片集合。

已阻止(固定)

联系MongoDB支持部门或实时迁移

未分片 Queryable Encryption

moveCollection 不支持Queryable 加密集合。

已阻止

Atlas 全球集群

不支持嵌入式配置服务器。

不适用

始终专注

副本集到分片集群的转换

当您在Atlas中将副本集转换为分片集群时,生成的集群始终使用专用配置服务器,而无论 Atlas-Managed Configuration Servers 设置如何。

不适用

以上皆无

允许

Proceeds online