新闻动态

  • 首页
  • 新闻动态
  • 将 Amazon DocumentDB 40 升级到 50,几乎无停机时间 数据库博客

将 Amazon DocumentDB 40 升级到 50,几乎无停机时间 数据库博客

2026-01-27 14:01:46

Amazon DocumentDB 40 升级到 50 的近零停机时间方案

作者:Anshu Vajpayee 和 Kunal Agarwal 发表于 2024年2月5日 高级(300) AmazonDocumentDB 技术如何做永久链接评论 分享

关键要点

Amazon DocumentDB 是一种快速、可扩展、高可用的完全托管文档数据库服务,支持 MongoDB 负载。更新至 Amazon DocumentDB 50 后,用户可以解锁多项增强功能,如向量搜索、文档压缩和更快的索引等。通过使用原地重大版本升级、卷克隆和 AWS 数据库迁移服务 (DMS),可以实现近零停机时间的升级。

Amazon DocumentDB兼容 MongoDB是一项快速、可扩展、具高度可用性且完全托管的文档数据库服务,支持 MongoDB 工作负载。您可以使用相同的 MongoDB 36、40 和 50 应用程序代码、驱动程序和工具,在 Amazon DocumentDB 上运行、管理和扩缩工作负载,而无需担心管理底层基础设施。作为文档数据库,Amazon DocumentDB 使得存储、查询和索引 JSON 数据变得简单。

随着 Amazon DocumentDB 50 版本的推出,您现在可以将 Amazon DocumentDB 集群从版本 36 或 40 升级到 50,以解锁 多个增强功能。Amazon DocumentDB 50 提供对向量搜索、文档压缩、I/O 优化存储、更快的索引构建状态、客户端侧的 FLE 等多项功能的支持。

在本文中,我们将探讨如何通过使用 原地重大版本升级、Amazon DocumentDB 卷克隆 和 AWS 数据库迁移服务AWS DMS进行几乎零停机时间的升级。

现有的升级选项

目前,Amazon DocumentDB 40 用户可以通过以下方法将其伟大版本升级至 Amazon DocumentDB 50:

升级方式描述mongodump 和 mongorestore使用 mongodump 和 mongorestore 命令行工具创建 Amazon DocumentDB 数据库的二进制备份,并将其恢复到新的 Amazon DocumentDB 50 集群。此方法在升级期间使 Amazon DocumentDB 集群下线,适合可以忍受停机的工作负载。AWS DMS使用 AWS DMS 从现有集群迁移数据至新的 Amazon DocumentDB 50 集群。AWS DMS 是一项托管服务,可以用来在支持的源和目标之间迁移现有数据。这种方式会产生额外的 DocumentDB I/O 收费和 AWS DMS 使用费用。详情请见 使用 AWS 数据库迁移服务升级 Amazon DocumentDB 集群。原地重大版本升级通过此功能,您可以在不迁移数据或更改终端节点的情况下对 Amazon DocumentDB 集群执行原地升级,但需要停机,停机的持续时间取决于集合、数据库、集合和索引的数量。详情请参阅 原地 MVU 文档。

解决方案概述

本文讨论了使用原地重大版本升级、卷克隆和AWS DMS 实现几乎零停机时间的混合升级方法。通过这种方法,您还可以将由于迁移整个集群数据而通常关联的 I/O 成本和升级时间降到最低。要按照本文进行操作,您需要执行以下步骤:

在 Amazon DocumentDB 集群上启用变更流。克隆 Amazon DocumentDB 集群。在克隆的集群上执行原地重大版本升级。使用 AWS DMS 从您的 Amazon DocumentDB 集群到克隆集群复制变更数据捕获 (CDC)。在复制完成后,将您的应用程序终端节点更改为克隆集群。执行升级后的清理。

前提条件

要继续,您必须对 AWS DMS、原地重大版本升级 和 卷克隆 有较高的理解。此解决方案将导致您账户中的 Amazon DocumentDB 变更流、AWS DMS 复制实例和其他资源的费用最小化。您可以使用 AWS 定价计算器 根据配置预估费用。

在将 Amazon DocumentDB 集群升级至更高版本时,请检查是否有任何已弃用的特性和操作符或使用方法的变化。在新版上运行应用程序,并确保行为和性能与以前的版本相同,除非应用程序有故意的修改。

请注意,切换终端节点仍会产生一些停机时间。我们强烈建议在生产环境上尝试之前,在较低环境中多次进行此方法的演练。

在您的 Amazon DocumentDB 集群上启用变更流

为了实现几乎零停机时间的对 Amazon DocumentDB 集群的重大版本升级,您必须在集群上启用 变更流。变更流提供了您 Amazon DocumentDB 集群中发生的更新事件的时间顺序序列。

您必须设置变更流日志保留期,以确保在 CDC 中没有遗漏的事务。变更流日志的默认保留时间为 3 小时;您可以将此持续时间配置为 1 小时到 7 天之间的任何值。我们建议将此参数配置为至少 24 小时。

以下 AWS 命令行接口 将保留期增加至 24 小时:

bashaws docdb modifydbclusterparametergroup dbclusterparametergroupname lt参数组名称gt parameters ParameterName=changestreamlogretentionduration ParameterValue=86400ApplyMethod=immediate

您也可以通过 Amazon DocumentDB 控制台 启用变更流。

要在所有数据库上启用变更流,连接到 Amazon DocumentDB 集群并使用以下命令启用变更流:

bashdbadminCommand({modifyChangeStreams 1database ”“enable true})

要确认变更流的创建,可以使用 listChangeStreams 聚合管道阶段列出集群中所有启用的变更流。更多信息,请查看 启用变更流。

克隆 Amazon DocumentDB 集群

通过 Amazon DocumentDB 克隆,您可以创建一个新的克隆集群,该集群使用相同的 Amazon DocumentDB 集群卷,并拥有与您的 Amazon DocumentDB 生产集群相同的数据。创建克隆比使用其他技术如还原快照物理复制数据更快且更节省空间。

将 Amazon DocumentDB 40 升级到 50,几乎无停机时间 数据库博客

要创建克隆 Amazon DocumentDB 生产集群,请完成以下步骤:

在 Amazon DocumentDB 控制台的导航窗格中,选择 集群。

选择您的 Amazon DocumentDB 生产集群,然后在 操作 菜单中选择 创建克隆。

在 集群标识符中,输入要给克隆 Amazon DocumentDB 集群的名称例如,cloneddocdbcluster。

为 实例配置、网络设置、静态加密、日志导出、端口和删除保护选择与您的 Amazon DocumentDB 集群相同的设置。有关 Amazon DocumentDB 集群和实例设置的更多信息,请参见 管理 Amazon DocumentDB 集群。

选择 创建克隆 以启动您所选 Amazon DocumentDB 集群的克隆。当克隆创建后,它会与您在 集群 页面上的其他 Amazon DocumentDB 集群一起列出,并显示其当前状态。当其状态为可用时,您的克隆即可使用。

在 集群 页面上,选择克隆集群,导航至 配置 选项卡,并记录集群的创建时间。

在克隆集群上执行原地重大版本升级

此步骤将克隆的 Amazon DocumentDB 40 集群升级到 50,而无需迁移数据或更改终端节点。您在克隆集群上执行原地重大版本升级不会产生额外费用。

在执行原地重大版本升级之前,请确保您完成所有先决条件步骤。有关更多信息,请参见 Amazon DocumentDB 原地重大版本升级。

通过按照 订阅 Amazon DocumentDB 事件订阅 的步骤来订阅克隆集群的维护事件。然后,完成以下步骤以升级集群:

在 Amazon DocumentDB 控制台的 集群 页面,选择克隆集群,然后在 操作 菜单中选择 修改。

在 集群标识符 中,输入您集群的名称。

在 引擎版本 中,选择 500。指定您的 VPC 安全组。在 集群选项 部分,选择适当的默认或自定义集群参数组,然后选择 继续。在 修改调度 部分,选择 立即应用。

选择 修改集群 以开始集群的原地升级。您集群的状态将更改为升级中。当升级完成后,您会收到 数据库集群重大版本已升级 事件,集群状态将更改回可用。您可以通过监控 事件 页面跟踪升级进度。

小熊加速器安卓版

在原地重大版本升级完成后,进行验证以确保您的升级克隆正常运行,所有数据和索引完好。

注意:请谨慎操作,确保不要在克隆集群上修改任何数据,因为这可能导致数据不一致。

使用 AWS DMS 从源集群向克隆集群复制 CDC

此步骤使您的克隆集群与 Amazon DocumentDB 源集群同步,通过复制创建克隆后所有的数据库更改。AWS DMS 复制实例通过连接并读取出 Amazon DocumentDB 生产集群的数据,并将其写入目标的克隆集群,从而执行 CDC。

创建 AWS DMS 复制实例

要创建复制实例,请完成以下步骤:

在 AWS DMS 控制台中,选择 创建复制实例。输入名称例如,docdb40todocdb50和可选描述。对于 实例类别,根据需要选择大小。对于 引擎版本,选择 351。对于 Amazon VPC,选择包含您的源和目标 Amazon DocumentDB 集群的 VPC。对于 分配存储,使用默认的 50 GiB。如果您有高写入吞吐量的工作负载,请增加此值以匹配工作负载。对于 多可用区 (MultiAZ),如需高可用性和故障转移支持请选择 是。对于 公共访问,启用此选项。选择 创建复制实例。

创建 AWS DMS 源和目标终端节点

要创建源终端节点,请完成以下步骤:

在 AWS DMS 控制台中,选择导航窗格中的 终端节点。选择 创建终端节点。对于 终端节点类型,选择 源。对于 终端节点标识符,输入一个容易记忆的名称,例如 docdb40source。对于 源引擎,选择 Amazon DocumentDB。对于 服务器名称,输入您的 Amazon DocumentDB 生产集群的 DNS 名称。对于 端口,输入您 Amazon DocumentDB 生产集群的端口号。对于 SSL 模式,选择 验证完整。对于 CA 证书,选择 添加新的 CA 证书 并完成以下步骤: 下载 新 CA 证书 以创建 TLS 连接包。对于 证书标识符,输入 globalbundlepem对于 导入证书文件,选择 选择文件 并导航到您下载的 pem 文件。选择并打开文件。选择 导入证书,然后在 选择证书 下拉菜单中选择 globalbundlepem。对于 用户名,输入您的源集群的主用户名。对于 密码,输入您的源集群的主密码。

对于 数据库名称,如果您希望从 Amazon DocumentDB 集群的所有数据库中复制 CDC,则保持为空。或者,您可以通过表映射指定选择的数据库。

测试您的终端节点连接,并验证连接是否正常。

选择 创建终端节点。

创建第二个终端节点,选择 目标 作为 终端节点类型,并提供克隆集群的详细信息。

创建 AWS DMS 迁移任务

AWS DMS 任务将复制实例与源和目标实例绑定。当您创建迁移任务时,您指定源终端节点、目标终端节点、复制实例和任何所需的迁移设置。AWS DMS 任务可以使用三种迁移类型创建:“迁移现有数据”、“迁移现有数据并复制持续变化”或“仅复制数据变化”。

由于您创建的目标集群使用