维护 Amazon DocumentDB - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

维护 Amazon DocumentDB

Amazon DocumentDB 会定期对 Amazon DocumentDB 资源执行维护。维护最常涉及对数据库引擎(集群维护)或实例的底层操作系统 (OS)(实例维护)的更新。数据库引擎更新是必需的补丁,包括安全补丁、错误修复和数据库引擎增强功能。操作系统的更新通常包含安全补丁。虽然操作系统补丁是可选的,但我们建议您尽快将其应用于您的 Amazon DocumentDB 实例。

数据库引擎补丁要求您在短时间内让 Amazon DocumentDB 集群离线。这些补丁可用后,系统会自动安排在即将到来的亚马逊文档数据库集群计划维护窗口内应用。

集群和实例维护都有各自的维护时段。您选择不立即应用的集群和实例修改也将在维护时段内应用。默认情况下,在创建集群时,Amazon DocumentDB 会为集群和每个单独的实例分配维护时段。您可以在创建集群或实例时选择维护时段。也可以随时修改维护时段以适应您的业务计划或实践。通常,建议选择尽量减少对应用程序的影响的维护时段(例如,晚上或周末)。本指南与您遇到的应用程序类型和使用模式密切相关。

亚马逊 DocumentDB 引擎补丁通知

您将通过Amazon控制台 Amazon Health Dashboard (AHD) 中的运行状况事件和电子邮件收到所需数据库引擎补丁的维护通知。当 Amazon DocumentDB 引擎维护补丁在特定Amazon地区可用时,该地区所有受影响的亚马逊 DocumentDB 用户账户都将收到受该补丁影响的每个亚马逊 DocumentDB 版本的 AHD 和电子邮件通知。您可以在Amazon控制台中 AHD 的 “计划更改” 部分下查看这些通知。该通知将包含有关补丁发布时间、auto apply 计划、受影响集群列表和发布说明的详细信息。此通知还将通过电子邮件发送到Amazon账户的 root 用户电子邮件地址。


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

收到此通知后,您可以选择在预定的自动应用日期之前自行将这些引擎补丁应用到您的 Amazon DocumentDB 集群。或者,您可以等待在即将到来的维护时段内自动应用引擎补丁(默认选项)。

注意

在发布带有新引擎补丁版本的新 Amazon DocumentDB 引擎补丁之前,AHD 中通知的状态将设置为 “进行中”。

将引擎补丁应用到您的 Amazon DocumentDB 集群后,集群的引擎补丁版本将更新以反映通知中的版本。您可以运行db.runCommand({getEngineVersion: 1})命令来验证此更新。

Amazon Health还与 Amazon 集成 EventBridge ,后者使用事件构建可扩展的事件驱动应用程序,并与 20 多个目标集成,包括亚马逊简单队列服务 (SQS) Simple Queue Service Amazon Lambda 等。 EventBridge 在引擎补丁可用之前,您可以使用AWS_DOCDB_DB_PATCH_UPGRADE_MAINTENANCE_SCHEDULED事件代码来设置 Amazon。您可以设置 EventBridge 为响应事件并自动执行操作,例如捕获事件信息、启动其他事件、通过其他渠道(例如向推送通知)发送通知Amazon Console Mobile Application,以及在 Amazon DocumentDB 引擎补丁可用时采取纠正或其他措施。

在 Amazon DocumentDB 取消引擎补丁的极少数情况下,您将收到 AHD 通知以及一封通知您取消补丁的电子邮件。因此,您可以使用AWS_DOCDB_DB_PATCH_UPGRADE_MAINTENANCE_CANCELLED事件代码设置 Amazon EventBridge 以响应此事件。查看亚马逊 EventBridge 用户指南,详细了解如何使用亚马逊 EventBridge 规则

查看待处理的亚马逊 DocumentDB 维护操作

您可以使用 Amazon Web Services Management Console或 Amazon CLI 来查看维护更新是否对集群可用。

如果有可用更新,您可以执行以下操作之一:

  • 推迟当前计划在下一个维护时段执行的维护操作(仅适用于操作系统补丁)。

  • 立即应用维护操作。

  • 计划下一个维护时段内要开始的维护操作。

注意

如果您不采取任何行动,则必需的维护操作(例如引擎补丁)将在即将到来的计划维护窗口中自动应用。

维护时段确定待处理的操作何时开始,但不限制这些操作的总执行时间。

Using the Amazon Web Services Management Console
  1. 登录到 Amazon Web Services Management Console 并打开 Amazon DocumentDB 控制台,网址:https://console.aws.amazon.com/docdb

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

  3. 如果有更新可用,则在 Amazon DocumentDB 控制台上集群的 维护列中以 可用必需下一个窗口一词表示,如下所示:

    
                           显示集群维护列的 Amazon DocumentDB 控制台。
  4. 要采取操作,请选择集群以显示其详细信息,然后选择维护和备份。将显示待处理维护项目。

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

使用以下 Amazon CLI 操作确定待处理的维护操作。此处的输出显示没有待处理的维护操作。

aws docdb describe-pending-maintenance-actions

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

{ "PendingMaintenanceActions": [] }

正在应用亚马逊 DocumentDB 引擎更新

通过 Amazon DocumentDB,您可以选择何时应用维护操作。使用 Amazon Web Services Management Console 或 Amazon CLI时,您可以决定 Amazon DocumentDB 何时应用更新。

使用此主题中的过程对集群立即执行升级或者计划升级。

Using the Amazon Web Services Management Console

您可以使用控制台管理 Amazon DocumentDB 集群。

管理集群的更新
  1. 登录到 Amazon Web Services Management Console 并打开 Amazon DocumentDB 控制台,网址:https://console.aws.amazon.com/docdb

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

  3. 在集群列表中,选择要应用维护操作的集群名称旁边的按钮。

  4. Actions (操作) 菜单中,选择以下选项之一:

    • Upgrade now (立即升级),以立即执行挂起的维护任务。

    • Upgrade at next window (在下一个时段升级),以在集群的下一个维护时段中执行挂起的维护任务。

    或者,您可以在 集群维护和备份选项卡的待定维护部分中点击 立即申请在下一个维护时段应用(请参阅上一节的 使用 Amazon Web Services Management Console)。

    注意

    如果没有挂起的维护任务,上面的所有选项均会处于非活动状态。

Using the Amazon CLI

要将待处理的更新应用于集群,请使用 apply-pending-maintenance-action Amazon CLI 操作。

参数
  • --resource-identifier—待处理的维护操作应用于的资源的 Amazon DocumentDB Amazon 资源名称 (ARN)。

  • --apply-action—应用于此资源的待处理的维护操作。

    有效值:system-updatedb-upgrade

  • --opt-in-type—用于指定加入请求类型或撤消加入请求的值。不能撤消 immediate 类型的加入请求。

    有效值:

    • 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:docdb \ --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:docdb ^ --apply-action system-update ^ --opt-in-type immediate

要返回至少有一个挂起更新的资源列表,请使用 describe-pending-maintenance-actions Amazon CLI 操作。

对于 Linux、macOS 或 Unix:

aws docdb describe-pending-maintenance-actions \ --resource-identifier arn:aws:rds:us-east-1:001234567890:db:docdb

对于 Windows:

aws docdb describe-pending-maintenance-actions ^ --resource-identifier arn:aws:rds:us-east-1:001234567890:db:docdb

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

{ "PendingMaintenanceActions": [ { "ResourceIdentifier": "arn:aws:rds:us-east-1:001234567890:cluster:sample-cluster", "PendingMaintenanceActionDetails": [ { "Action": "system-update", "CurrentApplyDate": "2019-01-11T03:01:00Z", "Description": "db-version-upgrade", "ForcedApplyDate": "2019-01-18T03:01:00Z", "AutoAppliedAfterDate": "2019-01-11T03:01:00Z" } ] } ] }

通过指定 describe-pending-maintenance-actions Amazon CLI 操作的 --filters 参数,您还可以返回集群的资源列表。--filters 操作的格式是 Name=filter-name,Values=resource-id,...

db-cluster-id 是筛选条件的 Name 参数可接受的值。该值接受集群标识符或 ARN 的列表。返回的列表只包括这些标识符或 ARN 标识的集群的挂起的维护操作。

以下示例返回 sample-cluster1sample-cluster2 集群的待处理维护操作。

对于 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

申请日期

每个维护操作都有一个相应的应用日期,您可以在描述待处理的维护操作时找到它们。当您从 Amazon CLI 读取待处理维护操作的输出时,将列出以下三个日期:

  • CurrentApplyDate—将立即应用或在下一个维护时段期间应用维护操作的日期。如果维护是可选的,则该值可以为 null

  • ForcedApplyDate—自动应用维护的日期,与维护时段无关。

  • AutoAppliedAfterDate—将在该日期后的集群维护时段期间应用维护。

用户启动的更新

作为 Amazon DocumentDB 用户,您可以启动对集群或实例的更新。例如,您可以将实例的类修改为具有更多或更少内存的类,也可以更改集群的参数组。Amazon DocumentDB 对这些更改的看法不同于 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", {} ] ]

管理您的亚马逊 DocumentDB 维护窗口

每个实例和集群都有一个每周维护时段,在此期间会应用任何待处理的更改。在请求或要求的情况下,您可以将维护时段视为控制修改及软件修补程序更新的时间的机会。如果在给定的周内安排了维护事件,则将在您确定的 30 分钟维护时段内启动维护。大部分维护事件也将在 30 分钟的维护时段内完成,但较大的维护事件可能需要 30 分钟以上的时间才能完成。

这个 30 分钟维护时段是随机从每个区域的 8 小时时间段中选择出来的。如果在创建实例或集群时未指定首选维护时段,则 Amazon DocumentDB 在该星期中随机选择的某一天中分配 30 分钟的维护时段。

下表列出的是分配了默认维护窗口的各个区域的时间段。

区域名称 区域 UTC 时间数据块
美国东部(俄亥俄州) us-east-2 03:00-11:00
美国东部(弗吉尼亚州北部) us-east-1 03:00-11:00
美国西部(俄勒冈州) us-west-2 06:00-14:00
亚太地区(香港) ap-east-1 06:00-14:00
亚太地区(海得拉巴) ap-south-2 06:30–14:30
亚太地区(孟买) ap-south-1 06:00-14:00
亚太地区(首尔) ap-northeast-2 13:00-21:00
亚太地区(新加坡) ap-southeast-1 14:00-22:00
亚太地区(悉尼) ap-southeast-2 12:00-20:00
亚太地区(东京) ap-northeast-1 13:00-21:00
加拿大(中部) ca-central-1 03:00-11:00
中国(北京) cn-north-1 06:00-14:00
中国(宁夏) cn-northwest-1 06:00-14:00
欧洲地区(法兰克福) eu-central-1 21:00-05: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
南美洲(圣保罗) sa-east-1 00:00-08:00
Amazon GovCloud (美国东部) us-gov-east-1 17:00-01:00
Amazon GovCloud (美国西部) us-gov-west-1 06:00-14:00

更改您的亚马逊 DocumentDB 维护窗口

维护时段应当选在使用量最小的时段上,因而可能必须不时予以更改。您的集群或实例只会在应用系统更改(例如,扩展存储操作或数据库实例类的更改)并且需要中断的期间出现不可用现象,且持续时间只是这些必要更改所需的最少时间。

对于数据库引擎升级,Amazon DocumentDB 会使用集群的首选维护时段,而不是单个实的维护时段。

更改维护时段

使用操作系统更新

Amazon DocumentDB 集群中的实例偶尔需要操作系统更新。Amazon DocumentDB 将操作系统升级到更新的版本,以提高数据库性能和客户的整体安保状况。操作系统更新不会更改实例的引擎版本或 Amazon DocumentDB 实例类。

我们建议您先更新集群中的读取器实例,然后更新写入器实例,以将集群的可用性最大化。我们不建议同时更新读取器实例和写入器实例,因为发生失效转移时可能会导致更长的停机。

操作系统更新没有应用日期,可以随时应用。我们建议您定期应用它们,以使 Amazon DocumentDB 数据库保持最新状态。Amazon DocumentDB 不自动应用这些更新。要在新的可选更新可用时收到通知,您可以订阅安全修补事件类别中的 RDS-EVENT-0230。有关订阅 Amazon DocumentDB 活动的信息,请参阅订阅 Amazon DocumentDB 活动订阅

在集群或实例上执行维护时,将会出现这种情况;如果实例是主实例,将进行故障转移。为了提高可用性,我们建议您为 Amazon DocumentDB 集群使用多个实例。有关更多信息,请参阅 Amazon DocumentDB 失效转移

注意

对于某些管理功能,Amazon DocumentDB 使用与 Amazon Relational Database Service (Amazon RDS) 共享的操作技术。

重要

在操作系统升级期间,您的 Amazon DocumentDB 实例将处于离线状态。

注意

为了履行各种合规性义务,可能需要及时了解所有可选和强制性更新。我们建议您在维护时段内定期应用 Amazon DocumentDB 提供的所有更新。

您可以使用 Amazon Web Services Management Console或 Amazon CLI 以确定更新是可选还是强制性的。

Using the Amazon Web Services Management Console

使用 Amazon Web Services Management Console确定更新是可选还是强制性的:

  1. 登录到 Amazon Web Services Management Console 并打开 Amazon DocumentDB 控制台,网址:https://console.aws.amazon.com/docdb

  2. 在导航窗格中,选择 集群,然后选择实例。

  3. 选择 维护

  4. 待定维护部分中,找到操作系统更新,然后检查 状态值。

在 Amazon Web Services Management Console中,一个操作系统更新将其维护 状态设置为 可用并且没有 应用日期,如下图所示:


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

您可以选择操作系统更新,然后在 待定维护部分中点击 立即申请在下一个维护时段应用。如果维护值为下一时段,请通过选择推迟升级来推迟维护项目。如果维护操作已经启动,则无法推迟该操作。

或者,您可以从集群列表中选择实例,方法是点击导航窗格中的 集群,然后从 操作菜单中选择 立即申请在下一个维护窗口中应用

Using the Amazon CLI

要使用确定更新是可选的还是强制性的Amazon CLI,请调用以下 describe-pending-maintenance-actions 命令:

aws docdb describe-pending-maintenance-actions

强制性操作系统更新包括 AutoAppliedAfterDate 值和 CurrentApplyDate 值。可选的操作系统更新不包含这些值。

以下输出显示强制性操作系统更新:

{ "ResourceIdentifier": "arn:aws:docdb:us-east-1:123456789012:db:mydb1", "PendingMaintenanceActionDetails": [ { "Action": "system-update", "AutoAppliedAfterDate": "2022-08-31T00:00:00+00:00", "CurrentApplyDate": "2022-08-31T00:00:00+00:00", "Description": "New Operating System update is available" } ] } The following output shows an optional operating system update. { "ResourceIdentifier": "arn:aws:docdb:us-east-1:123456789012:db:mydb2", "PendingMaintenanceActionDetails": [ { "Action": "system-update", "Description": "New Operating System update is available" } ] }

操作系统更新的可用性

操作系统更新特定于 Amazon DocumentDB 引擎版本和实例类。因此,Amazon DocumentDB 实例在不同的时间接收或要求更新。当根据实例的引擎版本和实例类,实例有可用的操作系统更新时,更新将显示在控制台中。也可以通过运行 Amazon CLI describe-pending-maintenance-actions 命令或调用 DescribePendingMaintenanceActions API 操作来查看。如果您的实例有可用更新,则可以按照应用 Amazon DocumentDB 更新中的说明更新操作系统。