View a markdown version of this page

维护 Amazon DocumentDB - Amazon DocumentDB

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

维护 Amazon DocumentDB

亚马逊 DocumentDB 定期执行两种维护:

  • 集群维护会更新数据库引擎。引擎更新包含安全修复、错误修复、新功能和其他引擎增强功能。

  • 实例维护会更新实例上的操作系统 (OS)。

引擎补丁和操作系统更新使用相同的三个生命周期类别(可选必需制),每个类别的通知和应用行为都相同。引擎版本还有第四类:次要版本,您可以手动升级到次要版本。这些类别是:

  • 可选-包含非关键改进。没有自动申请日期,也没有 AHD 通知;在适合你的时候申请。(对于操作系统更新,您可以订阅RDS-EVENT-0230以便在操作系统更新可用时收到通知。)

  • 必填项-包含安全修复和其他重要补丁。您会通过 Health Dashboard (AHD) 和电子邮件收到通知。在集群或实例维护窗口之后,必需的操作会自动生效。AutoAppliedAfterDate您可以通过在该日期之前更改维护时段来推迟。

  • 强制 — 一种罕见的、高度关键的修复方法。 Auto-applies 之后在维护窗口之外ForcedApplyDate。只有在没有其他选项可用时,Amazon DocumentDB 才会指定强制执行的操作。

  • 次要版本(仅限引擎版本)— 主版本之上的带编号的引擎版本(例如5.0.1)。 User-driven:您可以通过修改集群的引擎版本进行升级。永远不要自动应用;没有 AHD 通知。5.0 之前的主要版本不发布次要版本。

引擎补丁按单一类别(可选、必需或强制)发布,并保持不变。操作系统更新进度:大多数操作系统以可选形式启动,如果未应用,则过渡到必需并最终强制更新。确切的时间取决于补丁,并发布在 AHD 通知和返回的日期字段中describe-pending-maintenance-actions(参见应用日期)。亚马逊 DocumentDB 发行说明在宣布引擎变更时使用这些类别名称。

应用任何引擎补丁都会使集群短暂脱机。本主题的其余部分将介绍维护窗口的工作原理、如何查找待处理的工作、如何应用引擎补丁和次要版本、操作系统更新的工作原理以及全局集群的特殊处理。

引擎版本号

亚马逊 DocumentDB 使用两个不同的版本标识符:

  • 引擎版本-表格中由三部分组成的数字major.major.minor(例如,5.0.05.0.1)。前两部分 (5.0) 是 MongoDB 兼容版本;第三部分是次要版本,当 Amazon DocumentDB 发布包含错误修复和不间断改进的次要版本时,次要版本会增加。这是您在创建或升级集群时指定的版本。

  • 引擎补丁版本 — 一个由三部分组成的单独数字major.0.patch(例如3.0.17983),用于标识应用于集群的补丁级别。中间的数字始终是0。补丁版本包含重要的安全性和稳定性修复程序。

您可以根据引擎补丁版本的前缀确定引擎版本,如下表所示。

引擎补丁版本前缀 亚马逊 DocumentDB 引擎版本
1.0.x 3.6
2.0.x 4.0
3.0.x 5.0
4.0.x 8.0

要检查您的集群正在运行的补丁版本,请连接并运行db.runCommand({getEngineVersion: 1})

有关已发布的引擎补丁版本列表以及每个版本包含的内容,请参阅发布说明

管理您的 Amazon DocumentDB 维护窗口

每个集群和每个实例都有自己的每周 30 分钟维护窗口,即定期修改和软件补丁运行的时段。大多数活动会在 30 分钟内完成;规模较大的活动可能会持续更长时间。

如果您在创建资源时没有选择窗口,Amazon DocumentDB 会在为该地区定义的每日 8 小时区块内,在随机选择的某一天随机分配一个窗口。选择能最大限度地减少对应用程序影响的窗口,例如晚间或周末。

对于数据库引擎升级,Amazon DocumentDB 使用集群的窗口,而不是单个实例的窗口。

下表显示了每个区域的默认时段。

区域名称 Region UTC 时间数据块
美国东部(俄亥俄州) us-east-2 03:00-11:00
美国东部(弗吉尼亚州北部) us-east-1 03:00-11:00
美国西部(俄勒冈州) us-west-2 06:00-14:00
非洲(开普敦) af-south-1 03:00–11:00
亚太地区(香港) ap-east-1 06:00-14:00
亚太地区(海得拉巴) ap-south-2 06:30–14:30
亚太地区(马来西亚) ap-southeast-5 13:00-21:00
亚太地区(孟买) ap-south-1 06:00-14:00
亚太地区(大阪) ap-northeast-3 12:00-20:00
亚太地区(首尔) ap-northeast-2 13:00-21:00
亚太地区(新加坡) ap-southeast-1 14:00-22:00
亚太地区(悉尼) ap-southeast-2 12:00-20:00
亚太地区(雅加达) ap-southeast-3 08:00-16:00
亚太地区(墨尔本) ap-southeast-4 11:00-19:00
亚太地区(泰国) ap-southeast-7 15:00-23:00
亚太地区(东京) ap-northeast-1 13:00-21:00
加拿大(中部) ca-central-1 03:00-11:00
加拿大西部(卡尔加里) ca-west-1 18:00-02:00
中国(北京) cn-north-1 06:00-14:00
中国(宁夏) cn-northwest-1 06:00-14:00
欧洲地区(法兰克福) eu-central-1 21:00-05:00
欧洲(苏黎世) eu-central-2 02:00-10:00
欧洲地区(爱尔兰) eu-west-1 22:00-06:00
欧洲(伦敦) eu-west-2 22:00-06:00
欧洲地区(米兰) eu-south-1 02:00-10:00
欧洲地区(巴黎) eu-west-3 23:59-07:29
欧洲(西班牙) eu-south-2 02:00–10:00
欧洲地区(斯德哥尔摩) eu-north-1 04:00 — 12:00
墨西哥(中部) mx-central-1 03:00-11:00
中东(阿联酋): me-central-1 05:00–13:00
南美洲(圣保罗) sa-east-1 00:00-08:00
以色列(特拉维夫) il-central-1 04:00-12:00
AWS GovCloud (US-East) us-gov-east-1 17:00-01:00
AWS GovCloud (US-West) us-gov-west-1 06:00-14:00

更改您的 Amazon DocumentDB 维护窗口

尽你所能选择最低流量窗口,并随着交通模式的变化而随着时间的推移进行调整。只有当系统更改(例如扩展存储操作或实例类别更改)需要中断时,集群或实例才会在窗口期间不可用,并且只能在变更实际需要的时间内持续下去。

更改维护时段

Amazon DocumentDB 引擎补丁通知

所需的引擎补丁在某个 AWS 地区可用时,在该地区拥有受影响的 Amazon DocumentDB 集群的每个 AWS 账户都会通过 Health Dashboard (AHD) 和电子邮件(发送到该 AWS 账户的根用户地址)收到通知。每个受影响的 Amazon DocumentDB 引擎版本都会发送一条通知。您可以在 AHD 的 “预定更改” 下找到它们。每份通知都列出了补丁可用时间、自动应用时间表、受影响的集群和发布说明。

Amazon DocumentDB 控制台显示引擎补丁升级的“计划更改”选项卡。

通知会在自动申请窗口打开前大约两天发出。例如,周一 00:00 UTC 发布的必需补丁有资格在周三 00:00 UTC 自动应用。如果您的集群的维护时段是星期三 12:00 UTC,则补丁将在该星期三自动应用,也就是自动应用窗口打开大约 12 小时后。如果您的维护时段是星期二 12:00 UTC,则补丁会等待整整一周才能自动应用。

收到通知后,您有两种选择:在自动应用日期之前自行应用补丁,或者在即将到来的维护时段内等待补丁自动应用(默认)。要自行申请,请打开集群的 “维护和备份” 选项卡并查找类型的system-update条目。

注意

在 Amazon DocumentDB 发布另一个包含新补丁版本的引擎补丁之前,通知在 AHD 中的状态一直保持不变。

应用补丁后,集群的引擎补丁版本会更新以匹配通知中的版本。通过运行来验证新版本db.runCommand({getEngineVersion: 1})

可选补丁和新的次要版本不会生成 AHD 或电子邮件通知。要追踪它们,请查看亚马逊 DocumentDB 发行说明。

强制补丁(最稀有的类别,保留用于最关键的安全修复)也通过AHD和电子邮件公布。与必需的补丁不同,它们在维护时段之外适用,因此上面的自动应用计时示例不适用。

以编程方式对补丁通知做出反应

AWS Health 与 Amazon 集成 EventBridge,允许您跨超过 20 个目标构建事件驱动的应用程序,包括 AWS Lambda 亚马逊简单队列服务 (SQS) Simple Queue Service。要以编程方式响应引擎补丁的可用性,请 EventBridge 针对事件进行配置。AWS_DOCDB_DB_PATCH_UPGRADE_MAINTENANCE_SCHEDULED从那里你可以捕获事件数据、引发其他事件、通过发送推送通知或采取任何其他你需要的操作。 AWS Console Mobile Application

如果 Amazon DocumentDB 取消补丁(罕见),您将收到 AHD 通知和一封关于取消补丁的电子邮件。使用 Amazon AWS_DOCDB_DB_PATCH_UPGRADE_MAINTENANCE_CANCELLED 的事件代码 EventBridge 来处理此案例。有关编写规则的更多信息,请参阅 Amazon EventBridge 用户指南

查看待处理的 Amazon DocumentDB 维护操作

使用 AWS 管理控制台 或查看 AWS CLI 集群或实例的待维护情况。

待定更新显示为操作类型system-update,包括引擎补丁和操作系统更新。

当更新处于待定状态时,您可以:

  • 立即涂抹。

  • 将其安排在下一个维护时段。

  • 通过更改维护时段来推迟(仅限引擎补丁和操作系统更新)AutoAppliedAfterDate。该日期过后,该操作将在下一个维护时段内自动生效。一旦ForcedApplyDate通过,就不可能再延期。

注意

如果您不采取任何行动,则在即将到来的维护时段内会自动应用所需的维护操作,例如所需的引擎补丁。可选补丁和次要版本永远不会自动应用。

维护窗口控制待处理的操作何时开始,而不是它们需要多长时间才能完成。

Using the AWS 管理控制台
  1. 登录并打开 Amazon DocumentDB 控制台,网址为。 AWS 管理控制台https://console.aws.amazon.com/docdb

  2. 在导航窗格中,选择集群

  3. 当更新处于待定状态时,集群的 “维护” 列会显示 “可用”、“必需” 或 “下一个窗口”

    显示集群维护列的 Amazon DocumentDB 控制台。
  4. 打开群集,然后选择 “维护和备份” 以查看待定维护项目并对其进行操作。

    显示集群维护窗口的 Amazon DocumentDB 控制台。
Using the AWS CLI

describe-pending-maintenance-actions去看看还有什么待处理的。以下示例显示了一个没有待处理操作的账户。

aws docdb describe-pending-maintenance-actions

此操作的输出将类似于下文(JSON 格式)。

{ "PendingMaintenanceActions": [] }

有待处理操作的账户会返回如下所示的输出:

{ "PendingMaintenanceActions": [ { "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster", "PendingMaintenanceActionDetails": [ { "Action": "system-update", "Description": "db-version-upgrade", "CurrentApplyDate": "2026-05-15T03:01:00Z", "AutoAppliedAfterDate": "2026-05-15T03:01:00Z" } ] } ] }

您可以在表单中使用--filters将列表范围限定到特定的集群Name=filter-name,Values=resource-id,...。接受的筛选条件Namedb-cluster-id,它采用集群标识符或 ARN 的列表。

对于 Linux、macOS 或 Unix:

aws docdb describe-pending-maintenance-actions \ --filters Name=db-cluster-id,Values=sample-cluster1,sample-cluster2

对于 Windows:

aws docdb describe-pending-maintenance-actions ^ --filters Name=db-cluster-id,Values=sample-cluster1,sample-cluster2

应用日期

每个待处理的维护操作最多有三个申请日期。它们出现在的 AWS CLI 输出中,describe-pending-maintenance-actions并指示操作何时运行。字段null用于可选维护。

  • CurrentApplyDate— 当操作计划运行时,无论是现在还是下一个维护时段。为必需操作和强制操作填充。

  • AutoAppliedAfterDate— 在集群或实例维护时段内开始自动应用的日期。已填充以执行所需的操作。

  • ForcedApplyDate— 艰难的最后期限。在此日期之后,无论您的维护时段如何,操作都会自动运行。已填充以进行强制操作。

要推迟待处理的操作,请将维护时段移至前一天晚些时候AutoAppliedAfterDateAutoAppliedAfterDate通过后,该操作将在下一个维护时段内自动生效。一旦ForcedApplyDate通过,就不可能再延期。确切的延期窗口因补丁而异;日期发布在AHD通知和输出中 AWS CLI 。

Amazon DocumentDB 引擎更新

确定待处理的引擎补丁后,请使用以下过程之一来应用或安排修补程序。您可以从 AWS 管理控制台 或运行这些过程 AWS CLI。

Using the AWS 管理控制台
管理集群的更新
  1. 登录并打开 Amazon DocumentDB 控制台,网址为。 AWS 管理控制台https://console.aws.amazon.com/docdb

  2. 在导航窗格中,选择集群

  3. 选择要更新的集群。

  4. 从 “操作” 菜单中,选择以下任一选项:

    • 立即升级-立即运行待处理的维护。

    • 在下一个窗口升级-在集群的下一个维护窗口中运行它。

    您也可以使用集群 “维护和备份” 选项卡的 “待定维护” 部分中的 “立即申请” 或 “在下一个维护时段申请”(请参阅查看待处理的 Amazon DocumentDB 维护操作)。

    注意

    如果没有待处理的项目,则所有这些选项都处于非活动状态。

Using the AWS CLI

使用应用待处理的更新apply-pending-maintenance-action

参数
  • --resource-identifier— 待处理操作目标资源的亚马逊 DocumentDB 亚马逊资源名称 (ARN)。

  • --apply-action— 待执行的维护操作。有效值:system-updatedb-upgrade

  • --opt-in-type— 选择加入请求的类型,或者是否撤消一个请求。有效值:

    • immediate—立即申请。提交后无法撤消。

    • next-maintenance—在资源的下一个维护时段内应用。

    • undo-opt-in—取消现有的next-maintenance选择加入。

对于 Linux、macOS 或 Unix:

aws docdb apply-pending-maintenance-action \ --resource-identifier arn:aws:rds:us-east-1:123456789012:db:sample-cluster-instance-1 \ --apply-action system-update \ --opt-in-type immediate

对于 Windows:

aws docdb apply-pending-maintenance-action ^ --resource-identifier arn:aws:rds:us-east-1:123456789012:db:sample-cluster-instance-1 ^ --apply-action system-update ^ --opt-in-type immediate

在修补期间读取可用性

当集群有多个实例时,Amazon DocumentDB 引擎 5.0 和 8.0 在修补期间保留读取可用性。Amazon DocumentDB 以滚动方式修补阅读器实例,分为三组,因此其余的读取器可以继续提供流量。写入器在修补时短暂不可用。要实现零读取停机时间,请设置读取首选项,以便读取可以回退到写入器:secondaryPreferredprimaryPreferred工作;primary或者secondary单独读取可能会导致读取停机。

阅读偏好模式 在写入器升级期间 在读卡器升级期间 读取停机时间为零所需的读取器数量最少
primary Read/write 停机时间 无影响 N/A
primaryPreferred 写入停机时间 无影响 1
secondary 写入停机时间 读取停机时间(如果只有一个读取器) 2
secondaryPreferred 写入停机时间 无影响 1
nearest 写入停机时间 无影响 1

当读取器修补时,集群的整体读取吞吐量会暂时下降。要保持吞吐量稳定,请在升级之前配置其他读取器,并在升级完成后将其删除。

在引擎 3.6 和 4.0 上,这些读取可用性功能不适用:引擎补丁会导致更长的停机时间,从而影响读取和写入。要升级到支持的主要版本,请参阅Amazon DocumentDB 主版本就地升级

补丁停机时间

Engine-patch 停机时间各不相同。最大的因素是修补时实例的 CPU 利用率和内存压力,因此正确调整实例大小很重要。为了最大限度地减少停机时间,请运行最新的 Amazon DocumentDB 主引擎版本,并将实例分布到多个可用区。

补丁更新和替换

Amazon DocumentDB 会在补丁发布后进行监控。在发现问题的极少数情况下,Amazon DocumentDB 会在准备更新版本时暂停部署。发生这种情况时,尚未收到补丁的集群将不再将其视为可用的维护操作,并且中相应的计划变更通知将被撤回。 Health Dashboard 已经运行受影响版本的集群可以继续正常运行,无需您采取任何操作。

不久将发布更新的补丁。当它在您所在的地区推出时,您会通过 Health Dashboard 和电子邮件收到新的通知,如中所述Amazon DocumentDB 引擎补丁通知

次要版本升级

Amazon DocumentDB 在主版本 5.0 及更高版本的基础上发布次要版本(例如,5.0.1)。5.0 之前的主要版本不发布次要版本。次要版本的行为与必需和可选的引擎补丁不同:

  • 它们不会显示为待处理的维护操作,也不会自动应用。

  • 它们不生成 AHD 或电子邮件通知。新的次要版本将在亚马逊 DocumentDB 发行说明中公布。

  • 要升级,您需要修改集群的引擎版本(立即或在下一个维护时段内)。次要版本升级需要短暂的停机时间,并且是单向的,您无法降级到较早的次要版本。对于全局群集,请先升级辅助群集,然后再升级主群集。

阅读更多:亚马逊 DocumentDB 次要版本升级.

Amazon DocumentDB 操作系统更新

实例偶尔需要更新操作系统。Amazon DocumentDB 更新操作系统以提高性能并加强安全性。操作系统更新使集群引擎版本和实例类保持不变。与引擎补丁一样,操作系统更新使用本主题顶部描述的可选/必需/强制生命周期;与引擎补丁不同,如果您推迟,操作系统更新可能会随着时间的推移在这些类别中过渡。在操作系统更新可用时立即应用这些更新,并将您的实例维护窗口设置为适合您业务的时间。

要在新的可选更新到来时获取事件,请在安全补丁事件类别RDS-EVENT-0230中订阅。有关详细信息,请参阅订阅亚马逊 DocumentDB 活动订阅。收到通知后,您可以自行将操作系统补丁应用于每个实例。

修补集群时,先更新读取器实例,最后更新写入器实例。避免同时修补读取器和写入器——补丁期间的故障转移可能会延长停机时间。主实例的维护会触发故障转移,因此每个集群运行多个实例以保持可用状态。有关更多信息,请参阅 Amazon DocumentDB 失效转移

重要

为了升级操作系统,您的 Amazon DocumentDB 实例将处于离线状态。 Multi-instance 群集可以最大限度地减少影响。如果您运行的是单实例集群,则可以临时添加辅助集群进行升级,然后将其删除。辅助设备存在时会产生通常的费用。

注意

为了合规,可能需要及时了解可选和必需的更新。在维护时段内定期应用可用更新。

操作系统更新与特定的引擎版本和实例类别相关联,因此不同的实例在不同的时间符合资格。当实例符合条件时,更新将显示在控制台中;您也可以通过 AWS CLI describe-pending-maintenance-actions命令或 DescribePendingMaintenanceActions API 进行查看。

注意

如果您的集群未使用其 Amazon DocumentDB 引擎的最新补丁版本,则操作系统更新可能显示为不可用。先应用最新的引擎补丁,然后再次检查。

使用 AWS 管理控制台 或 AWS CLI 检查更新是否可用。

Using the AWS 管理控制台

要从控制台查看操作系统更新,请执行以下操作:

  1. 登录并打开 Amazon DocumentDB 控制台,网址为。 AWS 管理控制台https://console.aws.amazon.com/docdb

  2. 在导航窗格中,选择集群。该列表显示了集群及其中的实例,通过角色列进行区分。

  3. 选择角色实例的行(不是群集行)。操作系统更新适用于实例,不适用于集群。

  4. 选择 维护

  5. 在 “待维护” 下查看操作系统更新。

显示集群维护列的 Amazon DocumentDB 控制台。

从 “待定维护” 部分,选择操作系统更新,然后选择 “立即应用” 或 “在下一个维护时段应用”。如果维护值为下一个窗口,则只要更新尚未开始,就可以通过延迟升级来推迟更新。

您也可以从集群列表中执行此操作:在导航窗格中,选择集群,选择角色为 “实例” 的行,然后从 “操作” 菜单中选择 “立即申请” 或 “在下一个维护时段应用”。

Using the AWS CLI

从 AWS CLI中运行describe-pending-maintenance-actions

aws docdb describe-pending-maintenance-actions
{ "PendingMaintenanceActions": [ { "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:db:sample-cluster-instance-1", "PendingMaintenanceActionDetails": [ { "Action": "system-update", "Description": "New Operating System update is available" } ] } ] }

User-initiated 更新

有些更改是您自己开始的,例如,将实例类换成内存或多或少的实例类,或者更改集群的参数组。Amazon DocumentDB 对待这些内容的方式与其启动的更新不同。有关详细信息,请参阅:

要列出用户发起但仍处于待处理状态的更改,请执行以下操作:

列出用户对您的实例发起的待处理更改

对于 Linux、macOS 或 Unix:

aws docdb describe-db-instances \ --query 'DBInstances[*].[DBClusterIdentifier,DBInstanceIdentifier,PendingModifiedValues]'

对于 Windows:

aws docdb describe-db-instances ^ --query 'DBInstances[*].[DBClusterIdentifier,DBInstanceIdentifier,PendingModifiedValues]'

此操作的输出将类似于下文(JSON 格式)。

在此示例中,sample-cluster-instance有待更改为db.r5.xlarge;没sample-cluster-instance-2有。

[ [ "sample-cluster", "sample-cluster-instance", { "DBInstanceClass": "db.r5.xlarge" } ], [ "sample-cluster", "sample-cluster-instance-2", {} ] ]

全球集群修补

在全局群集中,每个成员群集(主群集和辅助群集)都会在自己的维护时段内进行升级。当每个地区都有所需的引擎补丁可用时,您会收到 AHD 和电子邮件通知。可选补丁和新的次要版本不会生成通知;请查看 Amazon DocumentDB 发行说明了解这些通知。

如果您自行申请,请务必先修补次要补丁,最后修补主补丁。此顺序使故障转移和切换在整个部署过程中都可用。

重要

如果您错误地先修补了主版本,请尽快将所有辅助版本调至相同的版本。在每个集群都使用相同版本之前,故障转移和切换将保持禁用状态。

如果您不采取任何行动,则补丁会在每个集群的下一个维护时段内自动应用:首先是辅助群集,然后在辅助群集完成后在其窗口中应用主群集。

保持主数据库集群和辅助数据库集群的版本相同。只有当每个集群共享相同的引擎版本和补丁级别时,托管跨区域故障转移才适用于全局数据库。如果您添加一个使用比主版本更新的引擎版本的新辅助服务器,则同样适用,即在主服务器的版本上创建新的辅助服务器,然后再将其加入全局数据库。

收到补丁通知后,请尽早将主版本和辅助版本升级到最新版本,以保持故障转移和切换正常运行。如果故障转移或切换请求被拒绝,请比较各集群的引擎补丁版本;如果它们不匹配,请在滞后的集群上应用可用的补丁。