本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
维护 Amazon DocumentDB
Amazon 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 的维护操作
以下维护操作适用于 Amazon DocumentDB 集群:
-
system-update— 升级 Amazon DocumentDB 集群的引擎补丁。有关更多信息,请参阅 Amazon DocumentDB 引擎更新。 -
os-upgrade— 使用滚动升级,更新 Amazon DocumentDB 集群中所有数据库实例的操作系统。有关更多信息,请参阅 Amazon DocumentDB 操作系统更新。
以下维护操作适用于 Amazon DocumentDB 实例:
-
system-update— 升级 Amazon DocumentDB 实例的操作系统。我们建议您改用集群级别的os-upgrade维护操作。有关更多信息,请参阅 Amazon DocumentDB 操作系统更新。
引擎版本编号
Amazon DocumentDB 使用两个单独的版本标识符:
-
引擎版本 — 由三部分组成的表单中的数字
(例如,major.major.minor5.0.0或5.0.1)。前两部分 (5.0) 是 MongoDB 兼容性版本;第三部分是次要版本,当 Amazon DocumentDB 发布包含错误修复和非破坏性改进的次要版本时,该版本会增加。这是您在创建或升级集群时指定的版本。 -
引擎补丁版本 — 一个由三部分组成的独立数字
(例如,major.0.patch3.0.17983),用于标识应用于您的集群的补丁级别。中间的数字始终是0。补丁版本包含重要的安全性和稳定性补丁。
您可以根据引擎补丁版本的前缀确定引擎版本,如下表所示。
| 引擎补丁版本前缀 | 亚马逊 DocumentDB 引擎版本 |
|---|---|
1.0. |
3.6 |
2.0. |
4.0 |
3.0. |
5.0 |
4.0. |
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 集群。
-
对于实例:请参阅修改 Amazon DocumentDB 实例。
Amazon DocumentDB 引擎补丁通知
当所需的引擎补丁在某个 AWS 地区可用时,在该地区拥有受影响 Amazon DocumentDB 集群的每个 AWS 账户都会通过 Health Dashboard (AHD) 和电子邮件(发送到该 AWS 账户的根用户地址)收到通知。每个受影响的 Amazon DocumentDB 引擎版本都会发送一条通知。您可以在 AHD 的 “预定更改” 下找到它们。每份通知都列出了补丁可用时间、自动应用时间表、受影响的集群和发行说明。
所需的引擎补丁的单一交货期约为 30 天。当补丁在您所在的地区可用时,Amazon DocumentDB 会发送上述通知。此时,该补丁的发布时间设定AutoAppliedAfterDate为大约 30 天后。在此之前,该补丁一直处于待处理状态:您可以随时应用该补丁,也可以将集群的维护窗口移至稍后一天进行推迟。在之后或之后AutoAppliedAfterDate,该补丁将在集群的下一个维护时段内自动应用。
例如,2026 年 6 月 1 日发布的必需补丁大约为 2026 年 7 月 1 日。AutoAppliedAfterDate您将在 2026 年 6 月 1 日收到通知,如果您不采取任何措施,补丁将在 2026 年 7 月 1 日或之后的集群的第一个维护时段内自动生效。
收到通知后,您有两种选择:在自动应用日期之前自行应用补丁,或者在即将到来的维护时段(默认)等待补丁自动应用。要自行申请,请打开集群的 “维护和备份” 选项卡并查找类型system-update条目。
注意
在亚马逊DocumentDB发布另一个带有新补丁版本的引擎补丁之前,通知在AHD中的状态将保持有效。
应用补丁后,集群的引擎补丁版本将更新以匹配通知中的版本。通过运行来验证新版本db.runCommand({getEngineVersion: 1})。
可选补丁和新的次要版本不会生成 AHD 或电子邮件通知。要对其进行跟踪,请观看亚马逊 DocumentDB 发行说明。
强制补丁(最罕见的类别,专用于最关键的安全补丁)也通过AHD和电子邮件发布。与必需的补丁不同,它们在维护窗口之外适用,因此上面的自动应用时间示例不适用。
以编程方式对补丁通知做出反应
AWS Health 与亚马逊集成 EventBridge,允许您在 20 多个目标上构建事件驱动的应用程序,包括 AWS Lambda 亚马逊简单队列服务 (SQS)。要以编程方式对引擎补丁的可用性做出反应,请 EventBridge 针对事件进行配置。AWS_DOCDB_DB_PATCH_UPGRADE_MAINTENANCE_SCHEDULED在此处,您可以捕获事件数据、引发其他事件、通过发送推送通知或采取所需的任何其他操作。 AWS Console Mobile Application
如果亚马逊 DocumentDB 取消补丁(罕见),您将收到 AHD 通知和一封有关取消的电子邮件。使用亚马逊AWS_DOCDB_DB_PATCH_UPGRADE_MAINTENANCE_CANCELLED的事件代码 EventBridge 来处理此案件。有关编写规则的更多信息,请参阅亚马逊 EventBridge 用户指南。
查看待处理的 Amazon DocumentDB 维护操作
使用 AWS 管理控制台 或 AWS CLI 来检查集群或实例的待维护情况。
待处理的更新以操作类型显示system-update,该操作类型涵盖引擎补丁和操作系统更新。
待更新时,您可以:
-
立即涂抹。
-
将其安排到下一个维护时段。
-
通过更改维护窗口来推迟(仅限引擎补丁和操作系统更新)
AutoAppliedAfterDate。该日期过后,该操作将在下一个维护时段内自动生效。一旦ForcedApplyDate通过,就无法再延期。
注意
如果您不采取任何措施,则所需的维护操作(例如所需的引擎补丁)将在即将到来的维护时段内自动生效。可选补丁和次要版本永远不会自动应用。
维护窗口控制待处理操作何时开始,而不是需要多长时间才能完成。
应用日期
每项待处理的维护操作最多有三个申请日期。它们出现在的 AWS CLI 输出中describe-pending-maintenance-actions,并指示操作何时运行。字段null用于可选维护。
-
CurrentApplyDate—计划运行操作时,无论是现在还是下一个维护时段。为必需和强制操作填充。 -
AutoAppliedAfterDate—集群或实例维护时段内自动应用开始之后的日期。为必需的操作填充。 -
ForcedApplyDate—艰难的最后期限。在此日期之后,无论您的维护时段如何,操作都会自动运行。为强制行动而填充。
要推迟待处理的操作,请将维护窗口移至前一天晚些时候AutoAppliedAfterDate。一旦AutoAppliedAfterDate通过,该操作将在下一个维护时段内自动应用。一旦ForcedApplyDate通过,就无法再延期。每个补丁的确切延期限各不相同;日期在 AHD 通知和输出中公布。 AWS CLI
Amazon DocumentDB 引擎更新
确定待处理的引擎补丁后,请使用以下步骤之一来应用或安排补丁。您可以从 AWS 管理控制台 或运行这些过程 AWS CLI。
修补期间的读取可用性
当集群有多个实例时,Amazon DocumentDB 引擎 5.0 和 8.0 可在修补期间保持读取可用性。Amazon DocumentDB 以滚动方式分三组修补读取器实例,因此其余读取器可以继续为流量提供服务。该写入器在补丁时短暂不可用。要实现零读取停机时间,请设置您的读取首选项,以便读取可以退回写入器:secondaryPreferred或primaryPreferred正常工作;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 主要引擎版本并将实例分布在多个可用区。
补丁更新和替换
亚马逊 DocumentDB 会在补丁发布后对其进行监控 在发现问题的极少数情况下,Amazon DocumentDB 会在准备更新版本时暂停推出。发生这种情况时,尚未收到补丁的集群将不再将其视为可用的维护操作,并且中相应的预定变更通知将被撤回。 Health Dashboard 已经运行受影响版本的集群继续正常运行,无需您执行任何操作。
不久将发布更新的补丁。当它在您所在的地区可用时,您将通过 Health Dashboard 和电子邮件收到新的通知,如中所述Amazon DocumentDB 引擎补丁通知。
次要版本升级
Amazon DocumentDB 在主要版本 5.0 及更高版本的基础上发布次要版本(例如,5.0.1)。对于早于 5.0 的主要版本,不会发布次要版本。次要版本的行为与必需和可选的引擎补丁不同:
-
它们不会显示为待处理的维护操作,也不会自动应用。
-
他们不生成 AHD 或电子邮件通知。新的次要版本将在亚马逊 DocumentDB 发行说明中公布。
-
要升级,您需要修改集群的引擎版本(立即或在下一个维护时段内)。次要版本升级需要短暂的停机时间,并且是单向的,您无法降级到较早的次要版本。对于全局集群,请先升级辅助集群,然后再升级主集群。
阅读更多:亚马逊 DocumentDB 次要版本升级.
Amazon DocumentDB 操作系统更新
实例偶尔需要操作系统更新。亚马逊 DocumentDB 更新操作系统以提高性能并加强安全性。操作系统更新使集群引擎版本和实例类保持不变。与引擎补丁一样,操作系统更新使用本主题顶部描述的可选/必需/强制生命周期;与引擎补丁不同,如果您推迟,操作系统更新可以随着时间的推移过渡到这些类别。在操作系统更新可用时立即应用这些更新,并将您的集群和实例维护窗口设置为适合您的业务需求的时间。
使用集群级os-upgrade维护操作将操作系统更新应用于集群中的所有实例。Amazon DocumentDB 以滚动方式更新实例,一次更新几个实例,最后更新主实例以最大限度地减少故障转移。更新在您配置的集群维护时段(而不是单个实例维护窗口)期间运行。
实例收到操作系统更新后,其缓冲区缓存开始为空。在从存储卷中重新填充工作集之前,该实例上的查询可能会遇到更高的延迟和更低BufferCacheHitRatio的延迟。
当 Amazon DocumentDB 更新主实例时,故障转移会将副本升级为新的主实例。使用集群终端节点,以便您的应用程序透明地处理此问题。要在实例更新期间保持读取可用性,请将读取首选项设置为,primaryPreferred这样读取就可以回退到可用实例。secondaryPreferred将潜在的故障转移目标(具有最高优先级的副本)保持在与主实例相同的实例类别。这样可以避免升级后写入性能下降。有关更多信息,请参阅 亚马逊文档数据库故障转移。
集群级os-upgrade和实例级system-update操作可能同时显示在可用操作中describe-pending-maintenance-actions。但是,您不能同时安排两者。如果在任何实例上主动计划实例级system-update操作,则在计划集群级操作之前,必须取消或完成这些os-upgrade操作,反之亦然。
重要
您的亚马逊文档数据库实例因操作系统更新而离线。 Multi-instance 集群将影响降至最低。如果您运行单实例集群,则可以临时为更新添加辅助集群,然后将其删除。次要机构在存在时会产生通常的费用。
注意
实例级system-update操作仍然可用于向后兼容。如果必须使用它,请先更新副本,最后更新主副本,避免同时修补它们,因为补丁期间的故障转移会延长停机时间。
要在新的可选操作系统更新到来时获取事件,请在安全补丁事件类别RDS-EVENT-0230中订阅。有关更多信息,请参阅 订阅 Amazon DocumentDB 事件。
注意
为了合规性,可能需要及时了解可选和必需的更新。在维护时段内定期os-upgrade采取措施。
操作系统更新与特定的实例类别相关联,因此不同的实例在不同的时间符合条件。如果您的集群未使用最新的引擎补丁,则操作系统更新可能不会出现,请先应用最新的引擎补丁(参见Amazon DocumentDB 引擎更新)。
使用 AWS 管理控制台 或 AWS CLI 检查更新是否可用。
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 发行说明。
如果您自行申请,请务必先修补辅助版本,最后修补主要版本。该命令可在整个部署过程中保持故障转移和切换的可用性。
重要
如果你错误地先修补了主版本,请尽快将所有辅助版本升级到同一个版本。在每个集群都处于相同版本之前,故障转移和切换将保持禁用状态。
如果您不采取任何措施,则补丁将在每个集群的下一个维护时段内自动应用:首先是辅助集群,然后在辅助集群完成后在其窗口中应用主集群。
将主数据库集群和辅助数据库集群保持在同一版本上。只有当每个集群共享相同的引擎版本和补丁级别时,托管跨区域故障转移才适用于全局数据库。如果您添加使用比主版本更新的引擎版本的新辅助版本,则同样适用——在将主版本加入全局数据库之前,在主要版本上创建新的辅助版本。
收到补丁通知后,尽早将主版本和辅助版本升级到最新版本,以保持故障转移和切换正常运行。如果故障转移或切换请求被拒绝,请比较集群间的引擎补丁版本;如果不匹配,则在滞后的集群上应用可用补丁。