

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

# 管理 Amazon DocumentDB 集群
<a name="db-clusters"></a>

要管理 Amazon DocumentDB 集群，您必须拥有带适当 Amazon DocumentDB 控制面板权限的 IAM policy。这些权限使您能够创建、修改和删除集群和实例。`AmazonDocDBFullAccess` 策略提供管理 Amazon DocumentDB 集群所需的所有权限。

以下主题说明如何在使用 Amazon DocumentDB 集群时执行各种任务，包括创建、删除、修改、连接和查看集群。

**Topics**
+ [了解集群](db-clusters-understanding.md)
+ [集群设置](db-cluster-parameters.md)
+ [集群存储配置](db-cluster-storage-configs.md)
+ [确定集群的状态](db-cluster-status.md)
+ [集群生命周期](db-cluster-life-cycle.md)
+ [扩展集群](db-cluster-manage-performance.md)
+ [克隆集群卷](db-cluster-cloning.md)
+ [了解集群容错能力](db-cluster-fault-tolerance.md)

# 了解集群
<a name="db-clusters-understanding"></a>

Amazon DocumentDB 分离计算和存储，并将数据复制和备份负载分流到集群卷。集群卷提供持久、可靠且高度可用的存储层，可跨三个可用区以六种方式复制数据。副本可实现更高的数据可用性和读取扩展。每个集群可以扩展到最多 15 个副本。


| 名词 | 说明 | API 操作（动词） | 
| --- | --- | --- | 
|  Cluster  |  包含一个或多个实例和一个管理这些实例的数据的集群存储卷。  |  `create-db-cluster` `delete-db-cluster` `describe-db-clusters` `modify-db-cluster` | 
| 实例 | 读取集群存储卷以及向其中写入数据将通过实例进行。在给定的集群中，有两种类型的实例：主实例和副本实例。一个集群始终有一个主实例，并且可以有 0–15 个副本实例。 |  `create-db-instance` `delete-db-instance` `describe-db-instances` `modify-db-instance` `describe-orderable-db-instance-options` `reboot-db-instance` | 
| 集群卷 | 跨三个可用区的虚拟数据库存储卷，每个可用区均有两个集群数据副本。 | 不适用 | 
|  主实例  |  支持读取和写入操作，并执行针对集群卷的所有数据修改。每个集群均有一个主实例。  | 不适用 | 
|  副本实例  |  仅支持读取操作。除主实例之外，每个 Amazon DocumentDB 集群最多可拥有 15 个副本实例。多个副本共同分担读取工作负载。通过将副本置于单独的可用区中，您还可以提高数据库可用性。  | 不适用 | 
|  集群端点  |  Amazon DocumentDB 集群的一个端点，用于连接到该集群的当前主实例。每个 Amazon DocumentDB 集群都具有一个集群端点和一个主实例。  | 不适用 | 
|  读取器端点  |  Amazon DocumentDB 集群的一个端点，用于连接到该集群的可用副本之一。每个 Amazon DocumentDB 集群都具有一个读取器端点。如果有多个副本，则读取器端点会将每个连接请求定向到 Amazon DocumentDB 副本之一。  | 不适用 | 
|  实例端点  |  Amazon DocumentDB 集群中的实例的一个端点，用于连接到该特定实例。集群中的每个实例，不论其实例类型，都有各自唯一的实例端点。  | 不适用 | 

# Amazon DocumentDB 集群设置
<a name="db-cluster-parameters"></a>

创建或修改集群时，了解哪些参数不可改变，哪些参数在创建集群后可修改，这一点很重要。下表列出了特定于集群的所有设置或参数。如表中所示，有些是可修改的，有些不可修改。

**注意**  
这些设置不应与 Amazon DocumentDB 集群参数组及其参数混淆。有关集群参数组的更多信息，请参阅 [管理 Amazon DocumentDB 集群参数组](cluster_parameter_groups.md)。


| 参数 | 可修改 | 备注 | 
| --- | --- | --- | 
| DBClusterIdentifier | 是 |  命名约束： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/db-cluster-parameters.html)  | 
| Engine | 否 | 必须是 docdb。 | 
| BackupRetentionPeriod | 是 | 必须介于 [1-35] 天之间。 | 
| DBClusterParameterGroupName | 是 |  命名约束： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/db-cluster-parameters.html)  | 
| DBSubnetGroupName | 否 | 创建集群后，无法修改集群的子网。 | 
| EngineVersion | 否 | 值可以是 5.0.0（默认）、4.0.0 或 3.6.0。 | 
| KmsKeyId | 否 | 如果您选择加密集群，则无法更改用于加密集群的密 AWS KMS 钥。 | 
| MasterUsername | 否 |  创建集群后，无法修改 `MasterUsername`。 命名约束： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/db-cluster-parameters.html)  | 
| MasterUserPassword | 是 |  约束： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/db-cluster-parameters.html)  | 
| Port | 是 | 端口号适用于集群中的所有实例。 | 
| PreferredBackupWindow | 支持 |  | 
| PreferredMaintenanceWindow | 是 |  | 
| StorageEncrypted | 否 | 如果选择加密集群，则不能对其进行加密。 | 
| StorageType | 是 |  数据库集群的存储类型：标准 (`standard`) 或 I/O 优化 (`iopt1`)。 默认值：`standard` 可以使用 `CreateDBCluster` 和 `ModifyDBCluster` 配置此参数。 有关更多信息，请参阅 [Amazon DocumentDB 集群存储配置](db-cluster-storage-configs.md)。  | 
| Tags | 是 |  | 
| VpcSecurityGroupIds | 否 | 创建集群后，您不能修改集群所在的 VPC。 | 

# Amazon DocumentDB 集群存储配置
<a name="db-cluster-storage-configs"></a>

从 Amazon DocumentDB 5.0 开始，基于实例的集群支持以下两种存储配置类型：
+ **亚马逊 DocumentDB 标准存储**：专为低至中度 I/O 消耗的客户而设计。如果您预计 I/O 成本将低于亚马逊文档数据库集群总量的 25%，那么此选择可能非常适合您。使用 Amazon DocumentDB 标准存储配置，除了实例费用和存储费用外，您还需要 pay-per-request I/O 按比例计费。这意味着您的账单可能会根据周期和使用量有所不同。该配置经过量身定制，可适应您的应用不断变 I/O 化的需求。
+ **Amazon DocumentDB I/O 优化存储**：专为优先考虑价格可预测性或拥有密集型应用程序的客户而设计。 I/O 运I/O-optimized configuration offers improved performance, increased throughput, and reduced latency for customers with I/O intensive workloads. If you expect your I/O costs to exceed 25% of your total Amazon DocumentDB cluster costs, this option offers enhanced price performance. With the Amazon DocumentDB I/O-optimized storage configuration, you won't be charged based on I/O营，确保每个计费周期的成本可预测。该配置可以稳定成本，同时改善性能。

您可以每 30 天将现有数据库集群切换到 Amazon DocumentDB。I/O-optimized storage. You can switch back to Amazon DocumentDB standard storage at any time. The next date to modify the storage configuration to I/O经过优化的可以通过集群配置页面 AWS 管理控制台 中的`describe-db-clusters`命令 AWS CLI 或使用命令进行跟踪。

您可以创建包含 Amazon DocumentDB I/O 优化配置的新数据库集群，也可以通过点击几下[AWS 管理控制台](https://console.aws.amazon.com/docdb/)、在 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) 中更改单个参数或通过以下方式转换现有数据库集群。[AWS SDKs](https://aws.amazon.com/developer/tools/)在修改存储配置期间或修改之后，无需停机或重启实例。

![\[图片：Amazon DocumentDB 标准存储和优化存储差异表。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/io-diagram-1.png)


## 创建 I/O 优化集群
<a name="w2aac33c11c13c15"></a>



------
#### [ Using the AWS 管理控制台 ]

使用 AWS 管理控制台创建或修改 I/O 优化集群：

1. 在 Amazon DocumentDB 管理控制台的**集群**下，选择**创建**或选择集群，再选择**操作**，然后选择**修改**。

1. 如果要创建新的集群，请确保在**集群类型**部分中选择**基于实例的集群**（此为默认选项）。  
![\[图片：含有集群类型选项的控制台屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/create-cluster/cc-type.png)

1. 在**配置**部分的**集群存储配置**下，选择 **Amazon DocumentDB I/O 优化**。  
![\[图片：含有集群存储配置选项的控制台屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/storage-config-1.png)

1. 完成集群的创建或修改，并选择**创建集群**或**修改集群**。

   有关创建集群的完整流程，请参阅 [使用创建集群和主实例 AWS 管理控制台](db-cluster-create.md#db-cluster-create-con)。

   有关修改集群的完整流程，请参阅 [修改 Amazon DocumentDB 集群](db-cluster-modify.md)。

------
#### [ Using the AWS CLI ]

使用 AWS CLI创建 I/O 优化集群：

在以下示例中，用您自己的信息替换每个*user input placeholder*示例。

对于 Linux、macOS 或 Unix：

```
aws docdb create-db-cluster \
      --db-cluster-identifier sample-cluster \
      --engine docdb \
      --engine-version 5.0.0 \
      --storage-type iopt1 \
      --deletion-protection \
      --master-username username \
      --master-user-password password
```

对于 Windows：

```
aws docdb create-db-cluster ^
      --db-cluster-identifier sample-cluster ^
      --engine docdb ^
      --engine-version 5.0.0 ^
      --storage-type iopt1 ^
      --deletion-protection ^
      --master-username username ^
      --master-user-password password
```

------

## 确定存储配置的成本分析
<a name="w2aac33c11c13c17"></a>

借助 Amazon DocumentDB，您可以灵活地为自己拥有的每个数据库集群选择存储配置。为了在标准集群和 I/O 优化集群之间正确分配集群，可以按集群跟踪 Amazon DocumentDB 成本。为此，您可以向现有集群添加标签，在 [AWS 账单与成本管理 控制面板](https://aws.amazon.com/pricing/)中启用成本分配标签，并在 [AWS Cost Explorer Service](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) 中分析给定集群的成本。有关成本分析的信息，请参阅博客“[使用成本分配标签](https://aws.amazon.com/blogs/database/using-cost-allocation-tags-with-amazon-documentdb-with-mongodb-compatibility/)”。

# 确定集群的状态
<a name="db-cluster-status"></a>

您可以使用 AWS 管理控制台 或来确定集群的状态 AWS CLI。

------
#### [ Using the AWS 管理控制台 ]

使用以下步骤通过以下步骤查看您的 Amazon DocumentDB 集群的状态 AWS 管理控制台

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**集群**。

1. 在 **Cluster identifier (集群标识符)** 列中，找到您感兴趣的集群名称。然后，要查找集群的状态，请跨该行阅读至 **Status (状态)** 列，如下所示。  
![\[带显示活动状态的示例集群的集群页屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cluster-status-con.png)

------
#### [ Using the AWS CLI ]

使用 `describe-db-clusters` 操作以使用 AWS CLI查看 Amazon DocumentDB 集群的状态。

以下代码可查找集群 `sample-cluster` 的状态。

对于 Linux、macOS 或 Unix：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster  \
    --query 'DBClusters[*].[DBClusterIdentifier,Status]'
```

对于 Windows：

```
aws docdb describe-db-clusters ^
    --db-cluster-identifier sample-cluster  ^
    --query 'DBClusters[*].[DBClusterIdentifier,Status]'
```

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

```
[
    [
        "sample-cluster",
        "available"
    ]
]
```

------

# Amazon DocumentDB 集群生命周期
<a name="db-cluster-life-cycle"></a>

Amazon DocumentDB 集群的生命周期包括创建、描述、修改和删除集群。本节提供有关如何完成这些过程的信息。

**Topics**
+ [创建集群](db-cluster-create.md)
+ [描述集群](db-cluster-view-details.md)
+ [修改集群](db-cluster-modify.md)
+ [确定待处理维护](db-cluster-determine-pending-maintenance.md)
+ [更新集群的引擎版本的补丁](db-cluster-version-upgrade.md)
+ [停止和启动集群](db-cluster-stop-start.md)
+ [删除集群](db-cluster-delete.md)

# 创建 Amazon DocumentDB 集群
<a name="db-cluster-create"></a>

Amazon DocumentDB 集群由一些实例和一个表示该集群的数据的集群卷组成。集群卷作为单个虚拟卷在三个可用区之间的 6 个方向进行复制。集群包含一个主实例，以及可选的最多 15 个副本实例。

以下各节介绍如何使用 AWS 管理控制台 或创建 Amazon DocumentDB 集群。 AWS CLI然后，您可为该集群添加更多副本实例。使用控制台创建 Amazon DocumentDB 集群时，会同时自动为您创建一个主实例。如果您使用创建您的 AWS CLI Amazon DocumentDB 集群，则在集群的状态变为*可用*之后，您必须为该集群创建主实例。

## 先决条件
<a name="db-cluster-create-prerequisites"></a>

以下是创建 Amazon DocumentDB 集群的先决条件。

如果您没有 AWS 账户，请完成以下步骤来创建一个。

**要注册 AWS 账户**

1. 打开[https://portal.aws.amazon.com/billing/注册。](https://portal.aws.amazon.com/billing/signup)

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册时 AWS 账户，就会创建*AWS 账户根用户*一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

### VPC 先决条件
<a name="db-cluster-create-prerequisites-vpc"></a>

只能在 Amazon Virtual Private Cloud (Amazon VPC) 中创建 Amazon DocumentDB 集群。要在 Amazon DocumentDB 集群中使用您的 Amazon VPC，该 Amazon VPC 必须最少在两个可用区中均拥有至少一个子网。通过跨可用区分配您的集群实例，您可以确保集群中有可用的实例，避免出现可用区故障。

### 子网先决条件
<a name="db-cluster-create-prerequisites-subnet-groups"></a>

创建 Amazon DocumentDB 集群时，您必须选择一个 VPC 和该 VPC 中的对应子网组来启动您的集群。子网确定可用区以及该可用区内要用于启动实例的 IP 范围。为进行此讨论，我们将互换使用术语*子网* 和*可用区*。子网组是一组指定的子网（或可用区）。子网组可让您指定要用于启动 Amazon DocumentDB 实例的可用区。例如，在包含三个实例的集群中，为了实现高可用性，建议在单独的可用区中配置各个实例。因此，如果单个可用区出现故障，它只会影响单个实例。

Amazon DocumentDB 实例目前可在多达三个可用区中预配置。即使子网组拥有三个以上的子网，您也只能使用其中的三个子网来创建 Amazon DocumentDB 集群。因此，在创建子网组时，建议仅选择要将实例部署到的三个子网。在美国东部（弗吉尼亚州北部），您的子网组可以有六个子网（或可用区）。但是，当已预配置一个 Amazon DocumentDB 集群后，Amazon DocumentDB 将选择这些可用区中将用于预配置实例的三个可用区。

例如，假设您在创建集群时，Amazon DocumentDB 选择可用区 \$11A、1B 和 1C\$1。如果您尝试在可用区 \$11D\$1 中创建实例，API 调用将失败。但是，如果您选择在不指定特定可用区的情况下创建实例，那么 Amazon DocumentDB 会代表您选择一个可用区。Amazon DocumentDB 使用一种算法在可用区之间对实例进行负载均衡，以帮助您实现高可用性。例如，如果配置了三个实例，则在默认情况下，将在三个可用区中配置它们，而不会在单个可用区中配置。

**建议**
+ 除非您有特殊原因，否则请始终创建包含三个子网的子网组。这样做可帮助确保包含三个或更多实例的集群能够实现更高的可用性，因为将在三个可用区中预配置实例。
+ 始终将实例分散在多个可用区中以实现高可用性。切勿将集群的所有实例放在单个可用区中。
+ 由于故障转移事件随时可能发生，您不应假定主实例或副本实例始终位于特定可用区中。

### 其他先决条件
<a name="db-cluster-create-prerequisites-additional"></a>

以下是创建 Amazon DocumentDB 集群的一些其他先决条件：
+ 如果您 AWS 使用 AWS Identity and Access Management (IAM) 证书进行连接，则您的 IAM 账户必须具有授予执行 Amazon DocumentDB 操作所需权限的 IAM 策略。

  如果您使用 IAM 账户访问亚马逊 DocumentDB 控制台，则必须先使用您的 IAM 账户登录。 AWS 管理控制台 [然后前往位于 /docdb 的亚马逊 DocumentDB 控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)
+ 如果要定制您的集群的配置参数，您必须指定集群参数组和具有必需参数设置的参数组。有关创建或修改集群参数组的信息，请参阅 [管理 Amazon DocumentDB 集群参数组](cluster_parameter_groups.md)。
+ 您必须确定要为集群指定的 TCP/IP 端口号。有些公司的防火墙不允许连接到 Amazon DocumentDB 的默认端口。如果您公司的防火墙阻止该默认端口，请为您的集群选择其他端口。集群中的所有实例都使用同一端口。

## 使用创建集群和主实例 AWS 管理控制台
<a name="db-cluster-create-con"></a>

以下过程介绍了如何使用控制台启动包含一个或多个实例的 Amazon DocumentDB 集群。

### 创建集群：使用默认设置
<a name="db-cluster-create-con-basic"></a>

**要使用默认设置创建包含实例的集群，请使用 AWS 管理控制台**

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 如果您想在美国东部（弗吉尼亚北部）以外 AWS 区域 的其他地区创建集群，请从控制台右上角的列表中选择该区域。

1. 在导航窗格中，选择 **Clusters (集群)**，然后选择 **Create (创建)**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在**创建 Amazon DocumentDB 集群**页中，完成**配置**窗格。

   1. **集群标识符**：接受 Amazon DocumentDB 提供的名称，或者为您的集群输入名称，例如 **sample-cluster**。

      集群命名约束：
      + 长度为 [1-63] 个字母、数字或连字符。
      + 第一个字符必须是字母。
      + 不能以连字符结尾或包含两个连续的连字符。
      + 每个区域的 Amazon RDS、Neptune 和 Amazon DocumentDB 中的所有集群都必须是唯一 AWS 账户的。

   1. **引擎版本**-接受默认引擎版本 5.0.0，或者可以选择选择 8.0.0、4.0.0 或 3.6.0。

   1. **实例类**：接受默认值 `db.r5.large`，或者从列表中选择您需要的实例类。

   1. **实例数**：在列表中，选择要使用此集群创建的实例的数量。第一个实例为主实例，所有其他实例为只读副本实例。您可以在稍后添加和删除实例（如果需要）。默认情况下，Amazon DocumentDB 集群将以三个实例（一个主实例和两个副本）启动。

1. 完成**集群存储配置**部分。

   选择 **Amazon DocumentDB 标准**（默认）或 **Amazon DocumentDB I/O 优化**。有关更多信息，请参阅 [Amazon DocumentDB 集群存储配置](db-cluster-storage-configs.md)。

1. 完成 **Authentication (身份验证)** 窗格。

   1. **用户名**：输入主用户的名称。要登录您的集群，您必须使用主用户名称。

      主用户命名约束：
      + 长度为 [1-63] 个字母数字字符。
      + 第一个字符必须是字母。
      + 不能是数据库引擎的保留字。

   1. 请选择以下密码选项之一：
      + **托管于 AWS Secrets Manager**-如果您想自动管理您的主用户密码 AWS Secrets Manager ，请选择此选项。

        如果您选择此选项，请通过创建您自己的密钥或使用 Secrets Manager 创建的密钥来配置 KMS 密钥。
      + **自行管理**：如果您想要自行管理您的主用户密码，请选择此选项。如果选择此选项，请输入主用户的密码，然后确认该密码。要登录您的集群，您必须使用主用户密码。

        密码约束：
        + 长度为 [8-100] 个可打印 ASCII 字符。
        + 可以使用任何可打印 ASCII 字符，以下字符除外：
          + **/**（正斜杠）
          + **"**（双引号）
          + **@**（@ 符号）

1. 在屏幕的底部，选择以下选项之一：
   + 要立即创建集群，请选择 **Create cluster (创建集群)**。
   + 要不创建集群，请选择 **Cancel (取消)**。
   + 要在创建集群前进一步配置集群，请选择 **Show additional configurations (显示其他配置)**，然后在[创建集群：其他配置](#db-cluster-create-con-additional-configs)上继续。

     **Additional Configurations (其他配置)** 部分中包含的配置如下：
     + **网络设置**：默认值为使用 `default` VPC 安全组。
     + **集群选项**：默认值为使用端口 27017 和默认参数组。
     + **加密**：默认值为使用 `(default) aws/rds` 密钥启用加密。
**重要**  
集群加密后，就不能取消加密。
     + **备份**：默认值为保留备份 1 天并让 Amazon DocumentDB 选择备份时段。
     + **日志导**出-默认为不将审核日志导出到 CloudWatch 日志。
     + **维护**：默认设置是让 Amazon DocumentDB 选择维护时段。
     + **删除保护**：防止您的集群被意外删除。使用控制台创建的集群的默认设置为*已启用*。

     如果您现在接受默认设置，则可以稍后通过修改集群来更改其中的大部分。

1. 为集群的安全组启用入站连接。

   如果未更改集群的默认设置，则会使用给定区域中的默认 VPC 的默认安全组创建一个集群。要连接到 Amazon DocumentDB，您必须在端口 27017（或所选的端口）上为集群的安全组启用入站连接。

   **将入站连接添加到集群的安全组**

   1. 登录 AWS 管理控制台 并打开 Amazon EC2 控制台，网址为[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

   1. 在主窗口的**资源**部分中，选择**安全组**。  
![\[图片：资源列表中突出显示“安全组”链接选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-ec2-security-groups.png)

   1. 从安全组列表中，找到您在创建集群时使用的安全组（很可能是 *default* 安全组），然后选中安全组名称左侧的框。  
![\[图片：安全组列表中突出显示一个选中复选框的安全组。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-ec2-default-sg.png)

   1. 从**操作**菜单中，选择**编辑入站规则**，然后选择或输入规则限制。

      1. **类型**：从列表中，选择要为网络流量打开的协议。

      1. **协议**：从列表中，选择协议类型。

      1. **端口范围**：对于自定义规则，请输入端口号或端口范围。确保端口号或范围包括您在创建集群时指定的端口（默认值：27017）。

      1. **源**：指定可以到达您的实例的流量。从列表中，选择流量源。如果选择**自定义**，请指定单个 IP 地址或以 CIDR 格式表示的 IP 地址范围（例如，203.0.113.5/32）。

      1. **描述**：输入该规则的描述。

      1. 在创建完规则时，选择**保存**。

### 创建集群：其他配置
<a name="db-cluster-create-con-additional-configs"></a>

如果要接受集群的默认设置，您可以跳过以下步骤并选择 **Create cluster (创建集群)**。

1. 完成 **Network settings (网络设置)** 窗格。  
![\[屏幕截图：显示用于配置网络设置的“Network settings (网络设置)”窗格和步骤。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/create-db-cluster-console-network-settings.png)

   1. **虚拟私有云（VPC）**：在列表中，选择要在其中启动此集群的 Amazon VPC。

   1. **子网组**：在列表中，选择要用于此集群的子网组。

   1. **VPC 安全组**：在列表中为此集群选择 VPC 安全组。

1. 完成 **Cluster options (集群选项)** 窗格。  
![\[显示包含集群设置配置步骤的“Cluster options (集群选项)”窗格屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/create-db-cluster-console-cluster-options.png)

   1. **数据库端口**-使用向上和向下箭头设置应用程序用于连接到您的实例的 TCP/IP 端口。

   1. **集群参数组**：在参数组列表中，为此集群选择集群参数组。

1. 完成 **Encryption (加密)** 窗格。  
![\[显示为集群配置加密的步骤的“Encryption (加密)”窗格屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/encrypt-at-rest.png)

   1. **E ncryption-at-rest** —选择以下选项之一：
      + **启用加密**：默认值。所有静态数据都会加密。如果您选择加密您的数据，则无法撤消此操作。
      + **禁用加密**：您的数据不会被加密。

   1. **AWS KMS 密钥**-只有在加密数据时才可用。在列表中，选择要用于加密此集群中的数据的密钥。默认值为 `(default) aws/rds`。

      如果您选择 **Enter a key ARN (输入一个密钥 ARN)**，则必须为密钥输入一个 Amazon 资源名称 (ARN)。

1. 完成 **Backup (备份)** 窗格。  
![\[显示用于配置集群备份时段的步骤的“Backup (备份)”窗格屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/create-db-cluster-console-backup.png)

   1. **备份留存期**：在列表中，选择在删除此集群的自动备份前保留它们的天数。

   1. **备份时段**：设置 Amazon DocumentDB 要备份此集群的每日时间和持续时间。

      1. **开始时间**：在第一个列表中，选择开始自动备份的开始时间小时 (UTC)。在第二个列表中，选择您希望自动备份开始的时间（分钟）。

      1. **持续时间**：在该列表中，选择要向创建自动备份分配的小时数。

1. 选择要**导出到日志**的日志类型，完成日志导出 CloudWatch 窗格。  
![\[Log exports (日志导出) 窗格屏幕截图，显示了配置集群的 DML 日志记录的步骤。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/create-db-cluster-console-log-exports.png)
   + **审核日志**-选择此选项可允许将审核日志导出到 Amazon CloudWatch 日志。如果您选择 **Audit logs (审计日志)**，则必须在集群的自定义参数组中启用 `audit_logs`。有关更多信息，请参阅 [审核 Amazon DocumentDB 事件](event-auditing.md)。
   + **Profiler 日志**-选择此选项可启用将操作分析器日志导出到 Amazon Logs。 CloudWatch 如果您选择 **Profiler logs (分析器日志)**，则还必须在集群的自定义参数组中修改以下参数：
     + `profiler`：设置为 `enabled`。
     + `profiler_threshold_ms`：设置为 `[0-INT_MAX]` 之间的值，以设置分析操作的阈值。
     + `profiler_sampling_rate`：设置为 `[0.0-1.0]` 之间的值，以设置要分析的缓慢操作的百分比。

     有关更多信息，请参阅 [分析 Amazon DocumentDB 操作](profiling.md)。

1. 完成 **Maintenance (维护)** 窗格。  
![\[显示用于配置集群维护时段的步骤的“Maintenance (维护)”窗格屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/create-db-cluster-console-maintenance.png)

   1. 选择以下选项之一
     + **选择时段**：您可以指定 Amazon DocumentDB 对您的集群执行维护的周日期、UTC 开始时间和持续时间。

       1. **开始日**：在列表中，选择开始集群维护的一周中的天。

       1. **开始时间**：在列表中，选择开始维护的小时和分钟 (UTC)。

       1. **持续时间**：在列表中，选择要为集群维护分配的时长。如果无法在指定时间内完成维护，维护过程将在指定时间过后继续进行，直到完成。
     + **无首选项**：Amazon DocumentDB 为执行维护选择一周中的天、开始时间和持续时间。

1. 如果您要将一个或多个标签添加到此集群，请填写**标签**窗格。  
![\[“启用删除保护” 复选框（处于选中状态）的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/create-db-cluster-console-tags.png)

   对于每个要添加到集群的标签，请重复以下步骤。一个集群最多可以有 10 个标签。

   1. 选择**添加标签**。

   1. 键入标签的**键**。

   1. （可选）键入标签的**值**。

   要删除标签，请选择 **Remove tag**（删除标签）。

1. 在使用控制台创建集群时，将默认启用**删除保护**。要禁用删除保护，请清除**启用删除保护**。启用后，删除保护可以防止删除集群。要删除某个受到删除保护的集群，您必须先修改集群以禁用删除保护。  
![\[“启用删除保护” 复选框（处于选中状态）的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/create-db-cluster-console-deletion-protection.png)

   有关删除保护的更多信息，请参阅 [删除 Amazon DocumentDB 集群](db-cluster-delete.md)。

1. 要创建集群，请选择**创建集群**。否则，选择**取消**。

## 使用创建集群 AWS CLI
<a name="db-cluster-create-cli"></a>

以下过程介绍如何使用启动亚马逊 DocumentDB 集群和创建 Amazon DocumentDB 副本。 AWS CLI 

**参数**
+ **--db-cluster-identifier**：必填项。标识此集群的一个小写字符串。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/db-cluster-create.html)
+ **--engine**：必填项。必须是 **docdb**。
+ **--deletion-protection \$1 --no-deletion-protection**：可选。启用删除保护后，可以防止删除集群。使用时 AWS CLI，默认设置是禁用删除保护。

  有关删除保护的更多信息，请参阅 [删除 Amazon DocumentDB 集群](db-cluster-delete.md)。
+ **--storage-type standard \$1 iopt1**：可选。默认值：**standard**。集群存储配置。有效值为 `standard`（标准）或 `iopt1`（I/O 优化）。
+ **--master-username**：必填项。用于对用户进行身份验证的用户名。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/db-cluster-create.html)
+ **--master-user-password**：可选。用于对用户进行身份验证的用户密码。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/db-cluster-create.html)
+ **--manage-master-user-password**：可选。Amazon DocumentDB 会生成主用户密码并在其整个生命周期中在 Secrets Manager 中对其进行管理。

有关更多参数，请参阅[CreateDBCluster](API_CreateDBCluster.md)。

**要启动 Amazon DocumentDB 集群，请使用 AWS CLI**

要创建 Amazon DocumentDB 集群，请调用。`create-db-cluster` AWS CLI以下 AWS CLI 命令创建一个名为`sample-cluster`且启用了删除保护的 Amazon DocumentDB 集群。有关删除保护的更多信息，请参阅 [删除 Amazon DocumentDB 集群](db-cluster-delete.md)。

此外，`--engine-version` 是一个默认成主引擎最新版本的可选参数。当前的默认引擎版本为 5.0.0（注意：亚马逊 DocumentDB 8.0 可用，但必须明确指定）。发布主引擎新版本时，`--engine-version` 的默认引擎版本将更新，以反映最近的主引擎版本。因此，对于生产工作负载，尤其是那些依赖脚本、自动化或 CloudFormation 模板的工作负载，我们建议您明确指定预期的主要版本。`--engine-version`

**注意**  
如果未指定 `db-subnet-group-name` 或 `vpc-security-group-id`，则 Amazon DocumentDB 将使用给定区域的默认子网组和 Amazon VPC 安全组。

对于 Linux、macOS 或 Unix：

```
aws docdb create-db-cluster \
      --db-cluster-identifier sample-cluster \
      --engine docdb \
      --engine-version 5.0.0 \
      --deletion-protection \
      --master-username masteruser \
      --master-user-password password
```

对于 Windows：

```
aws docdb create-db-cluster ^
      --db-cluster-identifier sample-cluster ^
      --engine docdb ^
      --engine-version 5.0.0 ^
      --deletion-protection ^
      --master-username masteruser ^
      --master-user-password password
```

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

```
{
    "DBCluster": {
        "StorageEncrypted": false,
        "DBClusterMembers": [],
        "Engine": "docdb",
        "DeletionProtection" : "enabled",
        "ClusterCreateTime": "2018-11-26T17:15:19.885Z",
        "DBSubnetGroup": "default",
        "EngineVersion": "5.0.0",
        "MasterUsername": "masteruser",
        "BackupRetentionPeriod": 1,
        "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster",
        "DBClusterIdentifier": "sample-cluster",
        "MultiAZ": false,
        "DBClusterParameterGroup": "default.docdb5.0",
        "PreferredBackupWindow": "09:12-09:42",
        "DbClusterResourceId": "cluster-KQSGI4MHU4NTDDRVNLNTU7XVAY",
        "PreferredMaintenanceWindow": "tue:04:17-tue:04:47",
        "Port": 27017,
        "Status": "creating",
        "ReaderEndpoint": "sample-cluster.cluster-ro-sfcrlcjcoroz.us-east-1.docdb.amazonaws.com",
        "AssociatedRoles": [],
        "HostedZoneId": "ZNKXTT8WH85VW",
        "VpcSecurityGroups": [
            {
                "VpcSecurityGroupId": "sg-77186e0d",
                "Status": "active"
            }
        ],
        "AvailabilityZones": [
            "us-east-1a",
            "us-east-1c",
            "us-east-1e"
        ],
        "Endpoint": "sample-cluster.cluster-sfcrlcjcoroz.us-east-1.docdb.amazonaws.com"
    }
}
```

创建集群需要几分钟时间。您可以使用 AWS 管理控制台 或 AWS CLI 来监控集群的状态。有关更多信息，请参阅 [监控 Amazon DocumentDB 集群的状态](monitoring_docdb-cluster_status.md)。

**重要**  
当您使用创建 Amazon DocumentDB 集群时，不会创建任何实例。 AWS CLI 因此，您必须显式创建主实例和所需的任何副本实例。您可以使用控制台或创建 AWS CLI 实例。有关更多信息，请参阅 [向集群添加 Amazon DocumentDB 实例](db-instance-add.md)。

有关更多信息，请参阅 *Amazon DocumentDB API 参考*中的 [https://docs.aws.amazon.com/documentdb/latest/developerguide/API_CreateDBCluster.html](https://docs.aws.amazon.com/documentdb/latest/developerguide/API_CreateDBCluster.html)。

# 描述 Amazon DocumentDB 集群
<a name="db-cluster-view-details"></a>

您可以使用 Amazon DocumentDB 管理控制台或查看与您的 Amazon DocumentDB 集群相关的连接终端节点 VPCs、安全组和参数组等详细信息。 AWS CLI 

有关更多信息，请参阅下列内容：
+ [监控 Amazon DocumentDB 集群的状态](monitoring_docdb-cluster_status.md)
+ [查找集群的端点](db-cluster-endpoints-find.md)

------
#### [ Using the AWS 管理控制台 ]

通过以下过程使用控制台查看指定 Amazon DocumentDB 集群的详细信息。

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在集群列表中，选择要查看其详细信息的集群的名称。有关集群的信息分为以下几组：
   + **摘要**：有关集群的一般信息，包括引擎版本、集群状态、待定维护及其参数组的状态。
   + **连接和安全**：**连接**部分列出要使用 mongo Shell 或应用程序连接到该集群的连接端点。**Security Groups (安全组)** 部分列出与此集群关联的安全组及其 VPC ID 和描述。
   + **配置**：**集群详细信息**部分列出有关集群的详细信息，包括集群的 Amazon 资源名称（ARN）、端点和参数组。其中还列出集群的备份信息、维护详细信息以及安全和网络设置。**Cluster instances (集群实例)** 部分列出属于该集群的实例，其中包括每个实例的角色和集群参数组状态。
   + **监控**-此集群的 Amazon CloudWatch 日志指标。有关更多信息，请参阅 [使用以下方式监控亚马逊 DocumentDB CloudWatch](cloud_watch.md)。
   + **事件和标签**：**近期事件**部分列出该集群的近期事件。Amazon DocumentDB 记录与集群、实例、快照、安全组和集群参数组相关的事件。此信息包括与每个事件关联的日期、时间和消息。**Tags (标签)** 部分列出附加该集群的标签。

------
#### [ Using the AWS CLI ]

要使用查看您的 Amazon DocumentDB 集群的详细信息 AWS CLI，请使用如下示例所示的`describe-db-clusters`命令。有关更多信息，请参阅 *Amazon DocumentDB 资源管理 API 参考*中的 [https://docs.aws.amazon.com/documentdb/latest/developerguide/API_DescribeDBClusters.html](https://docs.aws.amazon.com/documentdb/latest/developerguide/API_DescribeDBClusters.html)。

**注意**  
对于某些管理功能（如集群和实例生命周期管理），Amazon DocumentDB 利用与 Amazon RDS 共享的操作技术。`filterName=engine,Values=docdb` 筛选器参数仅返回 Amazon DocumentDB 集群。

**Example**  
**示例 1：列出所有 Amazon DocumentDB 集群**  
以下 AWS CLI 代码列出了某个区域中所有 Amazon DocumentDB 集群的详细信息。  

```
aws docdb describe-db-clusters --filter Name=engine,Values=docdb
```
此操作的输出将类似于下文。  

```
{
    "DBClusters": [
        {
            "AvailabilityZones": [
                "us-east-1c",
                "us-east-1b",
                "us-east-1a"
            ],
            "BackupRetentionPeriod": 1,
            "DBClusterIdentifier": "sample-cluster-1",
            "DBClusterParameterGroup": "sample-parameter-group",
            "DBSubnetGroup": "default",
            "Status": "available",
            ...
        },
        {
            "AvailabilityZones": [
                "us-east-1c",
                "us-east-1b",
                "us-east-1a"
            ],
            "BackupRetentionPeriod": 1,
            "DBClusterIdentifier": "sample-cluster-2",
            "DBClusterParameterGroup": "sample-parameter-group",
            "DBSubnetGroup": "default",
            "Status": "available",
            ...
        },
        {
            "AvailabilityZones": [
                "us-east-1c",
                "us-east-1b",
                "us-east-1a"
            ],
            "BackupRetentionPeriod": 1,
            "DBClusterIdentifier": "sample-cluster-3",
            "DBClusterParameterGroup": "sample-parameter-group",
            "DBSubnetGroup": "default",
            "Status": "available",
            ...
        }
    ]
}
```

**Example**  
**示例 2：列出指定 Amazon DocumentDB 集群的所有详细信息**  
以下 AWS CLI 代码列出了集群的详细信息`sample-cluster`。  
对于 Linux、macOS 或 Unix：  

```
aws docdb describe-db-clusters \
   --filter Name=engine,Values=docdb \
   --db-cluster-identifier sample-cluster
```
对于 Windows：  

```
aws docdb describe-db-clusters ^
   --filter Name=engine,Values=docdb ^
   --db-cluster-identifier sample-cluster
```
此操作的输出将类似于下文。  

```
{
    "DBClusters": [
        {
            "AllocatedStorage": 1,
            "AvailabilityZones": [
                "us-east-1c",
                "us-east-1a",
                "us-east-1d"
            ],
            "BackupRetentionPeriod": 2,
            "DBClusterIdentifier": "sample-cluster",
            "DBClusterParameterGroup": "sample-parameter-group",
            "DBSubnetGroup": "default",
            "Status": "available",
            "EarliestRestorableTime": "2023-11-07T22:34:08.148000+00:00",
            "Endpoint": "sample-cluster.node.us-east-1.amazon.com",
            "ReaderEndpoint": "sample-cluster.node.us-east-1.amazon.com",
            "MultiAZ": false,
            "Engine": "docdb",
            "EngineVersion": "5.0.0",
            "LatestRestorableTime": "2023-11-10T07:21:16.772000+00:00",
            "Port": 27017,
            "MasterUsername": "chimeraAdmin",
            "PreferredBackupWindow": "22:22-22:52",
            "PreferredMaintenanceWindow": "sun:03:01-sun:03:31",
            "ReadReplicaIdentifiers": [],
            "DBClusterMembers": [
                {
                    "DBInstanceIdentifier": "sample-instance-1",
                    "IsClusterWriter": true,
                    "DBClusterParameterGroupStatus": "in-sync",
                    "PromotionTier": 1
                },
                {
                    "DBInstanceIdentifier": "sample-instance-2",
                    "IsClusterWriter": true,
                    "DBClusterParameterGroupStatus": "in-sync",
                    "PromotionTier": 1
                },
                
            ],
            "VpcSecurityGroups": [
                {
                    "VpcSecurityGroupId": "sg-9084c2ec",
                    "Status": "active"
                }
            ],
            "HostedZoneId": "Z06853723JYKYBXTJ49RB",
            "StorageEncrypted": false,
            "DbClusterResourceId": "cluster-T4LGLANHVAPGQYYULWUDKLVQL4",
            "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster",
            "AssociatedRoles": [],
            "IAMDatabaseAuthenticationEnabled": false,
            "ClusterCreateTime": "2023-11-06T18:05:41.568000+00:00",
            "EngineMode": "provisioned",
            "DeletionProtection": false,
            "HttpEndpointEnabled": false,
            "CopyTagsToSnapshot": false,
            "CrossAccountClone": false,
            "DomainMemberships": [],
            "TagList": [],
            "StorageType": "iopt1",
            "AutoMinorVersionUpgrade": false,
            "NetworkType": "IPV4",
            "IOOptimizedNextAllowedModificationTime": "2023-12-07T18:05:41.580000+00:00"
        }
    ]
}
```

**Example**  
**示例 3：列出 Amazon DocumentDB 集群的指定详细信息**  
要使用列出集群详细信息的子集，请添加一个 AWS CLI`--query`，指定要列出`describe-db-clusters`操作要列出的集群成员。`--db-cluster-identifier` 参数是要显示其详细信息的特定集群的标识符。有关查询的更多信息，请参阅 *AWS Command Line Interface 用户指南*中的[如何使用 `--query` 选项筛选输出](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html#controlling-output-filter)。  
以下示例列出 Amazon DocumentDB 集群中的实例。  
对于 Linux、macOS 或 Unix：  

```
aws docdb describe-db-clusters \
    --filter Name=engine,Values=docdb \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[*].[DBClusterMembers]'
```
对于 Windows：  

```
aws docdb describe-db-clusters ^
    --filter Name=engine,Values=docdb ^
    --db-cluster-identifier sample-cluster ^
    --query 'DBClusters[*].[DBClusterMembers]'
```
此操作的输出将类似于下文。  

```
[
    [
        [
            {
                "DBInstanceIdentifier": "sample-instance-1",
                "IsClusterWriter": true,
                "DBClusterParameterGroupStatus": "in-sync",
                "PromotionTier": 1
            },
            {
                "DBInstanceIdentifier": "sample-instance-2",
                "IsClusterWriter": false,
                "DBClusterParameterGroupStatus": "in-sync",
                "PromotionTier": 1
            }
        ]
    ]
]
```

------

# 修改 Amazon DocumentDB 集群
<a name="db-cluster-modify"></a>

要修改集群，该集群必须处于 *可用* 状态。您无法修改已停止的集群。如果集群已停止，则首先启动集群，等待集群进入*可用*状态，然后进行所需修改。有关更多信息，请参阅 [停止和启动 Amazon DocumentDB 集群](db-cluster-stop-start.md)。

------
#### [ Using the AWS 管理控制台 ]

通过以下过程使用控制台修改特定的 Amazon DocumentDB 集群。

**修改 Amazon DocumentDB 集群**

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 通过选择集群名称左侧的按钮，指定要修改的集群。

1. 选择 **Actions (操作)**，然后选择 **Modify (修改)**。

1. 在 **Modify Cluster: cluster-name (修改集群: cluster-name)** 窗格中，进行所需更改。您可以更改以下方面：
   + **集群规范**：集群的名称、安全组和凭证管理。
   + **集群存储配置**：集群的数据存储模式。在“标准配置”和“I/O 优化配置”之间进行选择。
   + **集群选项**：集群的端口和参数组。
   + **备份**：集群的备份留存期和备份时段。
   + **日志导出**：启用或禁用导出审计日志或分析器日志。
   + **维护**：设置集群的维护时段。
   + **删除保护**：对集群启用或禁用删除保护。默认情况下，将启用删除保护。

1. 完成后，选择 **Continue (继续)** 以查看更改摘要。

1. 如果您对所做更改满意，可以选择 **Modify cluster (修改集群)** 以修改集群。或者，您可以选择 **Back (返回)** 或 **Cancel (取消)** 来编辑或取消您的更改。

需要几分钟时间才能应用更改。只有在实例状态为 *available (可用)* 时，才能使用集群。您可以使用控制台或 AWS CLI监控集群状态。有关更多信息，请参阅 [监控 Amazon DocumentDB 集群的状态](monitoring_docdb-cluster_status.md)。

------
#### [ Using the AWS CLI ]

使用 `modify-db-cluster` 操作以使用 AWS CLI修改指定的集群。有关更多信息，请参阅 *Amazon DocumentDB API 参考*中的 [https://docs.aws.amazon.com/documentdb/latest/developerguide/API_ModifyDBCluster.html](https://docs.aws.amazon.com/documentdb/latest/developerguide/API_ModifyDBCluster.html)。

**参数**
+ **--db-cluster-identifier**：必填项。您要修改的 Amazon DocumentDB 集群的标识符。
+ **--backup-retention-period**：可选。自动备份的保留天数。有效值为 1-35。
+ **--storage-type**：可选。集群存储配置。有效值为 `standard`（标准）或 `iopt1`（I/O 优化）。
+ **--db-cluster-parameter-group-name**：可选。用于集群的集群参数组的名称。
+ **--manage-master-user-password**：可选。Amazon DocumentDB 会生成主用户密码并在其整个生命周期中在 Secrets Manager 中对其进行管理。
+ **--rotate-master-user-password**：可选。Secrets Manager 会为现有密钥生成一个新的密钥版本。密钥的新版本包含新的主用户密码。Amazon DocumentDB 会更改集群的主用户密码以匹配新密钥版本的密码。

  轮换主密码时必须指定 **--apply-immediately** 选项。
+ **--master-user-password**：可选。主数据库用户的新密码。

  密码约束：
  + 长度为 [8–100] 个可打印 ASCII 字符。
  + 可以使用任何可打印 ASCII 字符，以下字符除外：
    + **/**（正斜杠）
    + **"**（双引号）
    + **@**（@ 符号）
+ **--new-db-cluster-identifier**：可选。重命名集群时集群的新集群标识符。此值以一个小写字符串存储。

  命名约束：
  + 长度为 [1-63] 个字母、数字或连字符。
  + 第一个字符必须是字母。
  + 不能以连字符结尾或包含两个连续的连字符。
  + 每个区域的 Amazon RDS、Amazon Neptune 和 Amazon DocumentDB 中的所有集群都必须是唯一 AWS 账户的。
+ **--preferred-backup-window**：可选。创建自动备份的每日时间范围，以通用协调时间 (UTC) 表示。
  + 格式：`hh24:mm-hh24:mm`
+ **--preferred-maintenance-window**：可选。可能进行系统维护的每周时间范围，以 UTC 表示。
  + 格式：`ddd:hh24:mm-ddd:hh24:mm`
  + 有效值：`Sun`、`Mon`、`Tue`、`Wed`、`Thu`、`Fri` 和 `Sat`。
+ **--deletion-protection** 或 **--no-deletion-protection**：可选。是否应在此集群上启用删除保护。删除保护可以防止集群被意外删除，直到修改集群以禁用删除保护。有关更多信息，请参阅 [删除 Amazon DocumentDB 集群](db-cluster-delete.md)。
+ **--apply-immediately** 或 **--no-apply-immediately**：使用 `--apply-immediately` 可立即进行更改。使用 `--no-apply-immediately` 在集群的下一个维护时段期间进行更改。

**Example**  
以下代码将更改集群 `sample-cluster` 的备份保留期。  
对于 Linux、macOS 或 Unix：  

```
aws docdb modify-db-cluster \
       --db-cluster-identifier sample-cluster \
       --apply-immediately \
       --backup-retention-period 7
```
对于 Windows：  

```
aws docdb modify-db-cluster ^
       --db-cluster-identifier sample-cluster ^
       --apply-immediately ^
       --backup-retention-period 7
```
此操作的输出将类似于下文。  

```
{
    "DBCluster": {
        "BackupRetentionPeriod": 7,
        "DbClusterResourceId": "cluster-VDP53QEWST7YHM36TTXOPJT5YE",
        "Status": "available",
        "DBClusterMembers": [
            {
                "PromotionTier": 1,
                "DBClusterParameterGroupStatus": "in-sync",
                "DBInstanceIdentifier": "sample-cluster-instance",
                "IsClusterWriter": true
            }
        ],
        "ReadReplicaIdentifiers": [],
        "AvailabilityZones": [
            "us-east-1b",
            "us-east-1c",
            "us-east-1a"
        ],
        "ReaderEndpoint": "sample-cluster.cluster-ro-ctevjxdlur57.us-east-1.rds.amazonaws.com",
        "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster",
        "PreferredMaintenanceWindow": "sat:09:51-sat:10:21",
        "EarliestRestorableTime": "2018-06-17T00:06:19.374Z",
        "StorageEncrypted": false,
        "MultiAZ": false,
        "AssociatedRoles": [],
        "MasterUsername": "<your-master-user-name>",
        "DBClusterIdentifier": "sample-cluster",
        "VpcSecurityGroups": [
            {
                "Status": "active",
                "VpcSecurityGroupId": "sg-77186e0d"
            }
        ],
        "HostedZoneId": "Z2SUY0A1719RZT",
        "LatestRestorableTime": "2018-06-18T21:17:05.737Z",
        "AllocatedStorage": 1,
        "Port": 27017,
        "Engine": "docdb",
        "DBClusterParameterGroup": "default.docdb3.4",
        "Endpoint": "sample-cluster.cluster-ctevjxdlur57.us-east-1.rds.amazonaws.com",
        "DBSubnetGroup": "default",
        "PreferredBackupWindow": "00:00-00:30",
        "EngineVersion": "3.4",
        "ClusterCreateTime": "2018-06-06T19:25:47.991Z",
        "IAMDatabaseAuthenticationEnabled": false
    }
}
```

需要几分钟时间才能应用更改。只有在实例状态为 *available (可用)* 时，才能使用集群。您可以使用控制台或 AWS CLI监控集群状态。有关更多信息，请参阅 [监控 Amazon DocumentDB 集群的状态](monitoring_docdb-cluster_status.md)。

------

# 确定待处理维护
<a name="db-cluster-determine-pending-maintenance"></a>

您可以通过确定是否有待处理的集群维护来确定您是否拥有最新的 Amazon DocumentDB 引擎版本。

------
#### [ Using the AWS 管理控制台 ]

您可以使用 AWS 管理控制台 来确定集群是否有待维护的状态。

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 找到 **Maintenance (维护)** 列以确定集群是否有待处理维护。  
![\[显示 Amazon DocumentDB 集群维护字段的控制台屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-cluster-pending-maintenance.png)

   **None (无)** 表示集群运行的是最新的引擎版本。**Available (可用)** 表示集群有待处理维护，这可能意味着需要升级引擎。

1. 如果您的集群有待处理维护，请继续执行[对集群的引擎版本执行补丁更新](db-cluster-version-upgrade.md)中的步骤。

------
#### [ Using the AWS CLI ]

您可以使用带有以下参数的`describe-pending-maintenance-actions`操作 AWS CLI 来确定集群是否具有最新的引擎版本。

**参数**
+ **--resource-identifier**：可选。资源（集群）的 ARN。如果省略该参数，则列出所有集群的待处理维护操作。
+ **--region**：可选。要在其中运行该操作的 AWS 区域，例如 `us-east-1`。

**Example**  
对于 Linux、macOS 或 Unix：  

```
aws docdb describe-pending-maintenance-actions \
   --resource-identifier arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster \
   --region us-east-1
```
对于 Windows：  

```
aws docdb describe-pending-maintenance-actions ^
   --resource-identifier arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster ^
   --region us-east-1
```
此操作的输出将类似于下文。  

```
{
    "PendingMaintenanceActions": [
        {
            "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster",
            "PendingMaintenanceActionDetails": [
                {
                    "Description": "New feature",
                    "Action": "db-upgrade",
                    "ForcedApplyDate": "2019-02-25T21:46:00Z",
                    "AutoAppliedAfterDate": "2019-02-25T07:41:00Z",
                    "CurrentApplyDate": "2019-02-25T07:41:00Z"
                }
            ]
        }
    ]
}
```

如果您的集群有待处理维护，请继续执行[对集群的引擎版本执行补丁更新](db-cluster-version-upgrade.md)中的步骤。

------

# 对集群的引擎版本执行补丁更新
<a name="db-cluster-version-upgrade"></a>

在本节中，我们将说明如何使用 AWS 管理控制台 或部署补丁更新 AWS CLI。补丁更新是相同引擎版本内的更新（例如，将 3.6 引擎版本更新到较新的 3.6 引擎版本）。您可以立即更新它，也可以在集群的下一个维护时段进行更新。要确定您的引擎是否需要更新，请参阅 [确定待处理维护](db-cluster-determine-pending-maintenance.md)。请注意，当您应用更新时，您的集群将出现短暂停机。

**注意**  
如果您正在尝试从一个主引擎版本升级到另一个主引擎版本（例如从 3.6 升级到 5.0），请参阅 [Amazon DocumentDB 主版本就地升级](docdb-mvu.md) 或 [使用升级您的亚马逊文档数据库集群 AWS Database Migration Service](docdb-migration.versions.md)。就地主版本升级仅支持将 docdb 5.0 作为目标引擎版本。

要获取集群的引擎版本的最新补丁更新，需要满足两个配置要求：
+ 集群状态必须为*可用*。
+ 该集群必须运行较早的引擎版本。

------
#### [ Using the AWS 管理控制台 ]

以下过程使用控制台对集群的引擎版本应用补丁更新。您可以选择立即更新，也可以选择在集群的下一维护时段期间更新。

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**集群**。在集群列表中，选择要升级的集群左侧的按钮。集群状态必须为*可用*。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 从 **Actions (操作)** 菜单中，选择以下选项之一。仅当您选择的集群未运行最新的引擎版本时，才可以选择这些菜单选项。  
![\[图像：Amazon DocumentDB 升级操作\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-upgrade-action.png)
   + **立即升级**：立即启动升级过程。集群升级到最新引擎版本时，集群将离线一段时间。
   + **在下一个时段升级**：在集群的下一维护时段内启动升级过程。集群升级到最新引擎版本时，它将离线一段时间。

1. 当确认窗口打开时，选择以下选项之一：
   + **升级**：根据上一步中选择的计划将集群升级到最新引擎版本。
   + **取消**：取消集群的引擎升级并继续使用集群的当前引擎版本。

------
#### [ Using the AWS CLI ]

您可以使用 AWS CLI 和带有以下参数的`apply-pending-maintenance-action`操作将补丁更新应用于您的集群。

**参数**
+ **--resource-identifier**：必填项。您要升级的 Amazon DocumentDB 集群的 ARN。
+ **--apply-action**：必填项。允许使用以下值。要升级集群的引擎版本，请使用 `db-upgrade`。
  + **db-upgrade**
  + **system-update**
+ **--opt-in-type**：必填项。允许使用以下值。
  + `immediate`：立即应用维护操作。
  + `next-maintenance`：在下一个维护时段内应用维护操作。
  + `undo-opt-in`：取消任何现有的 `next-maintenance` 加入请求。

**Example**  
以下示例将 `sample-cluster` 的引擎版本的补丁更新到版本 4.0.0。  
对于 Linux、macOS 或 Unix：  

```
aws docdb apply-pending-maintenance-action \
   --resource-identifier arn:aws:rds:us-east-1:123456789012\:cluster:sample-cluster \
   --apply-action db-upgrade \
   --opt-in-type immediate
```
对于 Windows：  

```
aws docdb apply-pending-maintenance-action ^
   --resource-identifier arn:aws:rds:us-east-1:123456789012:cluster:sample-cluster ^
   --apply-action db-upgrade ^
   --opt-in-type immediate
```
此操作的输出将类似于以下内容：  

```
{
    "ResourcePendingMaintenanceActions": {
        "ResourceIdentifier": "arn:aws:rds:us-east-1:444455556666:cluster:docdb-2019-01-09-23-55-38",
        "PendingMaintenanceActionDetails": [
            {
                "CurrentApplyDate": "2019-02-20T20:57:06.904Z",
                "Description": "Bug fixes",
                "ForcedApplyDate": "2019-02-25T21:46:00Z",
                "OptInStatus": "immediate",
                "Action": "db-upgrade",
                "AutoAppliedAfterDate": "2019-02-25T07:41:00Z"
            }
        ]
    }
}
```

------

# 停止和启动 Amazon DocumentDB 集群
<a name="db-cluster-stop-start"></a>

停止和启动 Amazon DocumentDB 集群可以帮助您控制开发和测试环境的成本。当您不需要集群中的所有实例时，您可以暂时停止这些实例，而不是每次使用 Amazon DocumentDB 时创建和删除集群和实例。然后，当您恢复测试时，可以再次启动它们。

**Topics**
+ [停止和启动集群概述](#db-cluster-stop-start-overview)
+ [可以在已停止的集群上执行的操作](#db-cluster-stopped-operations)

## 停止和启动集群概述
<a name="db-cluster-stop-start-overview"></a>

在不需要使用 Amazon DocumentDB 集群期间，您可以同时停止该集群中的所有实例。然后，您可以在需要使用时再次启动集群。启动和停止简化了用于开发、测试或不需要持续可用性的类似活动的集群的设置和停用过程。无论集群中有多少实例，您都可以使用 AWS 管理控制台 或通过单个操作停止和启动集群。 AWS CLI 

当您的集群停止后，集群存储卷保持不变。您只需在指定的保留时段内为集群存储、手动快照和自动备份存储付费。您无需为任何实例小时数付费。Amazon DocumentDB 会在七天后自动重新启动您的集群，这样一来您的集群就可以及时获得任何所需的维护更新。当您的集群在 7 天后启动时，您将再次开始为集群中的实例付费。当您的集群停止时，您无法查询您的存储卷，因为查询需要实例处于可用状态。

当 Amazon DocumentDB 集群停止后，不能以任何方式修改该集群或其实例。这包括添加或删除实例，或者删除集群。

------
#### [ Using the AWS 管理控制台 ]

以下过程显示如何停止有一个或多个实例处于可用状态的集群或启动已停止的集群。

**停止或启动 Amazon DocumentDB 集群**

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在集群列表中，选择要停止或启动的集群名称左侧的按钮。

1. 选择**操作**，然后选择您要在集群上执行的操作。
   + 如果您要停止集群且集群可用，则：

     1. 选择**停止**。  
![\[图像：停止集群\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cluster-stop.png)

        为避免激活故障转移机制，停止操作先停止副本实例，然后停止主实例。

     1. 在确认对话框中，确认您要通过选择 **Stop cluster (停止集群)** 停止该集群；或者要保持集群运行，则选择**取消**。  
![\[图像：启动集群\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cluster-stop-confirm.png)
   + 如果您要启动集群且集群处于停止状态，则选择**启动**。  
![\[图像：启动集群\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cluster-start.png)

1. 监控集群的状态及其实例。如果您启动集群，则当集群及其实例处于*可用*时，您可以继续使用集群。有关更多信息，请参阅 [确定集群的状态](db-cluster-status.md)。  
![\[图像：集群停止和启动的状态\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cluster-stop-start-status.png)

------
#### [ Using the AWS CLI ]

以下代码示例显示如何停止有一个或多个实例处于可用状态的集群或启动已停止的集群。

要使用停止具有一个或多个可用实例的集群 AWS CLI，请使用`stop-db-cluster`操作。要启动已停止的集群，请使用 `start-db-cluster` 操作。这两个操作都使用 `--db-cluster-identifier` 参数。

**参数：**
+ **--db-cluster-identifier**：必填项。要停止或启动的集群的名称。

**Example — 要停止集群，请使用 AWS CLI**  
以下代码停止集群 `sample-cluster`。集群必须有一个或多个实例处于可用状态。  
对于 Linux、macOS 或 Unix：  

```
aws docdb stop-db-cluster \
   --db-cluster-identifier sample-cluster
```
对于 Windows：  

```
aws docdb stop-db-cluster ^
   --db-cluster-identifier sample-cluster
```

**Example — 要启动集群，请使用 AWS CLI**  
下面的代码启动集群 `sample-cluster`。集群当前必须处于停止状态。  
对于 Linux、macOS 或 Unix：  

```
aws docdb start-db-cluster \
   --db-cluster-identifier sample-cluster
```
对于 Windows：  

```
aws docdb start-db-cluster ^
   --db-cluster-identifier sample-cluster
```

------

## 可以在已停止的集群上执行的操作
<a name="db-cluster-stopped-operations"></a>

当 Amazon DocumentDB 集群停止时，您可以 point-in-time恢复到指定的自动备份保留时间范围内的任何位置。有关进行 point-in-time恢复的详细信息，请参阅[还原到某个时间点](backup_restore-point_in_time_recovery.md)。

在停止 Amazon DocumentDB 集群后，您无法修改该集群或其任何实例的配置。您也无法在该集群中添加或删除实例，或者，如果仍具有任何关联的实例，则无法删除该集群。您必须在执行任何此类管理操作之前启动该集群。

仅当再次启动后， Amazon DocumentDB 才会将任何计划的维护应用于停止的集群。七天后，Amazon DocumentDB 自动启动停止的集群，以使其维护状态不会落后太多。当集群重新启动后，您将再次开始为集群中的实例付费。

集群停止后，Amazon DocumentDB 不会执行任何自动备份，也不会延长备份留存期。

# 删除 Amazon DocumentDB 集群
<a name="db-cluster-delete"></a>

您可以使用 AWS 管理控制台 或删除 Amazon DocumentDB 集群。 AWS CLI要删除集群，集群必须处于*可用* 状态，且不得有任何与其关联的实例。如果集群已停止，则首先启动集群，等待集群进入*可用* 状态，然后删除集群。有关更多信息，请参阅 [停止和启动 Amazon DocumentDB 集群](db-cluster-stop-start.md)。

## 删除保护
<a name="db-cluster-deletion-protection"></a>

为了防止您的集群遭到意外删除，您可以启用*删除保护*。在使用控制台创建集群时，将默认启用删除保护。但是，如果您使用 AWS CLI创建集群，将默认禁用删除保护。

Amazon DocumentDB 为集群实施删除保护，不论您是使用控制台还是 AWS CLI来执行删除操作。如果已启用删除保护，则无法删除集群。要删除启用了删除保护的实例，首先请修改该集群并禁用删除保护。

当在集群上启用数据保护的情况下使用控制台时，无法删除该集群的最后一个实例，因为这样也会删除集群。您可以使用 AWS CLI删除受删除保护的集群的最后一个实例。但是，集群本身仍然存在，您的数据将被保留。您可以通过为集群创建新实例来访问数据。有关启用和禁用删除保护的更多信息，请参阅：
+ [创建 Amazon DocumentDB 集群](db-cluster-create.md)
+ [修改 Amazon DocumentDB 集群](db-cluster-modify.md)

------
#### [ Using the AWS 管理控制台 ]

要使用删除集群 AWS 管理控制台，必须禁用删除保护。

**确定集群是否已启用删除保护：**

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 请注意，在集群导航框中，**集群标识符**列既显示集群又显示实例。实例列于集群下方，类似于以下屏幕截图。  
![\[图片：集群导航框中显示一列现有集群链接及其对应的实例链接。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/clusters.png)

1. 选择集群的名称，然后选择 **Configuration (配置)** 选项卡。在 **Cluster details (集群详细信息)** 部分中，找到 **Deletion protection (删除保护)**。如果已启用删除保护，则修改集群以禁用删除保护。有关修改集群的信息，请参阅 [修改 Amazon DocumentDB 集群](db-cluster-modify.md)。

   禁用**删除保护**后，您就可以删除该集群了。

**删除集群：**

1. 在导航窗格中，选择**集群**。

1. 通过检查**集群标识符**列下方是否列有实例，来确定集群是否具有任何实例。在删除集群之前，必须先删除其所有实例。有关更多信息，请参阅 [删除 Amazon DocumentDB 实例](db-instance-delete.md)。

1. 根据您的集群是否有任何实例，请执行以下步骤之一。
   + 如果集群没有实例，请选择集群名称左侧的按钮，然后选择 **Actions (操作)**。从下拉菜单中，选择**删除**。填写**删除 <集群名称>** 对话框，然后选择**删除**。
   + 如果集群具有一个或多个实例，请执行以下操作：

     1. 在导航窗格中，选择**集群**。

     1. 通过选中集群名称左侧的复选框来删除集群的每个实例。选择 ** Actions (操作)**，然后选择 **Delete (删除)**。填写**删除 <集群名称>** 对话框，然后选择**删除**。

        当您删除最后一个实例时，集群也将被删除。有关删除实例的更多信息，请参阅 [删除 Amazon DocumentDB 实例](db-instance-delete.md)。

删除集群需要几分钟时间。要监控集群的状态，请参阅[监控 Amazon DocumentDB 集群的状态](monitoring_docdb-cluster_status.md)。

------
#### [ Using the AWS CLI ]

您不能删除具有任何关联实例的集群。要确定哪些实例与您的集群关联，请运行 `describe-db-clusters` 命令并删除集群的所有实例。然后，在需要时禁用集群的删除保护，最后删除集群。

1. **首先，删除集群的所有实例。**

   要确定需要删除的实例，请运行以下命令。

   ```
   aws docdb describe-db-clusters \
       --db-cluster-identifier sample-cluster \
       --query 'DBClusters[*].[DBClusterIdentifier,DBClusterMembers[*].DBInstanceIdentifier]'
   ```

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

   ```
   [
       [
           "sample-cluster",
           [
               "sample-instance-1",
               "sample-instance-2"
           ]
       ]
   ]
   ```

   如果要删除的集群包含任何实例，请如下所示删除它们。

   ```
   aws docdb delete-db-instance \
       --db-instance-identifier sample-instance
   ```

1. **接下来，禁用删除保护。**

   使用删除 AWS CLI 集群的所有实例并不能删除集群。您还必须删除集群，但仅当删除保护处于禁用状态时才可以执行此操作。

   要确定集群是否已启用删除保护，请运行以下命令。
**提示**  
要查看所有 Amazon DocumentDB 集群的删除保护状态，请省略 `--db-cluster-identifier` 参数。

   ```
   aws docdb describe-db-clusters \
       --db-cluster-identifier sample-cluster \
       --query 'DBClusters[*].[DBClusterIdentifier,DeletionProtection]'
   ```

   此操作的输出将类似于下文。

   ```
   [
       [
           "sample-cluster",
           "true"
       ]
   ]
   ```

   如果集群已启用删除保护，则修改集群并禁用删除保护。要对集群禁用删除保护，请运行以下命令。

   ```
   aws docdb modify-db-cluster \
       --db-cluster-identifier sample-cluster \
       --no-deletion-protection \
       --apply-immediately
   ```

1. **最后，删除集群。**

   禁用删除保护后，您就可以删除该集群了。要删除集群，请使用带以下参数的 `delete-db-cluster` 操作。
   + **--db-cluster-identifier**：必填项。要删除的集群的标识符。
   + **--final-db-snapshot-identifier**：可选。如果您需要最终快照，则必须包含该参数和最终快照的名称。必须包含 `--final-db-snapshot-identifier` 或 `--skip-final-snapshot`。

     命名约束：
     + 长度为 [1-63] 个字母、数字或连字符。
     + 第一个字符必须是字母。
     + 不能以连字符结尾或包含两个连续的连字符。
     + 每个区域的 Amazon RDS、Amazon Neptune 和 Amazon DocumentDB 中的所有集群都必须是唯一 AWS 账户的。
   + **--skip-final-snapshot**：可选。仅当您不想在删除集群之前拍摄最终快照时，才使用此参数。默认设置是拍摄最终快照。必须包含 `--final-db-snapshot-identifier` 或 `--skip-final-snapshot`。

   以下 AWS CLI 代码删除`sample-cluster`带有最终快照的集群。如果有任何实例与集群关联，或者如果已启用删除保护，则此操作将失败。  
**Example**  

   对于 Linux、macOS 或 Unix：

   ```
   aws docdb delete-db-cluster \
       --db-cluster-identifier sample-cluster \
       --final-db-snapshot-identifier sample-cluster-final-snapshot
   ```

   对于 Windows：

   ```
   aws docdb delete-db-cluster ^
       --db-cluster-identifier sample-cluster ^
       --final-db-snapshot-identifier sample-cluster-final-snapshot
   ```  
**Example**  

   以下 AWS CLI 代码在不拍摄最终快照`sample-cluster`的情况下删除集群。

   对于 Linux、macOS 或 Unix：

   ```
   aws docdb delete-db-cluster \
       --db-cluster-identifier sample-cluster \
       --skip-final-snapshot
   ```

   对于 Windows：

   ```
   aws docdb delete-db-cluster ^
       --db-cluster-identifier sample-cluster ^
       --skip-final-snapshot
   ```

   `delete-db-cluster` 操作的输出是您要删除的集群。

   删除集群需要几分钟时间。要监控集群的状态，请参阅[监控集群的状态](monitoring_docdb-cluster_status.md)。

------

# 扩展 Amazon DocumentDB 集群
<a name="db-cluster-manage-performance"></a>

Amazon DocumentDB 让您能够根据需求扩展集群中的存储和计算。本节介绍了如何使用存储扩展、实例扩展和读取扩展来管理 Amazon DocumentDB 集群和实例的性能和扩展。

**Topics**
+ [存储扩展](#db-cluster-manage-scaling-storage)
+ [实例扩展](#db-cluster-manage-scaling-instance)
+ [读取扩展](#db-cluster-manage-scaling-reads)
+ [写入扩展](#db-cluster-manage-scaling-writes)

## 存储扩展
<a name="db-cluster-manage-scaling-storage"></a>

Amazon DocumentDB 存储自动使用您的集群卷中的数据进行扩展。当数据量增多时，您的集群卷存储将以 10 GiB 增量递增，最多达 128 TiB。

## 实例扩展
<a name="db-cluster-manage-scaling-instance"></a>

您可通过修改集群中每个实例的实例类来按需扩展 Amazon DocumentDB 集群。Amazon DocumentDB 支持多个针对 Amazon DocumentDB 进行优化的实例类。

有关更多信息，请参阅 [修改 Amazon DocumentDB 实例](db-instance-modify.md)。

## 读取扩展
<a name="db-cluster-manage-scaling-reads"></a>

您可以通过在集群中创建最多 15 个 Amazon DocumentDB 副本来实现 Amazon DocumentDB 集群的读取扩展。每个 Amazon DocumentDB 副本从集群卷返回相同的数据，且副本滞后时间最短：通常少于主实例写入更新后的 100 毫秒。当读取流量增大时，可创建额外的 Amazon DocumentDB 副本并直接连接到这些副本，以便为您的数据库集群分配读取负载。Amazon DocumentDB 副本不必具有与主实例相同的实例类。

有关更多信息，请参阅 [向集群添加 Amazon DocumentDB 实例](db-instance-add.md)。

要对 Amazon DocumentDB 进行读取扩展，我们建议您以副本集形式连接到集群，并使用驱动程序的内置读取首选项功能将读取操作分布到副本实例。有关详细信息，请参阅[作为副本集连接到 Amazon DocumentDB](connect-to-replica-set.md)。

## 写入扩展
<a name="db-cluster-manage-scaling-writes"></a>

您可以通过增加 Amazon DocumentDB 集群的主实例的大小来扩展该集群上的写入容量。此部分提供了两种方法来根据您的需求扩展集群的主实例。第一种方法旨在最大程度地减小应用程序影响，但需要执行更多步骤才能完成。第二种方法经过了优化，需要的步骤更少，因此更简单，但它会对应用程序产生更多的潜在影响，这需要您做出权衡。

根据您的应用程序，可以从下面选择最适合您的方法。有关可用实例大小和成本的更多信息，请参阅 [Amazon DocumentDB 定价](https://aws.amazon.com/documentdb/pricing/)页面。

1. **优化以实现高可用性和性能**：如果您在[副本集模式](connect-to-replica-set.md)（推荐）下连接到集群，则可以使用以下过程将扩展主实例时对应用程序产生的影响减至最小。此方法可以最大程度地减小影响，因为它可确保集群的可用性保持一个较高的水平甚至更高，并且读取扩展目标将作为实例添加到集群中，而不是进行就地更新。

   1. 将较大的实例类型的一个或多个副本添加到集群中（请参阅[向集群添加 Amazon DocumentDB 实例](db-instance-add.md)）。我们建议所有副本具有与主实例相同的实例类型甚至更大的实例类型。这可避免因故障转移到较小的实例类型而意外降低写入性能。对于大多数客户而言，这意味着暂时将其集群中的实例数增加一倍，然后在扩展完成后删除较小的副本。

   1. 将所有新副本上的故障转移层设置为优先级零，并确保较小实例类型的副本具有最高的故障转移优先级。有关更多信息，请参阅 [控制失效转移目标](failover.md#failover-target_control)。

   1. 启动手动故障转移，这会将其中一个新副本提示为主实例。有关更多信息，请参阅 [测试故障转移](failover.md#failover-testing)。
**注意**  
这将导致您的集群停机约 30 秒。请相应地做好规划。

   1. 从集群中删除小于新主实例的实例类型的所有副本。

   1. 将所有实例的故障转移层设置回相同的优先级（通常，这意味着将其设置回 1）。

   例如，假设您的集群当前包含三个 `r5.large` 实例（一个主实例和两个副本实例），并且您希望扩展到一个 `r5.xlarge` 实例类型。为此，您首先将三个 `r5.xlarge` 副本实例添加到集群中，然后将新 `r5.xlarge` 副本的故障转移层设置为零。接下来，您将启动手动故障转移（这意味着您的应用程序将停机约 30 秒）。在故障转移完成后，您将从集群中删除所有三个 `r5.large` 实例，并让集群扩展到 `r5.xlarge` 实例。

   为了帮助优化成本，Amazon DocumentDB 实例以一秒为增量计费，最低收取 10 分钟的费用，然后提供可计费状态更改（例如创建、修改或删除实例）。有关更多信息，请参阅最佳实践文档中的[成本优化](best_practices.md#best_practices-cost_optimization)。

1. **优化以实现简易性**：此方法针对简易性进行了优化。它不会扩展和收缩集群，但可能会暂时减少您的读取容量。

   更改副本的实例类可能将会导致该实例在短时间内（从几秒钟到少于 30 秒）无法处理请求。如果您在[副本集模式](connect-to-replica-set.md)（推荐）下连接到集群，这将在扩展操作期间减少一个副本的读取容量（例如，在 3 节点集群中减少到 66% 的容量，或在 4 节点集群中减少到 75% 的容量等）。

   1. 扩展集群中的副本实例之一。有关更多信息，请参阅 [管理实例类](db-instance-classes.md)。

   1. 等待实例变为可用（请参阅 [监控 Amazon DocumentDB 实例的状态](monitoring_docdb-instance_status.md)）。
**注意**  
这将导致您的集群停机约 30 秒。请相应地做好规划。

   1. 继续执行步骤 1 和 2，直到所有副本实例都逐一实现扩展。

   1. 启动手动失效转移。这会将其中一个副本提升为主实例。有关更多信息，请参阅 [Amazon DocumentDB 失效转移](failover.md)。
**注意**  
这将导致您的集群最多停机 30 秒，但所需的时间通常要更短。请相应地做好规划。

   1. 扩展以前的主（现在是副本）实例。

# 克隆 Amazon DocumentDB 集群卷
<a name="db-cluster-cloning"></a><a name="cloning"></a>

通过使用 Amazon DocumentDB 克隆功能，您可以创建一个新集群，该集群使用相同的 Amazon DocumentDB 集群卷并具有与原始集群卷相同的数据。该过程旨在快速且经济高效。我们将新集群及其关联的数据卷称为*克隆*。与使用其他技术（如还原快照）实际复制数据相比，创建克隆速度更快且空间利用效率更高。

Amazon DocumentDB 支持从预配置的 Amazon DocumentDB 集群创建 Amazon DocumentDB 预配置克隆。使用与源不同的部署配置创建克隆时，源的 Amazon DocumentDB 引擎的最新版本将被用于创建克隆。

当您从 Amazon DocumentDB 集群创建克隆时，将在您的账户（即拥有源 Amazon DocumentDB 集群的同一个账户）中 AWS 创建克隆。

**Topics**
+ [Amazon DocumentDB 克隆概述](#db-cloning-overview)
+ [Amazon DocumentDB 克隆的限制](#db-cloning-limitations)
+ [Amazon DocumentDB 克隆的工作原理](#db-how-db-cloning-works)
+ [创建 Amazon DocumentDB 克隆](#db-creating-db-clone)

## Amazon DocumentDB 克隆概述
<a name="db-cloning-overview"></a>

Amazon DocumentDB 使用*copy-on-write 协议*来创建克隆。此机制占用最少的额外空间来创建初始克隆。首次创建克隆时，Amazon DocumentDB 会保留源数据库集群和新（克隆的）Amazon DocumentDB 集群使用的数据的单个副本。只有当源 Amazon DocumentDB 集群或 Amazon DocumentDB 集群克隆对数据（在 Amazon DocumentDB 存储卷上）进行更改时，才会分配额外的存储空间。要了解有关该 copy-on-write协议的更多信息，请参阅[Amazon DocumentDB 克隆的工作原理](#db-how-db-cloning-works)。

Amazon DocumentDB 克隆非常适合使用您的生产数据快速设置测试环境，且不会有损坏数据的风险。您可以将克隆用于多种类型的应用程序，例如：
+ 对潜在的变化（例如模式变化和参数组变化）进行试验，以评估所有影响。
+ 执行工作负载密集型操作，例如导出数据或在克隆上运行分析查询。
+ 为开发、测试或其他用途创建生产数据库集群的副本。

您可以从同一个 Amazon DocumentDB 集群创建多个克隆。您还可以从另一个克隆创建多个克隆。

创建 Amazon DocumentDB 克隆后，您可以对 Amazon DocumentDB 实例实现与源 Amazon DocumentDB 集群不同的配置。例如，您可能不需要用于开发目的的克隆来满足与源生产 Amazon DocumentDB 集群相同的高可用性要求。在这种情况下，您可以使用单个 Amazon DocumentDB 实例来配置克隆，而不是使用 Amazon DocumentDB 集群使用的多个数据库实例。

当克隆完成测试、开发等使用目的时，您可以将其删除。

## Amazon DocumentDB 克隆的限制
<a name="db-cloning-limitations"></a>

Amazon DocumentDB 克隆目前具有以下限制：
+ 您可以根据需要创建任意数量的克隆，最多为 AWS 区域中允许的最大数据库集群数。但是，在创建 15 个克隆后，下一个克隆是完整副本。克隆操作就像 point-in-time恢复一样。
+ 您无法在与源 Amazon DocumentDB 集群不同的 AWS 区域创建克隆。
+ 您无法从没有数据库实例的 Amazon DocumentDB 集群创建克隆。您只能克隆具有至少一个数据库实例的 Amazon DocumentDB 集群。
+ 您可以在与 Amazon DocumentDB 集群不同的虚拟私有云（VPC）中创建克隆。如果这样做，则的子网 VPCs 必须映射到相同的可用区。

## Amazon DocumentDB 克隆的工作原理
<a name="db-how-db-cloning-works"></a>

Amazon DocumentDB 克隆运行于 Amazon DocumentDB 集群的存储层。就支持 Amazon DocumentDB 存储卷的底层耐用媒体而言，它使用的*copy-on-write*协议既快速又节省空间。您可以在 [管理 Amazon DocumentDB 集群](db-clusters.md) 中了解有关 Amazon DocumentDB 集群卷的更多信息。

**Topics**
+ [了解 copy-on-write协议](#db-copy-on-write-protocol)
+ [删除源集群卷](#db-deleting-source-cluster-volume)

### 了解 copy-on-write协议
<a name="db-copy-on-write-protocol"></a>

Amazon DocumentDB 集群将数据存储在底层 Amazon DocumentDB 存储卷的页面中。

例如，在下图中，您可以找到拥有四个数据页（1、2、3 和 4）的 Amazon DocumentDB 集群（A）。假设从 Amazon DocumentDB 集群创建了一个克隆 B。创建克隆时，未复制任何数据。相反，克隆指向与源 Amazon DocumentDB 集群相同的页面集。

![\[Amazon DocumentDB 集群卷包含 4 个页面，适用于源集群 A 和克隆 B\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cloning-copy-on-write-protocol-1.png)


创建克隆时，通常不需要额外的存储空间。该 copy-on-write协议在物理存储介质上使用与源数据段相同的分段。只有当源段的容量不足以容纳整个克隆段时，才需要额外的存储空间。如果是这种情况，源段将被复制到另一个物理设备。

在下图中，您可以找到使用相同集群 A 及其克隆 B 的 copy-on-write协议示例，如前所示。如果您对 Amazon DocumentDB 集群（A）进行更改，那么第 1 页上保存的数据也将随之而发生改变。Amazon DocumentDB 没有写入原始页面 1，而是创建了一个新页面 1[A]。集群（A）的 Amazon DocumentDB 集群卷现在指向页面 1[A]、2、3 和 4，而克隆（B）仍引用原始页面。

![\[Amazon DocumentDB 源数据库集群卷及其克隆，均已更改。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cloning-copy-on-write-protocol-2.png)


在克隆上，对存储卷的第 4 页进行了更改。Amazon DocumentDB 没有写入原始页面 4，而是创建了一个新页面 4[B]。克隆现在指向页面 1、2、3 和页面 4[B]，而集群（A）继续指向 1[A]、2、3 和 4。

![\[Amazon DocumentDB 源数据库集群卷及其克隆，均已更改。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cloning-copy-on-write-protocol-3.png)


随着时间推移，当源 Amazon DocumentDB 集群卷和克隆上出现了更多更改时，因此需要更多存储空间来捕获和存储更改。

### 删除源集群卷
<a name="db-deleting-source-cluster-volume"></a>

删除与一个或多个克隆关联的源集群卷时，克隆不会受到影响。克隆继续指向以前由源集群卷拥有的页面。

## 创建 Amazon DocumentDB 克隆
<a name="db-creating-db-clone"></a>

您可以在与源 Amazon DocumentDB 集群相同的 AWS 账户中创建克隆。为此，您可以使用 AWS 管理控制台 或 AWS CLI 以及以下步骤。

通过使用 Amazon DocumentDB 克隆，您可以从预配置的 Amazon DocumentDB 集群中创建预配置的 Amazon DocumentDB 集群克隆。

------
#### [ Using the AWS 管理控制台 ]

以下过程介绍了如何使用 AWS 管理控制台克隆 Amazon DocumentDB 集群。

使用带有一个 Amazon DocumentDB 实例的 Amazon DocumentDB 集群中的 AWS 管理控制台 结果创建克隆。

 这些说明适用于创建克隆的同一个 AWS 账户所拥有的数据库集群。数据库集群必须归同一个 AWS 账户所有，因为 Amazon DocumentDB 不支持跨账户克隆。

**要创建您的 AWS 账户拥有的数据库集群的克隆，请使用 AWS 管理控制台**

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**集群**。

1. 从列表中选择您的 Amazon DocumentDB 集群，从**操作**中选择**创建克隆**。  
![\[创建克隆首先需要选择 Amazon DocumentDB 集群。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cloning-create-clone-1.png)

   “创建克隆”页面打开后，您可以配置 Amazon DocumentDB 集群克隆的**集群标识符**和**实例类**以及其他选项。

1. 在**设置**部分，执行以下操作：

   1. 在**集群标识符**中，请输入您要为克隆的 Amazon DocumentDB 集群拟定的名称。

   1. 对于**实例配置**，请为克隆的 Amazon DocumentDB 集群选择适当的**实例类**。  
![\[创建克隆首先需要选择 Amazon DocumentDB 集群并指定数据库实例大小。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cloning-create-clone-2.png)

   1.  对于**网络设置**，请选择使用案例的**子网组**和关联的 VPC 安全组。

   1.  对于 **E ncryption-at-rest**，如果源集群（正在克隆的集群）启用了加密，则克隆的集群还必须启用加密。如果这种情况适用，则**启用加密**选项将显示为灰色（禁用），但选中了**启用加密**选项。相反，如果源集群未启用加密，则**启用加密**选项可用，您可以选择启用或禁用加密。  
![\[为您的 Amazon DocumentDB 集群克隆指定网络和加密设置。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cloning-create-clone-3-nw-encryption.png)

   1. 通过选择要导出的日志类型（可选）、输入用于连接到集群的特定端口、以及启用防止意外删除集群的保护（默认启用），完成新的集群克隆配置。  
![\[通过选择性地选择要导出的日志类型、用于连接到集群的特定端口以及防止意外删除集群的保护，完成新的克隆配置。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/db-cloning-create-clone-4-log-options-del-prot-b.png)

   1. 完成 Amazon DocumentDB 集群克隆的所有设置。要了解有关 Amazon DocumentDB 集群和实例设置的更多信息，请参阅 [管理 Amazon DocumentDB 集群](db-clusters.md)。

1. 选择**创建克隆**以启动所选 Amazon DocumentDB 集群的 Amazon DocumentDB 克隆。

克隆创建完成后，它将会与您的其他 Amazon DocumentDB 集群一起列在控制台**数据库**部分，而且其当前状态也会一起显示。当其状态为**可用**时，您的克隆即可以使用。

------
#### [ Using the AWS CLI ]

使用克隆您 AWS CLI 的 Amazon DocumentDB 集群需要几个步骤。

您使用的`restore-db-cluster-to-point-in-time` AWS CLI 命令会生成一个空的 Amazon DocumentDB 集群，其中包含 0 个亚马逊 DocumentDB 实例。也就是说，此命令仅还原 Amazon DocumentDB 集群，而不还原该集群的数据库实例。在克隆可用之后，您可以单独执行此操作。该过程的两个步骤如下：

1. 使用 [restore-db-cluster-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html) CLI 命令创建克隆。与此命令一起使用的参数控制正在创建的空 Amazon DocumentDB 集群（克隆）的容量类型和其他详细信息。

1. 使用 CL [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)I 命令在还原的 Amazon DocumentDB 集群中重新创建 Amazon DocumentDB 实例，为克隆创建亚马逊文档数据库实例。

以下命令假设 AWS CLI 已将您的 AWS 区域设置为默认区域。这种方法使您无需在每个命令中传递 `--region` 名称。有关更多信息，请参阅[配置 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。您还可以在后面的每个 CLI 命令中指定 `--region`。

**Topics**

**创建克隆**

您传递给 `[restore-db-cluster-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html)` CLI 命令的特定参数会有所不同。传递内容取决于您要创建的克隆类型。

使用以下过程从预配置的 Amazon DocumentDB 集群中创建预配置的 Amazon DocumentDB 克隆。

**创建与源 Amazon DocumentDB 集群具有相同引擎模式的克隆**
+ 使用 `[restore-db-cluster-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html)` CLI 命令并指定以下参数的值：
  + `--db-cluster-identifier`：为克隆选择一个有意义的名称。使用 [restore-db-cluster-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html) CLI 命令时可以为克隆命名。
  + `--restore-type`：使用 `copy-on-write` 创建源数据库集群的克隆。如果没有此参数，`restore-db-cluster-to-point-in-time` 将还原 Amazon DocumentDB 集群，而不会创建克隆。`restore-type` 的默认值为 `full-copy`。
  + `--source-db-cluster-identifier`：使用要克隆的源 Amazon DocumentDB 集群的名称。
  + `--use-latest-restorable-time`：此值指向克隆的最新可还原卷数据。此参数是 `restore-type copy-on-write` 所必需的，但是，您不能将 `restore-to-time parameter` 与它一起使用。

以下示例从名为 `my-source-cluster` 的集群创建一个名为 `my-clone` 的克隆。

对于 Linux、macOS 或 Unix：

```
aws docdb restore-db-cluster-to-point-in-time \
    --source-db-cluster-identifier my-source-cluster \
    --db-cluster-identifier my-clone \
    --restore-type copy-on-write \
    --use-latest-restorable-time
```

对于 Windows：

```
aws docdb restore-db-cluster-to-point-in-time ^
    --source-db-cluster-identifier my-source-cluster ^
    --db-cluster-identifier my-clone ^
    --restore-type copy-on-write ^
    --use-latest-restorable-time
```

该命令返回包含克隆详细信息的 JSON 对象。在尝试为您的克隆创建数据库实例之前，请检查以确保您的克隆数据库集群可用。有关更多信息，请参阅以下检查状态并获取克隆的详细信息：

**检查状态并获取克隆的详细信息**

您可以使用以下命令检查新创建的空数据库集群的状态。

```
$ aws docdb describe-db-clusters --db-cluster-identifier my-clone --query '*[].[Status]' --output text
```

或者，您可以使用以下 AWS CLI 查询获取为克隆创建数据库实例所需的状态和其他值：

对于 Linux、macOS 或 Unix：

```
aws docdb describe-db-clusters --db-cluster-identifier my-clone \
  --query '*[].{Status:Status,Engine:Engine,EngineVersion:EngineVersion}'
```

对于 Windows：

```
aws docdb describe-db-clusters --db-cluster-identifier my-clone ^
  --query "*[].{Status:Status,Engine:Engine,EngineVersion:EngineVersion}"
```

此查询返回类似于下述信息的输出：

```
[
  {
        "Status": "available",
        "Engine": "docdb",
        "EngineVersion": "4.0.0",
    }
]
```

**为您的克隆创建 Amazon DocumentDB 实例**

使用 C [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)LI 命令为您的克隆创建数据库实例。

`--db-instance-class` 参数仅用于预配置的 Amazon DocumentDB 集群。

对于 Linux、macOS 或 Unix：

```
aws docdb create-db-instance \
    --db-instance-identifier my-new-db \
    --db-cluster-identifier my-clone \
    --db-instance-class  db.r5.4xlarge \
    --engine docdb
```

对于 Windows：

```
aws docdb create-db-instance ^
    --db-instance-identifier my-new-db ^
    --db-cluster-identifier my-clone ^
    --db-instance-class  db.r5.4xlarge ^
    --engine docdb
```

**用于克隆的参数**

下表总结了与 `restore-db-cluster-to-point-in-time` 一起用于克隆 Amazon DocumentDB 集群的各种参数。


| 参数 | 说明 | 
| --- | --- | 
|  --source-db-cluster-identifier | 使用要克隆的源 Amazon DocumentDB 集群的名称。 | 
|  --db-cluster-identifier | 为克隆选择一个有意义的名称。您可以使用 ` restore-db-cluster-to-point-in-time` 命令为您的克隆命名。然后将此名称传递给 `create-db-instance` 命令。 | 
|  --restore-type | 将 `copy-on-write` 指定为 `--restore-type` 以创建源数据库集群的克隆，而不是还原源 Amazon DocumentDB 集群。 | 
|  --use-latest-restorable-time | 此值指向克隆的最新可还原卷数据。 | 

------

# 了解 Amazon DocumentDB 集群容错能力
<a name="db-cluster-fault-tolerance"></a>

Amazon DocumentDB 集群设计为具有容错能力。每个集群的卷跨越单个可用区 AWS 区域，每个可用区都包含集群卷数据的副本。此功能意味着您的集群可容忍可用区故障，而不发生任何数据丢失，只是会短暂中断服务。

如果集群中的主实例失败，Amazon DocumentDB 可通过两种方式之一来自动将失效转移到新的主实例：
+ 通过将现有 Amazon DocumentDB 副本提升为根据每个副本的提升层设置所选择的新主实例，然后为以前的主实例创建一个替换项。失效转移到副本实例通常可在不到 30 秒的时间内完成。在此期间，读取和写入操作可能会出现短暂中断。要提高集群的可用性，建议您在两个或更多不同的可用区中创建至少一个或多个 Amazon DocumentDB 副本。
+ 创建新的主实例。只有当您的集群中没有副本实例并且可能需要几分钟才能完成时，才会发生这种情况。

如果集群具有一个或多个 Amazon DocumentDB 副本，则 Amazon DocumentDB 副本将在故障事件期间被提升为主实例。故障事件将导致短暂中断，其间的读取和写入操作将失败并引发异常。不过，服务通常会在 120 秒内 (经常在 60 秒内) 还原。要提高集群的可用性，建议您在两个或更多不同的可用区中创建至少一个或多个 Amazon DocumentDB 副本。

您可以通过为每个副本分配一个优先级来自定义发生故障后将 Amazon DocumentDB 副本提升为主实例的顺序。优先级介于 0（最高优先级）和 15（最低优先级）之间。如果主实例失败，则将具有最高优先级的 Amazon DocumentDB 副本提升为新的主实例。您可以随时修改 Amazon DocumentDB 副本的优先级。修改优先级不会触发失效转移。您可以对 `modify-db-instance` 操作使用 `--promotion-tier` 参数。有关自定义实例的故障转移优先级的更多信息，请参阅[Amazon DocumentDB 失效转移](failover.md)。

多个 Amazon DocumentDB 副本可同属一个优先级，这会产生提升层问题。如果两个或更多 Amazon DocumentDB 副本具有相同优先级，则最大的副本将被提升为主实例。如果两个或多个 Amazon DocumentDB 副本具有同一优先级和大小，那么将提升同一提升层中的任意副本。

如果集群不包含任何 Amazon DocumentDB 副本，则将在故障事件期间重新创建主实例。故障事件将导致中断，其间的读取和写入操作将失败并引发异常。创建新的主实例时将还原服务，该操作所需的时间通常在 10 分钟内。将 Amazon DocumentDB 副本提升为主实例要比创建新的主实例快得多。