本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
维护 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.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 的 “预定更改” 下找到它们。每份通知都列出了补丁可用时间、自动应用时间表、受影响的集群和发布说明。
通知会在自动申请窗口打开前大约两天发出。例如,周一 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通过,就不可能再延期。
注意
如果您不采取任何行动,则在即将到来的维护时段内会自动应用所需的维护操作,例如所需的引擎补丁。可选补丁和次要版本永远不会自动应用。
维护窗口控制待处理的操作何时开始,而不是它们需要多长时间才能完成。
应用日期
每个待处理的维护操作最多有三个申请日期。它们出现在的 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 主引擎版本,并将实例分布到多个可用区。
补丁更新和替换
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 检查更新是否可用。
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 发行说明了解这些通知。
如果您自行申请,请务必先修补次要补丁,最后修补主补丁。此顺序使故障转移和切换在整个部署过程中都可用。
重要
如果您错误地先修补了主版本,请尽快将所有辅助版本调至相同的版本。在每个集群都使用相同版本之前,故障转移和切换将保持禁用状态。
如果您不采取任何行动,则补丁会在每个集群的下一个维护时段内自动应用:首先是辅助群集,然后在辅助群集完成后在其窗口中应用主群集。
保持主数据库集群和辅助数据库集群的版本相同。只有当每个集群共享相同的引擎版本和补丁级别时,托管跨区域故障转移才适用于全局数据库。如果您添加一个使用比主版本更新的引擎版本的新辅助服务器,则同样适用,即在主服务器的版本上创建新的辅助服务器,然后再将其加入全局数据库。
收到补丁通知后,请尽早将主版本和辅助版本升级到最新版本,以保持故障转移和切换正常运行。如果故障转移或切换请求被拒绝,请比较各集群的引擎补丁版本;如果它们不匹配,请在滞后的集群上应用可用的补丁。