

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

若要管理 Amazon DocumentDB 叢集，您必須擁有具有適當 Amazon DocumentDB 控制平面許可的 IAM 政策。這些許可可讓您建立、修改和刪除叢集和執行個體。此`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 個複本。


| 名詞 | Description | API 操作 (動詞) | 
| --- | --- | --- | 
|  叢集  |  包含一或多個執行個體，以及一個管理這些執行個體資料的叢集儲存磁碟區。  |  `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` | 
| 叢集磁碟區 | 虛擬資料庫儲存體磁碟區可以橫跨三個可用區域，且每個可用區域都有兩個叢集資料的複本。 | N/A | 
|  主要執行個體  |  同時支援讀取和寫入操作，並執行叢集磁碟區所有資料修改。每個叢集具有一個主要執行個體。  | N/A | 
|  複本執行個體  |  僅支援讀取操作。除了主要執行個體之外，每個 Amazon DocumentDB 叢集最多可以有 15 個複本執行個體。多個複本分配讀取工作負載。透過將複本放置在不同可用區域，您可提高資料庫可用性。  | N/A | 
|  叢集端點  |  連接至叢集目前主要執行個體的 Amazon DocumentDB 叢集端點。每個 Amazon DocumentDB 叢集都有一個叢集端點和一個主要執行個體。  | N/A | 
|  讀取器端點  |  連接至該叢集其中一個可用複本的 Amazon DocumentDB 叢集端點。每個 Amazon DocumentDB 叢集都有一個讀取器端點。如果有多個複本，讀取器端點會將每個連線請求導向其中一個 Amazon DocumentDB 複本。  | N/A | 
|  執行個體端點  |  連接至特定執行個體之 Amazon DocumentDB 叢集中執行個體的端點。叢集中的每個執行個體，不論類型為何，都有自己的唯一執行個體端點。  | N/A | 

# 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_tw/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_tw/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_tw/documentdb/latest/developerguide/db-cluster-parameters.html)  | 
| MasterUserPassword | 是 |  限制條件： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/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 開始，執行個體型叢集支援兩種儲存組態類型：
+ **Amazon DocumentDB 標準儲存**：專為低到中等 I/O 耗用量的客戶而設計。如果您預期 I/O 成本低於 Amazon DocumentDB 叢集總數的 25%，則此選擇可能適合您。使用 Amazon DocumentDB 標準儲存體組態時，除了執行個體和儲存體費用之外，還會按pay-per-request I/O 計費。這表示根據用量，您的帳單可能因一個週期而異。此組態專為因應應用程式的 I/O 需求而量身打造。
+ **Amazon DocumentDB I/O 最佳化儲存**：專為優先考慮價格可預測性或具有 I/O 密集型應用程式的客戶而設計。I/O 最佳化組態可為具有 I/O 密集型工作負載的客戶改善效能、提高輸送量並減少延遲。如果您預期 I/O 成本超過 Amazon DocumentDB 叢集總成本的 25%，此選項可提供增強的價格效能。透過 Amazon DocumentDB I/O 最佳化儲存組態，您不需要根據 I/O 操作付費，確保每個計費週期的可預測成本。組態可穩定成本，同時改善效能。

您可以每 30 天將現有的資料庫叢集切換為 Amazon DocumentDB I/O 最佳化儲存。您可以隨時切換回 Amazon DocumentDB 標準儲存。下一個將儲存組態修改為 I/O 最佳化的日期，可以使用 `describe-db-clusters`命令 AWS CLI 或透過叢集組態頁面 AWS 管理主控台 中的 來追蹤。

您可以建立新的資料庫叢集，包括 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_tw/documentdb/latest/developerguide/images/io-diagram-1.png)


## 建立 I/O 最佳化叢集
<a name="w2aac33c11c13c15"></a>



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

若要使用 建立或修改 I/O 最佳化叢集 AWS 管理主控台：

1. 在 Amazon DocumentDB 管理主控台的**叢集**下，選擇**建立**或選取叢集，然後選擇**動作**，然後選擇**修改**。

1. 如果您要建立新的叢集，請務必在叢集類型區段中選擇**執行個體型**叢集 （這是預設選項）。 ****  
![\[影像：叢集類型選項的主控台螢幕擷取。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/create-cluster/cc-type.png)

1. 在**組態**區段的**叢集儲存組態**下，選擇 **Amazon DocumentDB I/O 最佳化**。  
![\[影像：叢集儲存組態選項的主控台螢幕擷取。\]](http://docs.aws.amazon.com/zh_tw/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 ]

若要使用 建立 I/O 最佳化叢集 AWS CLI：

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

針對 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 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。

1. 在 **Cluster identifier (叢集識別碼)** 欄中尋找您有興趣之叢集的名稱。然後，閱讀該列上的 **Status (狀態)** 欄找出叢集的狀態，如下所示。  
![\[叢集頁面的螢幕擷取畫面，其中範例叢集會顯示作用中狀態。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-cluster-status-con.png)

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

使用 `describe-db-clusters`操作來查看使用 的 Amazon DocumentDB 叢集狀態 AWS CLI。

以下程式碼會尋找叢集 `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 叢集包含執行個體和代表叢集資料的叢集磁碟區。叢集磁碟區在三個可用區域間以六種方法複寫為單一虛擬磁碟區。叢集包含一個主要執行個體，而且最多可選擇性地包含 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/signup](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 Virtual Private Cloud 您的 Amazon VPC 必須在至少兩個可用區域中各有一個子網路，才能與 Amazon DocumentDB 叢集搭配使用。透過將叢集執行個體分散到可用區域，您可以確保在不太可能發生可用區域故障時，叢集中有可用的執行個體。

### 子網路先決條件
<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 帳戶來存取 Amazon DocumentDB 主控台，您必須先 AWS 管理主控台 使用您的 IAM 帳戶登入 。然後前往 Amazon DocumentDB 主控台，網址為 https：//[https://console.aws.amazon.com/docdb](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 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 如果您想要在美國東部 （維吉尼亞北部） 區域 AWS 區域 以外的 中建立叢集，請從主控台右上角的清單中選擇區域。

1. 在導覽窗格中，選擇 **Clusters (叢集)**，然後選擇 **Create (建立)**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/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 Standard** （預設） 或 **Amazon DocumentDB I/O 最佳化**。如需詳細資訊，請參閱[Amazon DocumentDB 叢集儲存組態](db-cluster-storage-configs.md)。

1. 完成 **Authentication (認證)** 窗格。

   1. **使用者名稱** - 輸入主要使用者的名稱。若要登入叢集，您必須使用主要使用者名稱。

      主要使用者命名限制：
      + 長度為 【1-63】 個英數字元。
      + 第一個字元必須是字母。
      + 不能是資料庫引擎保留的字。

   1. 選擇下列其中一個密碼選項：
      + **Managed in 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 和預設參數群組。
     + **Encryption** - 預設為使用 `(default) aws/rds`金鑰啟用加密。
**重要**  
叢集加密後，就無法解密。
     + **Backup** - 預設為保留備份 1 天，並讓 Amazon DocumentDB 選擇備份時段。
     + **日誌匯出** - 預設為不將稽核日誌匯出至 CloudWatch Logs。
     + **維護** - 預設為讓 Amazon DocumentDB 選擇維護時段。
     + **刪除保護** - 保護您的叢集免於意外刪除。使用主控台建立的叢集預設為*已啟用*。

     如果現在接受預設設定，您可以在稍後藉由修改叢集來將其大多數做變更。

1. 為叢集的安全群組啟用入站連線。

   如果您並未變更叢集的預設值，表示您使用預設安全群組為指定區域中的預設 VPC 建立叢集。若要連線至 Amazon DocumentDB，您必須在叢集安全群組的連接埠 27017 （或您選擇的連接埠） 上啟用傳入連線。

   **新增入站連線至叢集安全群組**

   1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)：// 開啟 Amazon EC2 主控台。

   1. 在主視窗的 **Resources (資源)** 區段中，選擇 **Security groups (安全群組)**。  
![\[影像：反白顯示安全群組連結選項的資源清單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-ec2-security-groups.png)

   1. 從安全群組清單中，找出您建立叢集時使用的安全群組 (最可能是*預設*安全群組)，並選擇安全群組名稱左側的方塊。  
![\[影像：安全群組清單反白顯示一個已選取方塊的安全群組。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-ec2-default-sg.png)

   1. 在 **Actions (動作)** 功能表中，選擇 **Edit inbound rules (編輯入站規則)**，然後輸入規則限制。

      1. **類型** - 從清單中，選擇要向網路流量開啟的通訊協定。

      1. **Protocol** - 從清單中，選擇通訊協定的類型。

      1. **連接埠範圍** - 針對自訂規則，輸入連接埠號碼或連接埠範圍。請確定連接埠號碼或範圍包括您建立叢集時指定的連接埠 (預設：27107)。

      1. **來源** - 指定可到達執行個體的流量。從清單中選擇流量來源。如果您選擇 **Custom (自訂)**，指定單一 IP 地址或是以 CIDR 表示法表示的 IP 地址範圍 (例如 203.0.113.5/32)。

      1. **描述** - 輸入此規則的描述。

      1. 完成建立規則後，選擇 **Save (儲存)**。

### 建立叢集：其他組態
<a name="db-cluster-create-con-additional-configs"></a>

如果您想要接受叢集的預設設定，您可以略過以下步驟，然後選擇 **Create cluster (建立叢集)**。

1. 完成 **Network settings (網路設定)** 窗格。  
![\[螢幕擷取畫面，顯示網路設定窗格和設定網路設定的步驟。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/create-db-cluster-console-network-settings.png)

   1. **Virtual Private Cloud (VPC)**—在清單中，選擇要啟動此叢集的 Amazon VPC。

   1. **子網路群組** - 在清單中，選擇您要用於此叢集的子網路群組。

   1. **VPC 安全群組** - 在清單中，選擇此叢集的 VPC 安全群組。

1. 完成 **Cluster options (叢集選項)** 窗格。  
![\[螢幕擷取畫面，顯示叢集選項窗格以及設定叢集設定的步驟。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/create-db-cluster-console-cluster-options.png)

   1. **資料基礎連接埠** - 使用向上和向下箭頭來設定應用程式用來連線至執行個體的 TCP/IP 連接埠。

   1. **叢集參數群組** - 在參數群組清單中，選擇此叢集的叢集參數群組。

1. 完成 **Encryption (加密)** 窗格。  
![\[加密窗格的螢幕擷取畫面，顯示設定叢集加密的步驟。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/encrypt-at-rest.png)

   1. **Encryption-at-rest** - 選擇下列其中一項：
      + **啟用加密** - 預設。所有靜態資料已加密。如果您選擇加密資料，您無法復原此動作。
      + **停用加密** - 您的資料未加密。

   1. **AWS KMS 金鑰** - 這只有在您加密資料時才可用。在清單中，選擇要用於在此叢集中加密的金鑰。預設值為 `(default) aws/rds`。

      如果您選擇 **Enter a key ARN (輸入金鑰 ARN)**，您必須需要輸入金鑰的 Amazon Resource Name (ARN)。

1. 完成 **Backup (加密)** 窗格。  
![\[備份窗格的螢幕擷取畫面，顯示設定叢集備份時段的步驟。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/create-db-cluster-console-backup.png)

   1. **備份保留期** - 在清單中，選擇在刪除叢集之前保留此叢集自動備份的天數。

   1. **備份時段** - 設定 Amazon DocumentDB 要備份此叢集的每日時間和持續時間。

      1. **開始時間** - 在第一個清單中，選擇啟動自動備份的開始時間小時 (UTC)。在第二個清單中，選擇您要自動備份開始進行的時間 (分)。

      1. **持續時間** - 在清單中，選擇要配置給建立自動備份的時數。

1. 選取您要**匯出**至 CloudWatch Logs 的日誌類型，以完成日誌匯出窗格。  
![\[日誌匯出窗格的螢幕擷取畫面，顯示設定叢集 DML 日誌記錄的步驟。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/create-db-cluster-console-log-exports.png)
   + **稽核日誌** - 選取此選項可啟用將稽核日誌匯出至 Amazon CloudWatch Logs。如果您選取 **Audit logs (稽核日誌)**，則必須在叢集的自訂參數群組中啟用 `audit_logs`。如需詳細資訊，請參閱[稽核 Amazon DocumentDB 事件](event-auditing.md)。
   + **Profiler 日誌** - 選取此選項可啟用將操作 Profiler 日誌匯出至 Amazon CloudWatch Logs。如果您選取 **Profiler logs (Profiler 日誌)**，則還必須在叢集的自訂參數群組中修改下列參數：
     + `profiler`- 設定為 `enabled`。
     + `profiler_threshold_ms`- 將 設定為值`[0-INT_MAX]`，以設定分析操作的閾值。
     + `profiler_sampling_rate`- 將 設定為值`[0.0-1.0]`，將慢速操作的百分比設定為設定檔。

     如需詳細資訊，請參閱[分析 Amazon DocumentDB 操作](profiling.md)。

1. 完成 **Maintenance (維護)** 窗格。  
![\[維護窗格的螢幕擷取畫面，顯示設定叢集維護時段的步驟。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/create-db-cluster-console-maintenance.png)

   1. 選擇下列其中一項
     + **選取視窗** - 您可以指定星期幾、UTC 開始時間和持續時間，讓 Amazon DocumentDB 在您的叢集上執行維護。

       1. **開始日** - 在清單中，選擇星期幾以開始叢集維護。

       1. **開始時間** - 在清單中，選擇小時和分鐘 (UTC) 以開始維護。

       1. **持續時間** - 在清單中，選擇叢集維護的配置時間。如果無法在指定時間內完成維護作業，維護程序會持續超過指定的時間，直到完成為止。
     + **無偏好設定** - Amazon DocumentDB 會選擇星期幾、開始時間和持續時間來執行維護。

1. 如果您希望將一或多個標籤新增到此叢集，請完成 **Tags (標籤)** 窗格。  
![\[Enable deletion protection (啟用刪除保護) 核取方塊 (已選取) 的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/create-db-cluster-console-tags.png)

   對於您要新增到叢集的每個標籤，請重複下列步驟。叢集上最多可以有 10 個。

   1. 選擇 **Add tags (新增標籤)**。

   1. 輸入標籤的 **Key (索引鍵)**。

   1. 選擇性輸入標籤的 **Value (值)**。

   若要移除標籤，請選擇 **Remove tag (移除標籤)**。

1. 當您使用主控台建立叢集時，預設會啟用 **Deletion Protection (刪除保護)**。若要停用刪除保護，請清除 **Enable deletion protection (啟用刪除保護)**。若已啟用，刪除保護就會避免叢集遭到刪除。若要刪除已啟用刪除保護的叢集，您必須先修改叢集以停用刪除保護。  
![\[Enable deletion protection (啟用刪除保護) 核取方塊 (已選取) 的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/create-db-cluster-console-deletion-protection.png)

   如需刪除保護的詳細資訊，請參閱 [刪除 Amazon DocumentDB 叢集](db-cluster-delete.md)。

1. 若要建立叢集，請選擇 **Create cluster (建立叢集)**。否則，請選擇 **Cancel** (取消)。

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

下列程序說明如何使用 AWS CLI 啟動 Amazon DocumentDB 叢集並建立 Amazon DocumentDB 複本。

**Parameters**
+ **--db-cluster-identifier** - 必要項目。識別此叢集的小寫字串。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/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_tw/documentdb/latest/developerguide/db-cluster-create.html)
+ **--master-user-password**- 選用。用於驗證使用者的使用者密碼。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/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 命令會建立名為 的 Amazon DocumentDB 叢集，`sample-cluster`並啟用刪除保護。如需刪除保護的詳細資訊，請參閱 [刪除 Amazon DocumentDB 叢集](db-cluster-delete.md)。

此外， `--engine-version` 是選用參數，預設為最新的主要引擎版本。目前的預設引擎版本為 5.0.0 （請注意：Amazon DocumentDB 8.0 可供使用，但必須明確指定）。發行新的主要引擎版本時， 的預設引擎版本`--engine-version`將會更新，以反映最後一個主要引擎版本。因此，對於生產工作負載，特別是依賴指令碼、自動化或 CloudFormation 範本的工作負載，我們建議您明確將 指定`--engine-version`為預期的主要版本。

**注意**  
如果`vpc-security-group-id`未指定 `db-subnet-group-name`或 ，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)。

**重要**  
當您使用 AWS CLI 建立 Amazon DocumentDB 叢集時，不會建立任何執行個體。因此，您必須明確建立主要執行個體，以及您需要的任何複本執行個體。您可以使用 主控台或 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 管理主控台或 AWS CLI 查看連線端點、安全群組、VPCs 和與 Amazon DocumentDB 叢集相關的參數群組等詳細資訊。

如需詳細資訊，請參閱下列內容：
+ [監控 Amazon DocumentDB 叢集的狀態](monitoring_docdb-cluster_status.md)
+ [尋找叢集的端點](db-cluster-endpoints-find.md)

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

使用下列程序，使用主控台檢視指定 Amazon DocumentDB 叢集的詳細資訊。

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)：// 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在叢集清單中，選擇想要檢視詳細資訊的叢集名稱。叢集的相關資訊分為下列群組：
   + **摘要** — 有關叢集的一般資訊，包括引擎版本、叢集狀態、待定維護及其參數群組的狀態。
   + **連線與安全性** — **Connect** 區段列出要使用 mongo shell 或 應用程式連線至此叢集的連線端點。**Seucirty Groups (安全群組)** 區段會列出與此叢集相關聯的安全群組，以及其 VPC ID 和描述。
   + **組態** — **叢集詳細資訊**區段列出叢集的詳細資訊，包括叢集的 Amazon Resource Name (ARN)、端點和參數群組。它也會列出叢集的備份資訊、維護詳細資訊，以及安全性和網路設定。**Cluster instances (叢集執行個體)** 區段會列出屬於您此叢集的執行個體，當中每個執行個體的角色和叢集參數群組狀態。
   + **監控** — 此叢集的 Amazon CloudWatch Logs 指標。如需詳細資訊，請參閱[使用 CloudWatch 監控 Amazon DocumentDB](cloud_watch.md)。
   + **事件和標籤** — **最近事件**區段列出此叢集的最近事件。Amazon DocumentDB 會保留與叢集、執行個體、快照、安全群組和叢集參數群組相關的事件記錄。此資訊包括與每個事件相關聯的日期、時間和訊息。**Tags (標籤)** 區段會列出連接至此叢集的標籤。

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

若要使用 檢視 Amazon DocumentDB 叢集的詳細資訊 AWS CLI，請使用 `describe-db-clusters`命令，如以下範例所示。如需詳細資訊，請參閱《*Amazon DocumentDB Resource Management 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 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 選擇叢集名稱左側的按鈕，以指定您要修改的叢集。

1. 選擇 **Actions (動作)**，然後選擇 **Modify (修改)**。

1. 在 **Modify Cluster: <cluster-name> (修改叢集: <叢集-名稱>)** 窗格中，進行您要的變更。您可以在以下領域進行變更：
   + **叢集規格** - 叢集的名稱、安全群組和登入資料管理。
   + **叢集儲存組態** - 叢集的資料儲存模式。選擇標準和 I/O 最佳化組態。
   + **叢集選項** - 叢集的連接埠和參數群組。
   + **Backup** - 叢集的備份保留期和備份時段。
   + **日誌匯出 **- 啟用或停用匯出稽核或分析器日誌。
   + **維護** - 設定叢集的維護時段。
   + **刪除保護** - 在叢集上啟用或停用刪除保護。預設會啟用刪除保護。

1. 完成後，請選擇 **Continue (繼續)** 以檢視變更的摘要。

1. 如果您滿意變更，可以選擇 **Modify cluster (修改叢集)** 來修改叢集。或者，您也可以選擇 **Back (返回)** 或 **Cancel (取消)**，分別編輯或取消變更。

套用您的變更需要幾分鐘的時間才會完成。您只能使用狀態為*可用*的叢集。您可以使用主控台或 AWS CLI監控叢集的狀態。如需詳細資訊，請參閱[監控 Amazon DocumentDB 叢集的狀態](monitoring_docdb-cluster_status.md)。

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

使用 AWS CLI透過 `modify-db-cluster` 操作來修改指定的叢集。如需詳細資訊，請參閱《*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)》中的 。

**Parameters**
+ **--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
    }
}
```

套用您的變更需要幾分鐘的時間才會完成。您只能使用狀態為*可用*的叢集。您可以使用主控台或 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 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 找出 **Maintenance (維護)** 欄，判斷叢集是否有待定的維護。  
![\[主控台螢幕擷取畫面，顯示 Amazon DocumentDB 叢集維護欄位。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-cluster-pending-maintenance.png)

   **None (無)** 表示叢集執行的是最新的引擎版本。**Available (可用)** 表示叢集有待定的維護，這可能表示引擎需要升級。

1. 如果您的叢集有待定的維護，請繼續[對叢集的引擎版本執行修補程式更新](db-cluster-version-upgrade.md)中的步驟。

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

您可以使用 AWS CLI 來判斷叢集是否具有最新的引擎版本，方法是使用 `describe-pending-maintenance-actions`操作搭配下列參數。

**Parameters**
+ **--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)或 [使用 升級 Amazon DocumentDB 叢集 AWS Database Migration Service](docdb-migration.versions.md)。就地主要版本升級僅支援 docdb 5.0 作為目標引擎版本。

取得叢集引擎版本的最新修補程式更新有兩種組態需求：
+ 叢集狀態必須為*「可用」*。
+ 叢集必須執行舊版的引擎。

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

下列程序會使用 主控台將修補程式更新套用至叢集的引擎版本。您可以選擇立即或在叢集的下一個維護時段進行更新。

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)：// 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。在叢集清單中，選擇您想要升級之叢集的左側按鈕。叢集的狀態必須為*「可用」*。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 從 **Actions (動作)** 功能表選擇下列其中一個選項。您選擇的叢集必須不是執行最新的引擎版本，這些功能表選項才可供選取。  
![\[影像：Amazon DocumentDB 升級動作\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-upgrade-action.png)
   + **立即升級** - 立即啟動升級程序。您的叢集會離線一段時間，讓叢集升級到最新的引擎版本。
   + **在下一個時段升級** - 在叢集的下一個維護時段啟動升級程序。您的叢集在升級到最新的引擎版本時，會離線一段時間。

1. 當確認視窗開啟時，請選擇下列其中一項：
   + **升級** - 根據上一個步驟中選擇的排程，將叢集升級至最新的引擎版本。
   + **Cancel**—取消叢集的引擎升級，並繼續執行叢集目前的引擎版本。

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

您可以使用 AWS CLI 和 `apply-pending-maintenance-action`操作搭配下列參數，將修補程式更新套用至叢集。

**Parameters**
+ **--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 會在七天後自動啟動叢集，使其不會落後於任何必要的維護更新。當您的叢集在七天後啟動時，您將再度開始對叢集中的執行個體付費。當您的叢集停止時，您無法查詢儲存磁碟區，因為查詢時需要執行個體處於可用狀態。

當 Amazon DocumentDB 叢集停止時，叢集及其執行個體都無法以任何方式修改。這包括新增或移除執行個體、或刪除叢集。

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

下列程序說明如何停止有一或多個執行個體處於可用狀態的叢集，或停止叢集。

**停止或啟動 Amazon DocumentDB 叢集**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在叢集清單中，選擇您要停止或啟動之叢集名稱左側的按鈕。

1. 選擇 **Actions (動作)**，然後選擇您想要在叢集上執行的動作。
   + 如果您想要停止可用的叢集：

     1. 選擇**停止**。  
![\[影像：停止叢集\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-cluster-stop.png)

        為了避免啟動容錯移轉機制，停止操作會先停止複本執行個體，然後停止主要執行個體。

     1. 在確認對話方塊上，選擇 **Stop cluster (停止叢集)**，確認您要停止叢集，若要讓叢集持續執行，請選擇 **Cancel (取消)**。  
![\[影像：啟動叢集\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-cluster-stop-confirm.png)
   + 如果您想要啟動叢集，而叢集已停止，請選擇 **Start (啟動)**。  
![\[影像：啟動叢集\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-cluster-start.png)

1. 監控叢集及其執行個體的狀態。如果您已啟動叢集，當叢集及其執行個體均*可用*時，您即可恢復使用叢集。如需詳細資訊，請參閱[判斷叢集的狀態](db-cluster-status.md)。  
![\[影像：停止和啟動中叢集的狀態\]](http://docs.aws.amazon.com/zh_tw/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還原。如需執行時間點還原的詳細資訊，請參閱[還原至某個時間點](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 管理主控台，並在 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)：// 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 請注意，在叢集導覽方塊中，**叢集識別符**欄會顯示叢集和執行個體。執行個體會列在叢集下方，類似於下面的螢幕擷取畫面。  
![\[影像：顯示現有叢集連結及其對應執行個體連結清單的叢集導覽方塊。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/clusters.png)

1. 選擇叢集的名稱，然後選取 **Configuration (組態)** 索引標籤。在 **Cluster details (叢集詳細資訊)** 區段中，找出 **Deletion protection (刪除保護)**。如果已啟用刪除保護，請修改叢集以停用刪除保護。如需修改叢集的詳細資訊，請參閱[修改 Amazon DocumentDB 叢集](db-cluster-modify.md)。

   停用 **Deletion protection (刪除保護)** 之後，您就可以刪除叢集。

**刪除叢集：**

1. 在導覽窗格中，選擇**叢集**。

1. 透過檢查下列執行個體的**叢集識別符**欄，判斷叢集是否有任何執行個體。您必須先刪除叢集的所有執行個體，才能刪除叢集。如需詳細資訊，請參閱[刪除 Amazon DocumentDB 執行個體](db-instance-delete.md)。

1. 根據您的叢集是否有任何執行個體，執行下列其中一個步驟。
   + 如果叢集沒有執行個體，請選取叢集名稱左側的按鈕，然後選擇 **Actions (動作)**。從下拉式選單中選擇 **Detete (刪除)**。完成 **Delete <cluster-name> (刪除 <cluster-name>)** 對話方塊，然後選擇 **Delete (刪除)**。
   + 如果叢集有一或多個執行個體，請執行下列動作：

     1. 在導覽窗格中，選擇**叢集**。

     1. 選取叢集名稱左側的核取方塊，以刪除每個叢集的執行個體。選取 **Actions (動作)**，然後選擇 **Delete (刪除)**。完成 **Delete <cluster-name> (刪除 <cluster-name>)** 對話方塊，然後選擇 **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 叢集建立複製時，複製會在 AWS 您的帳戶中建立，也就是擁有來源 Amazon DocumentDB 叢集的相同帳戶。

**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 儲存磁碟區） 進行變更時，才會配置額外的儲存體。若要進一步了解寫入時複製通訊協定，請參閱 [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 個複製項後，下一個複製項是完整複本。複製操作的作用類似於時間點復原。
+ 您無法在與來源 Amazon DocumentDB 叢集不同的 AWS 區域中建立複製。
+ 您無法從沒有資料庫執行個體的 Amazon DocumentDB 叢集建立複製。您只能複製至少具有一個資料庫執行個體的 Amazon DocumentDB 叢集。
+ 您可以在與 Amazon DocumentDB 叢集不同的虛擬私有雲端 (VPC) 中建立複製。不過，VPC 中的子網路必須映射至相同的可用區域。

## Amazon DocumentDB 複製的運作方式
<a name="db-how-db-cloning-works"></a>

Amazon DocumentDB 複製可在 Amazon DocumentDB 叢集的儲存層運作。它使用*copy-on-write*通訊協定，在支援 Amazon DocumentDB 儲存磁碟區的基礎耐久媒體上既快速又節省空間。您可以在 中進一步了解 Amazon DocumentDB 叢集磁碟區[管理 Amazon DocumentDB 叢集](db-clusters.md)。

**Topics**
+ [了解寫入時複製通訊協定](#db-copy-on-write-protocol)
+ [刪除來源叢集磁碟區](#db-deleting-source-cluster-volume)

### 了解寫入時複製通訊協定
<a name="db-copy-on-write-protocol"></a>

Amazon DocumentDB 叢集會將資料存放在基礎 Amazon DocumentDB 儲存磁碟區中的頁面中。

例如，在下圖中，您可以找到具有四個資料頁面 1、2、3 和 4 的 Amazon DocumentDB 叢集 (A)。假設複製 B 是從 Amazon DocumentDB 叢集建立的。建立複製時，不會複製任何資料。相反地，複製指向與來源 Amazon DocumentDB 叢集相同的頁面集。

![\[具有 4 頁的 Amazon DocumentDB 叢集磁碟區，用於來源叢集、A 和複製、B\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-cloning-copy-on-write-protocol-1.png)


在建立複製時，通常不需要其他的儲存空間。寫入時複製通訊協定會使用與實體儲存媒體上相同的區段，作為來源區段。只有在來源區段的容量不足以容納整個複製區段時，才需要其他的儲存空間。如果是這種情況，來源區段會複製到另一個實體裝置上。

在下圖中，您可以找到使用相同叢集 A 及其複製 B 之動作的寫入時複製通訊協定範例，如上所示。假設您對 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_tw/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_tw/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 管理主控台 ]

下列程序說明如何使用 複製 Amazon DocumentDB 叢集 AWS 管理主控台。

在具有一個 Amazon DocumentDB 執行個體的 Amazon DocumentDB 叢集中使用 AWS 管理主控台 結果建立複製。

 這些指示適用於建立複製之相同 AWS 帳戶所擁有的資料庫叢集。資料庫叢集必須由相同的 AWS 帳戶擁有，因為 Amazon DocumentDB 不支援跨帳戶複製。

**使用 建立您 AWS 帳戶所擁有資料庫叢集的複製 AWS 管理主控台**

1. 登入 AWS 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。

1. 從清單中選擇您的 Amazon DocumentDB 叢集，然後針對**動作**選擇**建立複製**。  
![\[從選取 Amazon DocumentDB 叢集開始建立複製。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-cloning-create-clone-1.png)

   建立複製頁面隨即開啟，您可以在其中設定**叢集識別符**和**執行個體類別**，以及 Amazon DocumentDB 叢集複製的其他選項。

1. 在 **Settings** (設定) 區段中，執行下列動作：

   1. 針對**叢集識別符**，輸入您要提供給複製 Amazon DocumentDB 叢集的名稱。

   1. 針對**執行個體組態**，為複製的 Amazon DocumentDB 叢集選取適當的**執行個體類別**。  
![\[選取 Amazon DocumentDB 叢集並指定資料庫執行個體大小，即可開始建立複製。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-cloning-create-clone-2.png)

   1.  針對**網路設定**，為您的使用案例和相關聯的 VPC 安全**群組選擇子網路**群組。

   1.  對於**Encryption-at-rest**，如果來源叢集 （正在複製的叢集） 已啟用加密，則複製的叢集也必須啟用加密。如果此案例為 true，則**啟用加密**選項會顯示為灰色 （停用），但已選取**啟用加密**選項。相反地，如果來源叢集未啟用加密，則可以使用**啟用加密**選項，您可以選擇啟用或停用加密。  
![\[為您的 Amazon DocumentDB 叢集複製指定網路和加密設定。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/db-cloning-create-clone-3-nw-encryption.png)

   1. 完成新的叢集複製組態，方法是選取要匯出的日誌類型 （選用）、輸入用來連線至叢集的特定連接埠，以及啟用保護，避免意外刪除叢集 （預設為啟用）。  
![\[選擇性地選取要匯出的日誌類型、用來連線至叢集的特定連接埠，以及意外刪除叢集的保護表單，以完成新的複製組態。\]](http://docs.aws.amazon.com/zh_tw/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 叢集一起列出，並顯示其目前狀態。在您複製的狀態為 **Available** (可用) 時，表示已可使用。

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

使用 AWS CLI 複製 Amazon DocumentDB 叢集需要幾個步驟。

您使用的`restore-db-cluster-to-point-in-time` AWS CLI 命令會產生具有 0 個 Amazon DocumentDB 執行個體的空 Amazon 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. 使用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) CLI 命令在還原的 Amazon DocumentDB 叢集中重新建立 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 執行個體**

使用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) CLI 命令來建立您複製的資料庫執行個體。

`--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 複本的優先順序。修改優先順序不會觸發容錯移轉。您可以搭配 `--promotion-tier` 參數使用 `modify-db-instance` 操作。如需更多有關自訂執行個體容錯移轉優先順序的詳細資訊，請參閱[Amazon DocumentDB 容錯移轉](failover.md)。

多個 Amazon DocumentDB 複本可以共用相同的優先順序，進而產生提升層。如果兩個或多個 Amazon DocumentDB 複本具有相同的優先順序，則大小最大的複本會提升為主要複本。如果兩個或多個 Amazon DocumentDB 複本具有相同的優先順序和大小，則會提升相同提升層中的任意複本。

如果叢集不包含任何 Amazon DocumentDB 複本，則會在失敗事件期間重新建立主要執行個體。失敗事件會導致中斷，在此期間，讀取和寫入操作會失敗，並引發例外狀況。建立新的主要執行個體後，服務就會恢復，通常不超過 10 分鐘。將 Amazon DocumentDB 複本提升為主要執行個體比建立新的主要執行個體快得多。