维护 Amazon DocumentDB - Amazon DocumentDB

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

维护 Amazon DocumentDB

Amazon DocumentDB 会定期对 Amazon DocumentDB 资源执行维护。维护最常涉及对数据库引擎(集群维护)或实例的底层操作系统 (OS)(实例维护)的更新。数据库引擎更新是必需的补丁,包括安全补丁、错误修复以及数据库引擎增强功能。虽然大多数操作系统补丁都是可选的,但如果在一段时间内未应用这些补丁,就可能变成必需补丁并自动应用,以保持您的安全状况。因此,我们建议在操作系统更新可用时立即将其应用于 Amazon DocumentDB 实例。

数据库引擎补丁需要使 Amazon DocumentDB 集群脱机一小段时间。一旦这些补丁可用后,系统会自动安排在即将到来的 Amazon DocumentDB 集群计划维护窗口内应用补丁。

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

Amazon DocumentDB 引擎补丁通知

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

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

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

注意

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

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

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

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

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

您可以使用 AWS Management Console 或来查看您的集群是否有维护更新可用 AWS CLI。

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

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

  • 立即应用维护操作。

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

注意

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

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

Using the AWS Management Console
  1. 登录 AWS Management Console,然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com

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

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

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

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

使用以下 AWS CLI 操作来确定哪些维护操作处于待处理状态。此处的输出显示没有待处理的维护操作。

aws docdb describe-pending-maintenance-actions

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

{ "PendingMaintenanceActions": [] }

Amazon DocumentDB 引擎更新

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

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

Using the AWS Management Console

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

管理集群的更新
  1. 登录 AWS Management Console,然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com

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

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

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

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

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

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

    注意

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

Using the AWS CLI

要对群集应用待处理的更新,请使用apply-pending-maintenance-action AWS 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 AWS 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 AWS CLI 操作的--filters参数来返回群集的资源列表。--filters 操作的格式是 Name=filter-name,Values=resource-id,...

db-cluster-id 是筛选条件的 Name 参数可接受的值。此值接受集群标识符列表或 ARNs。返回的列表仅包括由这些标识符或标识的集群的待处理维护操作 ARNs。

以下示例返回 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

应用日期

每个维护操作都有一个相应的应用日期,您可以在描述待处理的维护操作时找到它们。当您从中读取待处理维护操作的输出时 AWS CLI,会列出三个日期。这些日期值是null可选维护的时间。一旦计划或应用了相应的维护操作,这些值就会填充。

  • CurrentApplyDate—将立即应用或在下一个维护时段期间应用维护操作的日期。

  • 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", {} ] ]

管理您的 Amazon 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
非洲(开普敦) af-south-1 03:00–11: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
欧洲(西班牙) eu-south-2 02:00–10:00
欧洲地区(斯德哥尔摩) eu-north-1 04:00 — 12:00
中东(阿联酋) me-central-1 05:00–13:00
南美洲(圣保罗) sa-east-1 00:00-08:00
AWS GovCloud (美国东部) us-gov-east-1 17:00-01:00
AWS GovCloud (美国西部) us-gov-west-1 06:00-14:00

更改您的 Amazon DocumentDB 维护窗口

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

对于数据库引擎升级,Amazon 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 提供的所有更新。

您可以使用 AWS Management Console 或 AWS CLI 来确定更新是否可用。

Using the AWS Management Console

使用 AWS Management Console确定更新是否可用:

  1. 登录 AWS Management Console,然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com

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

  3. 选择 维护

  4. 待处理维护部分中,找到操作系统更新。

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

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

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

Using the AWS CLI

要使用确定更新是否可用 AWS CLI,请调用以下describe-pending-maintenance-actions命令:

aws docdb describe-pending-maintenance-actions
{ "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 实例在不同的时间接收或要求更新。当根据实例的引擎版本和实例类,实例有可用的操作系统更新时,更新将显示在控制台中。也可以通过运行 AWS CLI describe-pending-maintenance-actions命令或调用 DescribePendingMaintenanceActions API 操作来查看。

如果没有运行 Amazon DocumentDB 引擎的最新集群补丁版本,您可能看不到列为可用维护的操作系统更新。要查看和管理操作系统更新,应先升级至最新引擎补丁版本。