

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

# 删除 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)。

------