维护 Amazon DocumentDB

Amazon DocumentDB 定期对 Amazon DocumentDB 资源执行维护。维护最常涉及对数据库引擎(集群维护)或实例的底层操作系统 (OS)(实例维护)的更新。

某些维护项目需要 Amazon DocumentDB 使实例脱机一小段时间。要求实例脱机的维护项目包括必需的操作系统或引擎修补。仅对与安全性和实例可靠性相关的修补程序自动安排必需的修补。这种修补很少发生 (通常几个月一次),并且几乎不会需要过长的维护时段。在集群或实例上执行维护时,将会出现这种情况;如果实例是主实例,将进行故障转移。有关更多信息,请参阅 Amazon DocumentDB故障转移

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

确定待处理的 Amazon DocumentDB 维护操作

您可以使用 AWS 管理控制台或 AWS CLI 来查看维护更新是否对集群可用。

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

  • 推迟维护操作。

  • 立即应用维护操作。

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

  • 不执行任何操作。

重要

某些 OS 更新标记为必需。如果您推迟某个必需的更新,则会收到一条来自 Amazon DocumentDB的通知,指示何时对实例或集群执行此更新。其他更新为可用。您可以无限期推迟这些更新。

维护时段确定待处理的操作何时开始,但不限制这些操作的总执行时间。维护操作不保证在维护时段结束前完成,可以在超出指定的结束时间后继续。

使用 AWS 管理控制台

如果某个更新可用,则该更新将由 Amazon DocumentDB 控制台上的集群的 Maintenance (维护) 列中的 Available (可用)Required (必需) 一词指示,如下所示:


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

使用 AWS CLI

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

  1. aws docdb describe-pending-maintenance-actions

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

  1. {
  2. "PendingMaintenanceActions": []
  3. }

应用 Amazon DocumentDB更新

通过 Amazon DocumentDB,您可以选择何时应用维护操作。使用 AWS 管理控制台或 AWS CLI 时,您可以决定 Amazon DocumentDB何时应用更新。

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

使用 AWS 管理控制台

您可以使用控制台管理 Amazon DocumentDB 实例和集群的更新。

管理实例或集群的更新

  1. 通过以下网址登录 AWS 管理控制台并打开 Amazon DocumentDB 控制台:https://console.aws.amazon.com/docdb

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

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

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

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

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

      注意

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

使用 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:

  1. aws docdb apply-pending-maintenance-action \
  2. --resource-identifier arn:aws:rds:us-east-1:123456789012:db:docdb \
  3. --apply-action system-update \
  4. --opt-in-type immediate

对于 Windows:

  1. aws docdb apply-pending-maintenance-action ^
  2. --resource-identifier arn:aws:rds:us-east-1:123456789012:db:docdb ^
  3. --apply-action system-update ^
  4. --opt-in-type immediate

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

对于 Linux、macOS 或 Unix:

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

对于 Windows:

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

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

  1. {
  2. "PendingMaintenanceActions": [
  3. {
  4. "ResourceIdentifier": "arn:aws:rds:us-east-1:001234567890:cluster:sample-cluster",
  5. "PendingMaintenanceActionDetails": [
  6. {
  7. "Action": "system-update",
  8. "CurrentApplyDate": "2019-01-11T03:01:00Z",
  9. "Description": "db-version-upgrade",
  10. "ForcedApplyDate": "2019-01-18T03:01:00Z",
  11. "AutoAppliedAfterDate": "2019-01-11T03:01:00Z"
  12. }
  13. ]
  14. }
  15. ]
  16. }

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

下面是筛选条件的 Name 参数可接受的值:

  • db-cluster-id — 接受集群标识符或 ARN 的列表。返回的列表只包括这些标识符或 ARN 标识的集群的挂起的维护操作。

  • db-instance-id — 接受实例标识符或 ARN 的列表。返回的列表只包括这些标识符或 ARN 标识的实例的挂起的维护操作。

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

对于 Linux、macOS 或 Unix:

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

对于 Windows:

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

应用日期

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

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

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

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

用户启动的更新

作为 Amazon DocumentDB 用户,您可以启动对集群或实例的更新。例如,您可以将实例的类修改为具有更多或更少内存的类,也可以更改集群的参数组。Amazon DocumentDB 以不同于 Amazon DocumentDB 启动的更新的方式看待这些更改。有关修改集群或实例的更多信息,请参阅以下内容:

要查看待处理的用户启动的修改的列表,请运行以下命令。

查看实例的待处理的用户启动的更改

对于 Linux、macOS 或 Unix:

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

对于 Windows:

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

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

在本例中,sample-cluster-instance 有针对 db.r5.xlarge 实例类的待处理更改,sample-cluster-instance-2 没有待处理的更改。

  1. [
  2. [
  3. "sample-cluster",
  4. "sample-cluster-instance",
  5. {
  6. "DBInstanceClass": "db.r5.xlarge"
  7. }
  8. ],
  9. [
  10. "sample-cluster",
  11. "sample-cluster-instance-2",
  12. {}
  13. ]
  14. ]

管理 Amazon DocumentDB 维护时段

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

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

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

RegionUTC 时间数据块
美国东部(俄亥俄州)03:00-11:00
美国东部(弗吉尼亚北部)03:00-11:00
美国西部(俄勒冈)06:00-14:00
亚太地区(孟买)17:30–01:30
亚太区域(首尔)13:00-21:00
亚太区域(新加坡)14:00–22:00
亚太区域(悉尼)12:00–20:00
亚太区域(东京)13:00-21:00
加拿大 (中部)22:00-06:00
欧洲(法兰克福)23:00-07:00
欧洲(爱尔兰)22:00-06:00
欧洲(巴黎)22:00-06:00
AWS GovCloud (US)22:00-06:00

更改维护时段

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

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

更改维护时段