

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

# 维护 Amazon DocumentDB 弹性集群
<a name="elastic-cluster-maintenance"></a>

**Topics**
+ [查看待处理的弹性集群维护操作](#view-elastic-cluster-maintenance)
+ [弹性集群引擎更新](#elastic-cluster-engine-updates)
+ [弹性集群操作系统更新](#elastic-cluster-os-updates)

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

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

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

## 查看待处理的弹性集群维护操作
<a name="view-elastic-cluster-maintenance"></a>

您可以使用 AWS CLI来查看维护更新是否对弹性集群可用。

如果有可用更新，您可以执行以下操作之一：
+ 推迟目前计划在下一个维护窗口内执行的维护操作（仅适用于操作系统补丁）。
+ 立即应用维护操作。
+ 计划下一个维护时段内要开始的维护操作。
+ 计划所选应用时段内要开始的维护操作。

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

使用以下 AWS CLI 操作来确定哪些维护操作处于待处理状态。列出所有待处理的维护操作：

```
aws docdb-elastic list-pending-maintenance-actions
```

此操作的输出将类似如下（JSON 格式）：

```
{
'ResourcePendingMaintenanceActions': [
    {
        'ResourceArn': 'string-arn',
        'PendingMaintenanceActionDetails': [
            {
                'Action': 'ENGINE_UPDATE',
                'AutoAppliedAfterDate': 'string',  
                'ForcedApplyDate': 'string', 
                'OptInStatus': 'string', 
                'CurrentApplyDate': 'string', 
                'Description': 'string'
            },
        ]
    },
],
'NextToken': 'string'
}
```

获取给定 `resourceArn` 的待处理维护操作（如果有）：

```
aws docdb-elastic get-pending-maintenance-action --resource-arn string-arn
```

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

```
{
    'ResourcePendingMaintenanceAction': {
        'ResourceArn': 'string-arn',
        'PendingMaintenanceActionDetails': [
            {
                'Action': 'ENGINE_UPDATE',
                'AutoAppliedAfterDate': 'string', 
                'ForcedApplyDate': 'string', 
                'OptInStatus': 'string', 
                'CurrentApplyDate': 'string',
                'Description': 'string'
            }
        ]
    }
}
```

参数：
+ `ResourceArn`：待处理的维护操作应用于的资源的 Amazon DocumentDB Amazon 资源名称（ARN）。
+ `Action`：将应用于资源的待处理维护操作。

  有效值：
  + `ENGINE_UPDATE`
  + `ENGINE_UPGRADE`
  + `SECURITY_UPDATE`
  + `OS_UPDATE`
  + `MASTER_USER_PASSWORD_UPDATE`
+ `AutoAppliedAfterDate`：此日期之后的第一个维护时段。在此情况下将忽略 `NEXT_MAINTENANCE OPT_IN`。
+ `ForcedApplyDate`：无论维护时段如何都应用。在此情况下将忽略 `IMMEDIATE OPT_IN`。
+ `OptInStatus`：用于指定加入请求类型或撤消加入请求的值。不能撤消 `IMMEDIATE` 类型的加入请求。

  有效值：
  + `IMMEDIATE`：立即应用维护操作。
  + `NEXT_MAINTENANCE`：在资源的下一个维护时段内应用维护操作。
  + `APPLY_ON`：在指定的应用日期应用维护操作，而无论资源的下一个维护时段如何。
  + `UNDO_OPT_IN`：取消任何现有的 `NEXT_MAINTENANCE` 或 `APPLY_ON` 选择加入请求。
+ `CurrentApplyDate`— 如果 opt-in-type是`APPLY_ON`，则显示。
+ `Description`：维护操作的选项描述。

## 弹性集群引擎更新
<a name="elastic-cluster-engine-updates"></a>

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

应用待处理的维护操作：

```
aws docdb-elastic apply-pending-maintenance-action 
--resource-arn string-arn
--apply-action string-enum
--opt-in-type string-enum 
[--apply-on string-date-range]
```

参数：
+ **--resource-arn**：待处理的维护操作应用于的资源的 Amazon DocumentDB Amazon 资源名称（ARN）。
+ **--apply-action**：应用于此资源的待处理的维护操作。

  有效值：
  + `ENGINE_UPDATE`
  + `ENGINE_UPGRADE`
  + `SECURITY_UPDATE`
  + `OS_UPDATE`
  + `MASTER_USER_PASSWORD_UPDATE`
+ **--opt-in-type**：用于指定加入请求类型或撤消加入请求的值。不能撤消 `IMMEDIATE` 类型的加入请求。

  有效值：
  + `IMMEDIATE`：立即应用维护操作。
  + `NEXT_MAINTENANCE`：在资源的下一个维护时段内应用维护操作。
  + `APPLY_ON`：在指定的应用日期应用维护操作，而无论资源的下一个维护时段如何。
  + `UNDO_OPT_IN`：取消任何现有的 `NEXT_MAINTENANCE` 或 `APPLY_ON` 选择加入请求。
+ **[--apply-on]**：如果 opt-in-type 为 `APPLY_ON`，则为必需项。格式：`yyyy/MM/dd HH:mm-yyyy/MM/dd HH:mm`（此选项使用 UTC 时间。 开始时间可以是将来的任何时间，最少 30 分钟，最多 14 天，也可以是待处理操作的 force/apply 日期，以较早者为准。 开始到结束的时间范围可以是最少 30 分钟，最长可以是 8 小时。）

此操作的输出将类似如下（JSON 格式）：

```
{
 'ResourcePendingMaintenanceAction': {
        'ResourceArn': 'string-arn',
        'PendingMaintenanceActionDetails': [
            {
                'Action': 'SECURITY_UPDATE',
                'AutoAppliedAfterDate': 'string',
                'ForcedApplyDate': 'string', 
                'OptInStatus': 'IMMEDIATE', 
                'CurrentApplyDate': 'string', 
                'Description': 'string'
            },
        ]
 }
}
```

参数：
+ `ResourceArn`：待处理的维护操作应用于的资源的 Amazon DocumentDB Amazon 资源名称（ARN）。
+ `Action`：将应用于资源的待处理维护操作。

  有效值：
  + `ENGINE_UPDATE`
  + `ENGINE_UPGRADE`
  + `SECURITY_UPDATE`
  + `OS_UPDATE`
  + `MASTER_USER_PASSWORD_UPDATE`
+ `AutoAppliedAfterDate`：此日期之后的第一个维护时段。在此情况下将忽略 `NEXT_MAINTENANCE OPT_IN`。
+ `ForcedApplyDate`：无论维护时段如何都应用。在此情况下将忽略 `IMMEDIATE OPT_IN`。
+ `OptInStatus`：用于指定加入请求类型或撤消加入请求的值。不能撤消 `IMMEDIATE` 类型的加入请求。

  有效值：
  + `IMMEDIATE`：立即应用维护操作。
  + `NEXT_MAINTENANCE`：在资源的下一个维护时段内应用维护操作。
  + `APPLY_ON`：在指定的应用日期应用维护操作，而无论资源的下一个维护时段如何。
  + `UNDO_OPT_IN`：取消任何现有的 `NEXT_MAINTENANCE` 或 `APPLY_ON` 选择加入请求。
+ `CurrentApplyDate`— 如果 opt-in-type是`APPLY_ON`，则显示。
+ `Description`：维护操作的选项描述。

### 应用日期
<a name="w2aac37c29c19c13c21"></a>

每个维护操作都有一个相应的应用日期，您可以在描述待处理的维护操作时找到它们。当您阅读中待处理的维护操作的输出时 AWS CLI，会列出三个日期：
+ `CurrentApplyDate`：将立即应用或在下一个维护时段期间应用维护操作的日期。如果维护是可选的，则该值可以为 null。
+ `ForcedApplyDate`：自动应用维护的日期，与维护时段无关。
+ `AutoAppliedAfterDate`：将在该日期后的集群维护时段期间应用维护。

### 用户创建的维护操作
<a name="w2aac37c29c19c13c23"></a>

作为 Amazon Doc DBelastic ument 集群用户，您可以启动对集群配置的更新。

**更新集群主密码**

```
aws docdb-elastic update-cluster 
--cluster-arn string-arn
[--admin-user-password string]
[--auth-type string-enum]
[--apply-method string-enum]
[--apply-on string-date-range] 
#... other parameters of the API that follow here are not relevant for this configuration
```

参数：
+ **--cluster-arn**：维护操作将应用于的资源的 Amazon DocumentDB Amazon 资源名称（ARN）。
+ **[--admin-user-password]**：与管理员用户关联的密码。
+ **[--auth-type]**：身份验证类型，用于确定从何处获取用于访问弹性集群的密码。有效类型为 `PLAIN_TEXT` 和 `SECRET_ARN`。
+ **[--apply-method]**：一个值，指定所应用方法的类型。支持的值包括 `IMMEDIATE` 和 `APPLY_ON`。默认值为 `IMMEDIATE`。
+ **[--apply-on]**：如果 `apply-method` 为 `APPLY_ON`，则为必需项。格式：`yyyy/MM/dd HH:mm-yyyy/MM/dd HH:mm`（此选项使用 UTC 时间。开始时间可以是未来的任何时间，最小值为 30 分钟，最大值为 14 天。开始到结束的时段可以最少为 30 分钟，最长为 8 小时。）

此操作的输出将类似如下（JSON 格式）：

```
{
 'ResourcePendingMaintenanceAction': {
        'ResourceArn': 'string-arn',
        'PendingMaintenanceActionDetails': [
            {
                'Action': 'MASTER_USER_PASSWORD_UPDATE',
                'OptInStatus': 'APPLY_ON', 
                'CurrentApplyDate': 'string', 
                'Description': 'string'
            },
        ]
 }
}
```

### 更改您的 Amazon DocumentDB 维护窗口
<a name="w2aac37c29c19c13c25"></a>

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

默认值为每个 Amazon Web Services 区域 8 小时的时间段中随机选择的 30 分钟时段（随机选取周中的某天进行）。

要更改维护时段，请参阅 [修改弹性集群配置](elastic-managing.md#elastic-modify)。

## 弹性集群操作系统更新
<a name="elastic-cluster-os-updates"></a>

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

Amazon DocumentDB 弹性集群的大多数操作系统更新都是可选的，没有固定的应用日期。但是，如果在一段时间内未应用这些更新，最终可能会变成必需的更新，并在集群维护时段内自动应用。这是为了帮助维持数据库的安全状况。为避免任何意外停机，我们建议在操作系统更新可用时，尽快将其应用于 Amazon DocumentDB 弹性集群，并根据业务需求在方便的时间设置集群维护时段。