

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

# Amazon DocumentDB 全域叢集概觀
<a name="global-clusters"></a>

## 什麼是全域叢集？
<a name="w2aac33b9b3"></a>

全域叢集包含一個主要區域和最多 10 個唯讀次要區域。您直接對主要區域中的主要叢集發出寫入操作，Amazon DocumentDB 會使用專用基礎設施自動將資料複寫至次要區域。延遲通常不到一秒。

## 全域叢集如何有用？
<a name="w2aac33b9b5"></a>
+ **從全區域中斷復原 ** - 在全區域中斷的情況下，您可以在幾分鐘內將其中一個次要叢集提升為主要叢集，典型的復原時間目標 (RTO) 不到一分鐘。復原點目標 (RPO) 通常以秒為單位測量，但這取決於失敗時整個網路的延遲。
+ **具有本機延遲的全域讀取 ** - 如果您在世界各地設有辦公室，您可以使用全域叢集，讓主要區域的主要資訊來源保持最新狀態。您其他區域的辦公室可以使用本機延遲存取自己區域中的資訊。
+ **可擴展的次要叢集 ** — 您可以將更多唯讀執行個體新增至次要區域，以擴展次要叢集。次要叢集是唯讀的，因此最多可以支援 16 個唯讀複本執行個體，而不是單一叢集的一般限制為 15 個。
+ **從主要叢集快速複寫到次要**叢集 — 全域叢集執行的複寫對主要資料庫叢集的效能影響不大。資料庫執行個體的資源完全投入處理應用程式讀取與寫入工作負載。

## 全球叢集目前的限制為何？
<a name="w2aac33b9b7"></a>
+ Amazon DocumentDB v3.6 不支援全域叢集。
+ 除了 db.t3、db.t4g 和 db.r4 之外，所有執行個體類型都支援全域叢集。
+ 全球叢集不適用於下列區域：南美洲 （聖保羅）、歐洲 （米蘭）、中國 （北京） 和中國 （寧夏）。
+ 當區域位於不同的引擎版本時，不支援切換和全域容錯移轉。當引擎版本不相符時，支援手動容錯移轉。
+ 只有主要叢集會執行寫入操作。執行寫入操作的用戶端會連線至主要叢集的叢集端點。
+ 叢集最多可以有 10 個次要區域和一個主要區域。
+ 次要叢集無法停止。如果主要叢集具有與其相關聯的次要叢集，則無法停止主要叢集。只有沒有次要叢集的區域叢集才能停止。
+ 連接到次要叢集的複本在某些情況下可以重新啟動。如果主要區域的執行個體重新啟動或容錯移轉，次要區域中的複本也會重新啟動。然後，叢集將無法使用，直到所有複本都與主要資料庫叢集的寫入器執行個體恢復同步。此行為在預期當中。在對主要叢集進行變更之前，請務必了解對全域叢集的影響。
+ 您無法在次要叢集上使用變更串流。

**Topics**
+ [什麼是全域叢集？](#w2aac33b9b3)
+ [全域叢集如何有用？](#w2aac33b9b5)
+ [全球叢集目前的限制為何？](#w2aac33b9b7)
+ [快速入門指南](global-clusters.get-started.md)
+ [管理全域叢集](global-clusters.manage.md)
+ [連接全域叢集](global-clusters-connect.md)
+ [監控全域叢集](global-clusters-monitor.md)
+ [災難復原](global-clusters-disaster-recovery.md)

# 快速入門指南：全域叢集
<a name="global-clusters.get-started"></a>

**Topics**
+ [Configuration](#global-clusters.config)
+ [建立全域叢集](#global-clusters-create)
+ [將區域新增至全域叢集](#global-clusters.add-region)
+ [使用快照](#global-clusters.snapshot)

## Configuration
<a name="global-clusters.config"></a>

Amazon DocumentDB 全域叢集至少跨越兩個 AWS 區域。主要區域支援具有一個主要 （寫入器） 執行個體和最多 15 個複本執行個體的叢集，而次要區域則執行完全由最多 16 個複本執行個體組成的唯讀叢集。全域叢集最多可以有五個次要區域。資料表列出全域叢集中允許的最大叢集、執行個體和複本。


| Description | 主要 AWS 區域 | 次要 AWS 區域 | 
| --- | --- | --- | 
| 叢集 | 1 | 5 (最大值) | 
| 寫入器執行個體 | 1 | 0 | 
| 每個叢集的唯讀執行個體 (Amazon DocumentDB 複本） | 15 (上限) | 16 (總計) | 
| 唯讀執行個體 (允許的上限，給定的次要區域實際數量) | 15 - s | s = 次要的總數 AWS 區域 | 

叢集有下列特定需求：
+ **資料庫執行個體類別需求** — 您只能使用 `db.r5`和 `db.r6g` 執行個體類別。
+ **AWS 區域 需求** — 主要叢集必須位於一個區域，且至少有一個次要叢集必須位於相同帳戶的不同區域。您最多可以建立五個次要 （唯讀） 叢集，每個叢集必須位於不同的 區域。換句話說，兩個叢集不能位於相同的區域。
+ **命名要求** — 您為每個叢集選擇的名稱在所有區域中必須是唯一的。您無法對不同的叢集使用相同的名稱，即使它們位於不同的 區域。

## 建立 Amazon DocumentDB 全域叢集
<a name="global-clusters-create"></a>

您準備好建置您的第一個全域叢集了嗎？ 在本節中，我們將說明如何使用 AWS 管理主控台 或 AWS CLI 搭配下列指示，建立具有新資料庫叢集和執行個體的全新全域叢集。

### 使用 AWS 管理主控台
<a name="global-clusters-create-console"></a>

1. 在 中 AWS 管理主控台，導覽至 **Amazon DocumentDB**。

1. 當您到達 Amazon DocumentDB 主控台時，請選擇**叢集**。  
![\[Amazon DocumentDB 主控台中的叢集頁面。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/choose-cluster.png)

1. 選擇**建立**。  
![\[叢集資料表右上角顯示的建立按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/choose-create.png)

1. 相應地填寫**建立 Amazon DocumentDB 叢集**表單的**組態**區段：
   + **叢集識別符**：您可以為此執行個體輸入唯一識別符，或允許 Amazon DocumentDB 根據叢集識別符提供執行個體識別符。
   + 引擎版本：選擇 **4.0.0**
   + 執行個體類別：選擇 **db.r5.large**
   + 執行個體數量：選擇 **3**。  
![\[用於建立 Amazon DocumentDB 叢集的組態選項表單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/create-config.png)

1. 在**身分驗證**區段中，填寫主要使用者名稱和主要密碼。  
![\[為新的 Amazon DocumentDB 叢集指定主使用者名稱和密碼的身分驗證表單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/create-auth.png)

1. 選擇**顯示進階設定**。  
![\[顯示取消和建立叢集按鈕旁的進階設定切換按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/show-advanced.png)

1. 在**網路設定**區段中：
   + 保留**虛擬私有雲端 (VPC)** 和**子網路群組**的預設選項。  
![\[網路設定表單顯示 VPC、子網路群組和 VPC 安全群組選項。VPC 和子網路群組欄位已選取預設選項。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/default-vpc-1.png)
   + 對於 **VPC 安全群組**，應該已新增**預設 (VPC)**。  
![\[顯示已新增預設 VPC 的網路設定表單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/default-vpc-2.png)
   + `DocDB` 在 **VPC 安全群組**欄位中輸入 ，然後選取 **DocDB-Inbound (VFC)**。  
![\[在 VPC 安全群組下拉式功能表中選取的 DocDB-Inbound VFC。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/inbound-vfc.png)

1. 對於**叢集選項**和**Encryption-at-rest**，請保留預設選項。  
![\[已選取預設選項的叢集選項和Encryption-at-rest表單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/leave-default-1.png)

1. 對於**備份**和**日誌匯出**，保留預設選項。  
![\[備份和日誌匯出已選取預設選項的表單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/leave-default-2.png)

1. 對於**維護**、**標籤**和**刪除保護**，保留預設選項。  
![\[選取預設選項的維護、標籤和刪除保護表單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/leave-default-3.png)

1. 現在按一下顯示**建立叢集**的按鈕。  
![\[叢集建立程序結束時顯示的建立叢集按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/create-cluster.png)

### 使用 AWS CLI
<a name="global-clusters-create-cli"></a>

若要建立 Amazon DocumentDB 區域叢集，請呼叫 [create-global-cluster AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/create-global-cluster.html)。下列 AWS CLI 命令會建立名為 的 Amazon DocumentDB 叢集`global-cluster-id`。如需刪除保護的詳細資訊，請參閱 [刪除 Amazon DocumentDB 叢集](db-cluster-delete.md)。

此外， `--engine-version` 是選用參數，預設為最新的主要引擎版本。目前的預設引擎版本為 `5.0.0`（注意：Amazon DocumentDB 8.0 可供使用，但必須明確指定為 `8.0.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 \
      --global-cluster-identifier global-cluster-id \
      --source-db-cluster-identifier arn:aws:rds:us-east-1:111122223333:cluster-id
```

針對 Windows：

```
aws docdb create-db-cluster ^
      --global-cluster-identifier global-cluster-id ^
      --source-db-cluster-identifier arn:aws:rds:us-east-1:111122223333:cluster-id
```

此操作的輸出將會如下所示 (JSON 格式)。

```
{
    "DBCluster": {
        "StorageEncrypted": false,
        "DBClusterMembers": [],
        "Engine": "docdb",
        "DeletionProtection" : "enabled",
        "ClusterCreateTime": "2018-11-26T17:15:19.885Z",
        "DBSubnetGroup": "default",
        "EngineVersion": "4.0.0",
        "MasterUsername": "masteruser",
        "BackupRetentionPeriod": 1,
        "DBClusterArn": "arn:aws:rds:us-east-1:123456789012:cluster:cluster-id",
        "DBClusterIdentifier": "cluster-id",
        "MultiAZ": false,
        "DBClusterParameterGroup": "default.docdb4.0",
        "PreferredBackupWindow": "09:12-09:42",
        "DbClusterResourceId": "cluster-KQSGI4MHU4NTDDRVNLNTU7XVAY",
        "PreferredMaintenanceWindow": "tue:04:17-tue:04:47",
        "Port": 27017,
        "Status": "creating",
        "ReaderEndpoint": "cluster-id.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": "cluster-id.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 API 參考[CreateDBCluster](API_CreateDBCluster.md)》中的 [將 Amazon DocumentDB 執行個體新增至叢集](db-instance-add.md)和 。

區域叢集可用後，您可以使用下列指示在另一個區域中新增次要叢集：[將 AWS 區域 新增至 Amazon DocumentDB 全域叢集](#global-clusters.add-region)。當您新增區域時，您的區域叢集會成為您的主要叢集，並在您選擇的區域中擁有新的次要叢集。

## 將 AWS 區域 新增至 Amazon DocumentDB 全域叢集
<a name="global-clusters.add-region"></a>

全域叢集需要在與主要叢集不同的區域中至少有一個次要叢集，而且您最多可以新增五個次要叢集。請注意，對於您新增的每個次要叢集，您必須將主要叢集中允許的複本數量減少一個。例如，如果您的全域叢集有五個次要區域，您的主要叢集只能有 10 個 （而不是 15 個） 複本。如需詳細資訊，請參閱 [Amazon DocumentDB 全域叢集的組態需求](https://docs.aws.amazon.com/documentdb/latest/developerguide/global-clusters.get-started.html#global-clusters.config)。

### 使用 AWS 管理主控台
<a name="global-clusters-add-region-console"></a>

1. 登入 AWS 管理主控台 並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。  
![\[Amazon DocumentDB 主控台中的叢集頁面。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/choose-cluster.png)

1. 選擇您要新增次要叢集的叢集。確定叢集是 `Available`。  
![\[顯示可用狀態的區域和全域叢集清單，並反白顯示 mydocdbglobalcluster。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/choose-cluster-2.png)

1. 選取**動作**的下拉式清單，然後選擇**新增區域**。  
![\[叢集介面上的動作下拉式清單會顯示新增區域選項。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/add-region.png)

1. 在**新增頁面上 AWS 區域**，選擇次要區域。請注意，您無法為相同的全域叢集選擇已有次要叢集的區域。此外，它不能與主要叢集的區域相同。如果這是您要新增的第一個區域，您也必須指定您選擇的全域叢集識別符。  
![\[使用新增 AWS 區域 表單上的下拉式選單選擇次要區域。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/add-region-2.png)

1. 完成新區域中次要叢集的其餘欄位，然後選取**建立叢集**。完成新增區域後，您可以在 中的**叢集**清單中看到它 AWS 管理主控台。  
![\[將區域新增至叢集的最後步驟，顯示組態表單、每小時成本估算和建立叢集按鈕。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/quick-start/select-add-region.png)

### 使用 AWS CLI
<a name="global-clusters-add-region-cli"></a>
+ 使用 `create-db-cluster` CLI `(--global-cluster-identifier)` 命令搭配全域叢集的名稱。對於其他參數，請執行下列動作：
  + 針對 `--region`，選擇 AWS 區域 與您主要區域不同的 。
  + 請選擇 `--engine` 和 `--engine-version` 參數的特定值。
  + 對於加密的叢集，請將您的主要叢集指定 AWS 區域 為用於加密`--source-region`的 。

下列範例會建立新的 Amazon DocumentDB 叢集，並將其連接至全域叢集做為唯讀次要叢集。在最後一個步驟中，執行個體會新增至新的叢集。

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

針對 Linux、macOS 或 Unix：

```
aws docdb --region secondary-region-id \
  create-db-cluster \
    --db-cluster-identifier cluster-id \
    --global-cluster-identifier global-cluster-id \
    --engine-version version \
    --engine docdb

aws docdb --region secondary-region-id \
  create-db-instance \
    --db-cluster-identifier cluster-id \
    --global-cluster-identifier global-cluster-id \
    --engine-version version \
    --engine docdb
```

針對 Windows：

```
aws docdb --region secondary-region-id ^
  create-db-cluster ^
    --db-cluster-identifier cluster-id ^
    --global-cluster-identifier global-cluster-id ^
    --engine-version version ^
    --engine docdb

aws docdb --region secondary-region-id ^
  create-db-instance ^
    --db-cluster-identifier cluster-id ^
    --global-cluster-identifier global-cluster-id ^
    --engine-version version ^
    --engine docdb
```

## 為您的 Amazon DocumentDB 全域叢集使用快照
<a name="global-clusters.snapshot"></a>

您可以還原 Amazon DocumentDB 叢集的快照，以用作全域叢集的起點。若要這樣做，您必須還原快照並建立新的叢集。這將做為您全域叢集的主要叢集。然後，您可以將另一個區域新增至還原的叢集，將其轉換為全域叢集。

# 管理 Amazon DocumentDB 全域叢集
<a name="global-clusters.manage"></a>

您可以在組成全域叢集的個別叢集上執行大多數管理操作。當您在主控台的**叢集**頁面上選擇**群組相關資源**時，您會看到在關聯的全域叢集下分組的主要叢集和次要叢集。

全域叢集的**組態**索引標籤會顯示叢集執行 AWS 區域 的位置、版本和全域叢集識別符。

**Topics**
+ [修改全域叢集](#global-clusters.modify)
+ [修改參數](#global-clusters.modify-parameters)
+ [移除全域叢集](#global-clusters.remove)
+ [刪除全域叢集](#global-clusters.delete)
+ [無周邊叢集](#global-clusters.headless)

## 修改 Amazon DocumentDB 全域叢集
<a name="global-clusters.modify"></a>

中**叢集**頁面會 AWS 管理主控台 列出所有全域叢集，顯示每個叢集的主要叢集和次要叢集。全域叢集有自己的組態設定。具體而言，它具有與其主要和次要叢集相關聯的區域。

當您變更全域叢集時，有機會取消變更。

當您選擇 Continue (繼續) 時，您可以確認變更。

## 修改 Amazon DocumentDB 全域叢集的參數
<a name="global-clusters.modify-parameters"></a>

您可以針對全域叢集中的每個叢集獨立設定叢集參數群組。大多數參數的運作方式與其他類型的 Amazon DocumentDB 叢集相同。建議您將全域資料庫中所有叢集的設定保持一致。如果您將次要叢集提升為主要叢集，這麼做有助於避免非預期的行為變更。

例如，讓時區和字元集使用相同設定，以避免不同叢集接管成為主要業集時發生不一致的行為。

## 從 Amazon DocumentDB 全域叢集移除叢集
<a name="global-clusters.remove"></a>

在某些情況下，您可能想要從全域叢集中移除叢集。例如，如果主要叢集降級或隔離，您可能想要從全域叢集中移除叢集。然後，它會成為獨立的佈建叢集，可用於建立新的全域叢集。如需詳細資訊，請參閱 [執行 Amazon DocumentDB 全域叢集的手動容錯移轉](global-clusters-disaster-recovery.md#manual-failover)。

您可能也想要移除叢集，因為您想要刪除不再需要的全域叢集。在分離所有相關聯的叢集之後，才能刪除全域叢集，最後保留主要叢集。如需詳細資訊，請參閱[從 Amazon DocumentDB 全域叢集刪除叢集](#global-clusters.delete)。

**注意**  
叢集從全域叢集分離時，不會再與主要叢集同步。它成為具有完整讀取/寫入功能的獨立佈建叢集。此外，它不再顯示在 Amazon DocumentDB 主控台中。只有在您在 主控台中選取叢集所在的區域時，才會顯示它。

您可以使用 AWS CLI、 AWS 管理主控台或 RDS API 從全域叢集中移除叢集。

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

1. 登入 AWS 管理主控台 並導覽至 Amazon DocumentDB 主控台。

1. 選擇左側導覽上的**叢集**。  
![\[影像：顯示現有叢集連結及其對應執行個體連結清單的叢集導覽方塊。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/choose-cluster.png)

1. 展開全域叢集，以便您可以查看所有次要叢集。選取您要移除的次要叢集。選擇**動作**，然後在下拉式選單中，選擇**從全域移除**。  
![\[影像：叢集導覽方塊，顯示現有次要叢集的選擇，並反白顯示「從全域移除」動作。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/remove-global.png)

1. 隨即出現提示，要求您確認是否要從全域叢集分離次要叢集。選擇**移除並提升**，從全域叢集中移除叢集。  
![\[影像：移除和提升提示。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/remove-promote.png)

現在，叢集不再是次要叢集，也不再與主要叢集同步。它是具有完整讀取/寫入功能的獨立叢集。

移除或刪除所有次要叢集之後，您就可以用同樣的方式移除主要叢集。在移除所有次要叢集之前，您無法從全域叢集分離或移除主要叢集。全域叢集可能保留在叢集清單中，沒有區域和AZs。如果您不想再使用此全域叢集，可以刪除 。

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

若要從全域叢集中移除叢集，請使用下列參數執行 `remove-from-global-cluster` CLI 命令：
+ `--global-cluster-identifier` — 全域叢集的名稱 （識別符）。
+ `--db-cluster-identifier` — 從全域叢集中移除的每個叢集的名稱。

下列範例會先移除次要叢集，然後從全域叢集移除主要叢集。

針對 Linux、macOS 或 Unix：

```
aws docdb --region secondary_region \
  remove-from-global-cluster \
    --db-cluster-identifier secondary_cluster_ARN \
    --global-cluster-identifier global_cluster_id

aws docdb --region primary_region \
  remove-from-global-cluster \
    --db-cluster-identifier primary_cluster_ARN \
    --global-cluster-identifier global_cluster_id
```

對全域叢集中的每個次要區域重複 `remove-from-global-cluster``--db-cluster-identifier``secondary_cluster_ARN`命令。

針對 Windows：

```
aws docdb --region secondary_region ^
  remove-from-global-cluster ^
    --db-cluster-identifier secondary_cluster_ARN ^
    --global-cluster-identifier global_cluster_id

aws docdb --region primary_region ^
  remove-from-global-cluster ^
    --db-cluster-identifier primary_cluster_ARN ^
    --global-cluster-identifier global_cluster_id
```

對全域叢集中的每個次要區域重複 `remove-from-global-cluster``--db-cluster-identifier``secondary_cluster_ARN`命令。

------

## 從 Amazon DocumentDB 全域叢集刪除叢集
<a name="global-clusters.delete"></a>

若要刪除全域叢集，請執行下列動作：
+ 從全域叢集移除所有次要叢集。每個叢集都會成為獨立的叢集。請參閱上一節：[從 Amazon DocumentDB 全域叢集移除叢集](#global-clusters.remove)。
+ 從每個獨立叢集刪除所有複本。
+ 從全域叢集移除主要叢集。這將成為獨立的叢集。
+ 從主要叢集，先刪除所有複本，然後刪除主要執行個體。從新獨立叢集刪除主要執行個體通常會同時移除叢集和全域叢集。

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

1. 登入 AWS 管理主控台 並導覽至 Amazon DocumentDB 主控台。

1. 選擇**叢集**並尋找您要刪除的全域叢集。  
![\[影像：顯示現有叢集連結及其對應執行個體連結清單的叢集導覽方塊。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/choose-cluster.png)

1. 選取全域叢集後，從**動作**功能表中選擇**刪除**。  
![\[影像：顯示選取全域叢集並反白顯示「刪除」動作的叢集導覽方塊。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/global-clusters/delete-cluster.png)

確認已從全域叢集中移除所有叢集。全域叢集應該會顯示零個區域和可用AZs，以及零個叢集的大小。如果全域叢集包含任何叢集，您便無法刪除它。您必須先遵循上一個步驟 中的指示**[從 Amazon DocumentDB 全域叢集移除叢集](#global-clusters.remove)**。

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

若要刪除全域叢集，請使用 的名稱 AWS 區域 和全域叢集識別符執行 `delete-global-cluster` CLI 命令，如下列範例所示。

針對 Linux、macOS 或 Unix：

```
aws docdb --region primary_region delete-global-cluster \
   --global-cluster-identifier global_cluster_id
```

針對 Windows：

```
aws docdb --region primary_region delete-global-cluster ^
   --global-cluster-identifier global_cluster_id
```

------

## 在次要區域中建立無周邊 Amazon DocumentDB 叢集
<a name="global-clusters.headless"></a>

雖然 Amazon DocumentDB 全域叢集在與主要叢集 AWS 區域 不同的 中至少需要一個次要叢集，但您可以將無周邊組態用於次要叢集。無周邊次要 Amazon DocumentDB 叢集是沒有執行個體的叢集。這種類型的組態可以降低全域叢集的費用。在 Amazon DocumentDB 叢集中，運算和儲存會分離。如果沒有執行個體，您不需要支付運算費用，只會支付儲存費用。如果設定正確，無周邊次要的儲存磁碟區會與主要叢集保持同步。

您可以像平常在建立 Amazon DocumentDB 全域叢集時一樣新增次要叢集。不過，在主要叢集開始複寫至次要叢集之後，您會從次要叢集刪除唯讀執行個體。此次要叢集現在被視為「無標題」，因為它不再具有執行個體。不過，儲存磁碟區會與主要 Amazon DocumentDB 叢集保持同步。

**重要**  
我們只建議可以容忍整個區域故障超過 15 分鐘的客戶使用無周邊叢集。這是因為使用無周邊次要叢集從全區域故障復原，需要使用者在容錯移轉後建立新的執行個體。新的執行個體可能需要約 10-15 分鐘才能使用。

### 如何將無周邊次要叢集新增至全域叢集
<a name="w2aac33b9c13c17b9"></a>

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

1. 選擇左側導覽上的**叢集**。

1. 選擇需要次要叢集的全域叢集。確定主要叢集是 `Available`。

1. 對於 ** 動作 **，請選擇 ** Add region (新增區域)**。

1. 在**新增區域**頁面上，選擇次要區域。
**注意**  
您無法為相同的全域叢集選擇已有次要叢集的區域。此外，它不能與主要叢集的區域相同。

1. 完成新區域中次要叢集的其餘欄位。這些是與任何叢集執行個體相同的組態選項。

1. 新增區域。將區域新增至全域叢集後，您會在 的 清單中看到該區域`Clusters` AWS 管理主控台。

1. 使用 AWS 管理主控台 或 檢查次要叢集及其讀取器執行個體的狀態，然後再繼續 AWS CLI。如果您使用 ，以下是範例命令 AWS CLI：

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

   新增的次要叢集狀態可能需要幾分鐘的時間才能從建立變更為可用。當叢集可用時，您可以刪除讀取器執行個體。

1. 選取次要叢集中的讀取器執行個體，然後選擇**刪除**。

1. 刪除讀取器執行個體後，次要叢集仍是全域叢集的一部分。它應該沒有與其相關聯的執行個體。

**注意**  
如果發生此類中斷，您可以使用此無周邊次要 Amazon DocumentDB 叢集，從主要區域的意外中斷中手動復原 Amazon DocumentDB 全域叢集。

# 連線至 Amazon DocumentDB 全域叢集
<a name="global-clusters-connect"></a>

連線至全域叢集的方式取決於您是否需要寫入叢集或從叢集讀取：
+ 對於唯讀請求或查詢，您可以連接到 中叢集的讀取器端點 AWS 區域。
+ 若要執行資料操作語言 (DML) 或資料定義語言 (DDL) 陳述式，您需要連接到主要叢集的叢集端點。此端點可能與您的應用程式 AWS 區域 位於不同的 中。

在主控台中檢視全域叢集時，您可以看到與其所有叢集相關聯的所有一般用途端點。

連線至全域叢集的方式取決於您是否需要寫入資料庫或從資料庫讀取。對於您想要從主要區域提供的 DDL、DML 和讀取操作，您應該連線到主要叢集。我們建議您在複本集模式下使用叢集端點連線至主要叢集，讀取偏好設定為 `secondaryPreferred=true`。這會將寫入流量路由到主要叢集的寫入器執行個體，並將流量讀取到主要叢集的複本執行個體。

對於跨區域、唯讀流量，您應該連線到其中一個次要叢集。建議您在複本集模式下使用叢集端點連線至次要叢集。由於所有執行個體都是唯讀複本執行個體，因此您不需要指定讀取偏好設定。若要將延遲降至最低，請選擇您所在區域或最接近您所在區域的讀取器端點。

# 監控 Amazon DocumentDB 全域叢集
<a name="global-clusters-monitor"></a>

Amazon DocumentDB （具有 MongoDB 相容性） 與 CloudWatch 整合，因此您可以收集和分析叢集的操作指標。您可以使用 CloudWatch 主控台、Amazon DocumentDB 主控台、 AWS Command Line Interface (AWS CLI) 或 CloudWatch API 來監控這些指標。

若要監控全域叢集，請使用下列 CloudWatch 指標。


| 指標 | Description | 
| --- | --- | 
| GlobalClusterReplicatedWriteIO | 從主要 中叢集磁碟區複寫 AWS 區域 到次要 中叢集磁碟區的平均計費寫入 I/O 操作數 AWS 區域，每隔 5 分鐘報告一次。複寫ReplicatedWriteIOs到每個次要區域的數目與主要區域VolumeWriteIOPs執行的區域內數目相同。 | 
| GlobalClusterDataTransferBytes | 從主要叢集傳輸 AWS 區域 到次要叢集的資料量 AWS 區域，以位元組為單位。 | 
| GlobalClusterReplicationLag | 將變更事件從主要叢集的 複寫 AWS 區域 到次要叢集的 時，延遲量，以毫秒為單位 AWS 區域 | 

如需如何檢視這些指標的詳細資訊，請參閱[檢視 CloudWatch 資料](https://docs.aws.amazon.com/documentdb/latest/developerguide/cloud_watch.html#cloud_watch-view_data)。

# 災難復原和 Amazon DocumentDB 全域叢集
<a name="global-clusters-disaster-recovery"></a>

**Topics**
+ [執行 Amazon DocumentDB 全域叢集的受管容錯移轉](#managed-failover)
+ [執行 Amazon DocumentDB 全域叢集的手動容錯移轉](#manual-failover)
+ [執行 Amazon DocumentDB 全域叢集的切換](#global-cluster-switchover)
+ [解除封鎖全域叢集切換或容錯移轉](#unblocking-gc-so-fo)

透過使用全域叢集，您可以快速從災難中復原，例如區域故障。從災難復原通常使用 RTO 和 RPO 的值來測量。
+ **復原時間點目標 (RTO)** — 系統在災難發生後恢復運作狀態所需的時間。換言之，RTO 會測量停機時間。對於全域叢集，RTO 會在幾分鐘內完成。
+ **復原點目標 (RPO)** — 可能遺失的資料量 (以時間為單位)。對於全域叢集，RDO 通常以秒為單位測量。
+ 若要從意外中斷中復原，您可以執行跨區域容錯移轉至全球叢集中的其中一個次要節點。當您的全域叢集有多個次要區域時，請務必分離您想要提升為主要區域的所有次要區域。然後，您可以將其中一個次要區域提升為新的主要區域 AWS 區域。最後，您可以在每個其他次要區域中建立新的叢集，並將這些叢集連接到您的全域叢集。

## 執行 Amazon DocumentDB 全域叢集的受管容錯移轉
<a name="managed-failover"></a>

此方法的目的是在發生實際區域災難或服務完全中斷的情況下，提供業務持續性。

在受管容錯移轉期間，您的主要叢集會容錯移轉至您選擇的次要區域，同時維護 Amazon DocumentDB 全域叢集的現有複寫拓撲。選擇的次要叢集會將其中一個唯讀節點提升為完整寫入器狀態。此步驟可讓叢集擔任主要叢集的角色。當此叢集擔任這個新角色時，您的資料庫在短時間內無法使用。當此次要叢集成為新的主要叢集時，可能會遺失未從舊主要叢集複寫到所選次要叢集的資料。舊的主要磁碟區會盡最大努力嘗試擷取快照，然後再與新的主要磁碟區同步，以便在快照上保留未複寫的資料。

**注意**  
只有在主要叢集和所有次要叢集具有相同的引擎版本時，您才能在 Amazon DocumentDB 全域叢集上執行受管跨區域叢集容錯移轉。如果您的引擎版本不相容，您可以依照 [執行 Amazon DocumentDB 全域叢集的手動容錯移轉](#manual-failover) 中的步驟手動執行容錯移轉。  
如果區域的引擎版本不相符，則會封鎖容錯移轉。請檢查是否有任何待定升級並套用，以確保所有區域的引擎版本相符，且全域叢集容錯移轉已解除封鎖。如需詳細資訊，請參閱[解除封鎖全域叢集切換或容錯移轉](#unblocking-gc-so-fo)。

使用此功能之前，建議您執行下列操作以將資料遺失降到最低：
+ 讓應用程式離線，以防止寫入傳送至 Amazon DocumentDB 全域叢集的主要叢集。
+ 檢查所有 Amazon DocumentDB 次要叢集的延遲時間。選擇複寫延遲最低的次要區域，即可將目前失敗的主要區域的資料遺失降到最低。透過檢視 Amazon CloudWatch 中的 指標，檢查全域叢集中所有 Amazon DocumentDB 次要叢集的延遲時間。 `GlobalClusterReplicationLag` Amazon CloudWatch 這些指標會顯示次要叢集複寫到主要叢集落後多遠 （以毫秒為單位）。

  如需 Amazon DocumentDB CloudWatch 指標的詳細資訊，請參閱 [Amazon DocumentDB 指標](cloud_watch.md#cloud_watch-metrics_list)。

在受管容錯移轉期間，所選次要叢集會提升為主要叢集的新角色。不過，它不會繼承主要叢集的各種組態選項。組態不相符可能會導致效能問題、工作負載不相容，以及其他異常行為。為了避免此類問題，建議您解決 Amazon DocumentDB 全域叢集之間的差異：
+ **視需要為新的主要叢集設定 Amazon DocumentDB 叢集參數群組** — 您可以為 Amazon DocumentDB 全域叢集中的每個叢集獨立設定 Amazon DocumentDB 叢集參數群組。因此，當您提升次要叢集以接管主要角色時，次要叢集的參數群組的設定可能會與主要叢集不同。若是如此，請修改提升次要叢集的參數群組，以符合主要叢集的設定。若要了解作法，請參閱[修改 Amazon DocumentDB 叢集參數群組](cluster_parameter_groups-modify.md)。
+ **設定監控工具和選項，例如 Amazon CloudWatch 事件和警示** — 視需要為提升的叢集設定相同的記錄功能、警示等。與參數群組一樣，在容錯移轉程序期間，這些功能的組態不會從主要叢集繼承。某些 CloudWatch 指標 (例如複寫延遲) 僅適用於次要區域。因此，容錯移轉會改變檢視這些指標並對其設定警示的方式，而且可能需要變更任何預先定義的儀表板。如需 Amazon DocumentDB 叢集和監控的詳細資訊，請參閱 [監控 Amazon DocumentDB](monitoring_docdb.md)。

一般而言，選擇的次要叢集會在一分鐘內擔任主要角色。一旦新的主要區域的寫入器節點可用，您就可以將應用程式連線到該節點並恢復工作負載。Amazon DocumentDB 提升新的主要叢集後，會自動重建所有其他次要區域叢集。

由於 Amazon DocumentDB 全域叢集使用非同步複寫，因此每個次要區域中的複寫延遲可能會有所不同。Amazon DocumentDB 會重建這些次要區域，使其具有與新主要區域叢集完全相同的point-in-time資料。整個重建工作的期間可能持續幾分鐘到數小時，取決於儲存磁碟區的大小和區域之間的距離。當次要區域叢集從新的主要區域完成重建時，便可供讀取存取使用。一旦新的主要寫入器提升並可用，新的主要區域的叢集就可以處理 Amazon DocumentDB 全域叢集的讀取和寫入操作。

若要還原全域叢集的原始拓撲，Amazon DocumentDB 會監控舊主要區域的可用性。一旦該區域正常運作且再次可用，Amazon DocumentDB 會自動將其新增回全域叢集做為次要區域。在舊主要區域中建立新的儲存磁碟區之前，Amazon DocumentDB 會嘗試在故障時擷取舊儲存磁碟區的快照。這樣做是為了讓您用它來復原任何遺失的資料。如果此操作成功，Amazon DocumentDB 會將名為 "rds：docdb-unplanned-global-failover-name-of-old-primary-DB-cluster-timestamp" 的快照置於 的快照區段中 AWS 管理主控台。您也可以在 `DescribeDBClusterSnapshots` API 操作傳回的資訊中看到此快照。

**注意**  
舊儲存磁碟區的快照是系統快照，會受到舊的主要叢集上設定的備份保留期限的限制。若要在保留期間之外保留此快照，您可以複製該快照並將它儲存為手動快照。若要進一步了解如何複製快照，包括定價在內，請參閱 [複製叢集快照](backup_restore-copy_cluster_snapshot.md#backup_restore-copy_a_cluster_snapshot)。

還原原始拓撲之後，您可以在對業務和工作負載最有意義時執行切換操作，將全域叢集容錯移轉回原始主要區域。若要啟用，請依照「[執行 Amazon DocumentDB 全域叢集的切換](#global-cluster-switchover)」中的步驟進行。

您可以使用 AWS 管理主控台 AWS CLI、 或 Amazon DocumentDB API 容錯移轉 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. 在導覽窗格中，選擇**叢集**。

1. 尋找並選擇您要容錯移轉的 Amazon DocumentDB 全域叢集。  
![\[影像：選取全域叢集的叢集資料表。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/failover-cluster-table.png)

1. 從**動作**功能表中選擇**切換或容錯移轉**。

1. 在出現的對話方塊中，選擇**容錯移轉**，然後從**新增主要叢集欄位下拉式清單中選擇次要叢集**。  
![\[影像：全域叢集切換或容錯移轉對話方塊。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/switch-fail-confirm.png)

1. 在最後一個欄位中輸入「確認」。然後選擇 **Confirm** (確認)。

   主要叢集的狀態會變更為「**容錯移轉**」。此條件大約需要一分鐘。在此期間，新主要叢集的狀態會顯示「**修改中...**」。提升新的主要節點後，會顯示「**可用**」，並能夠提供讀取和寫入交易。包含舊主要節點的次要區域會在重新同步至新的主要節點時顯示「**重新同步...**」。與新的主要節點類似，只有在狀態變更為「**可用**」時，它才能提供交易。

1. 完成時，原始主要叢集會成為次要叢集。選取的次要叢集會成為主要叢集。  
![\[影像：顯示新主要叢集的叢集資料表。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/failover-complete.png)

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

**在 Amazon DocumentDB 全域叢集上執行受管容錯移轉**

執行 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/failover-global-cluster.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/failover-global-cluster.html) CLI 命令以容錯移轉您的 Amazon DocumentDB 全域叢集。使用 命令，傳遞下列選項的值：
+ `--region`
+ `--global-cluster-identifier`
+ `--target-db-cluster-identifier`
+ `--allow-data-loss`

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

針對 Linux、macOS 或 Unix：

```
aws docdb failover-global-cluster \
   --region region_of_selected_secondary \
   --global-cluster-identifier global_cluster_id \
   --target-db-cluster-identifier arn_of_secondary_to_promote \
   --allow-data-loss
```

針對 Windows：

```
aws docdb failover-global-cluster ^
   --region region_of_selected_secondary ^
   --global-cluster-identifier global_cluster_id ^
   --target-db-cluster-identifier arn_of_secondary_to_promote ^
   --allow-data-loss
```

------

## 執行 Amazon DocumentDB 全域叢集的手動容錯移轉
<a name="manual-failover"></a>

如果一個叢集中的整個叢集 AWS 區域 無法使用，您可以將全域叢集中的另一個叢集提升為具有讀取/寫入功能。

如果不同 中的叢集 AWS 區域 是做為主要叢集更好的選擇，您可以手動啟用全域叢集容錯移轉機制。例如，您可以增加其中一個次要叢集的容量，然後將它提升為主要叢集。或者， 之間的活動平衡 AWS 區域 可能會變更，因此將主要叢集切換到不同的叢集 AWS 區域 可能會降低寫入操作的延遲。

下列程序概述如何提升 Amazon DocumentDB 全域叢集中的其中一個次要叢集。

若要提升次要叢集：

1. 在中斷的情況下，停止對 中的主要叢集發出 DML 陳述 AWS 區域 式和其他寫入操作。

1. 從次要 識別叢集 AWS 區域 ，以用作新的主要叢集。如果您的全域叢集 AWS 區域 有兩個 （或更多） 次要叢集，請選擇延遲時間最短的次要叢集。

1. 從全域叢集分離您選擇的次要叢集。

   從全域叢集移除次要叢集會立即停止從主要叢集到此次要叢集的複寫，並將其提升為具有完整讀取/寫入功能的獨立佈建叢集。與中斷區域中的主要叢集相關聯的任何其他次要叢集仍然可用，並且可以接受來自應用程式的呼叫。它們也會取用資源。由於您要重新建立 全域叢集，為了避免分頻和其他問題，請在接下來的步驟中建立新的全域叢集之前移除其他次要叢集。

   如需分離的詳細步驟，請參閱[從 Amazon DocumentDB 全域叢集移除叢集](global-clusters.manage.md#global-clusters.remove)。

1. 當您開始在下一個步驟中新增區域時，此叢集會成為新全域叢集的主要叢集。

1. 將 AWS 區域 新增至叢集。當您執行這項操作時，從主要到次要的複寫程序即會開始。

1.  AWS 區域 視需要新增更多 ，以重新建立支援應用程式所需的拓撲。請確定應用程式寫入會在進行這類變更之前、期間和之後傳送到正確的叢集，以避免全域叢集中叢集之間的資料不一致 （分裂大腦問題）。

1. 當中斷解決且您已準備好再次將原始 指派 AWS 區域 為主要叢集時，請反向執行相同的步驟。

1. 從全域叢集移除其中一個次要叢集。這將使其能夠提供讀取/寫入流量。

1. 將所有寫入流量重新導向至原始 中的主要叢集 AWS 區域。

1. 新增 AWS 區域 以在與之前 AWS 區域 相同的 中設定一或多個次要叢集。

您可以使用 AWS SDKs來管理 Amazon DocumentDB 全域叢集，讓您建立解決方案來自動化災難復原和業務持續性規劃使用案例的全域叢集容錯移轉程序。其中一種解決方案可根據 Apache 2.0 授權提供給客戶，並可從此處的工具儲存庫存取。 [https://github.com/awslabs/amazon-documentdb-tools/tree/master/global-clusters-automation](https://github.com/awslabs/amazon-documentdb-tools/tree/master/global-clusters-automation)此解決方案利用 Amazon Route 53 進行端點管理，並提供可以根據適當事件觸發的 AWS Lambda 函數。

## 執行 Amazon DocumentDB 全域叢集的切換
<a name="global-cluster-switchover"></a>

您可以使用切換來例行變更主要叢集的區域。此方法適用於受控情況，例如操作維護及其他計劃內操作程序。

使用切換有三種常見的使用案例：
+ 對於特定行業強制實施的「區域輪換」需求。例如，金融服務法規可能希望第 0 層系統切換到不同的區域數個月時間，以確保定期演練災難復原程序。
+ 對於多區域「全天候」應用程式。例如，某家公司可能希望根據不同時區的營業時間，在不同區域提供較低的延遲寫入。
+ 可作為在容錯移轉後，容錯回復至原始主要區域的零資料遺失方法。

**注意**  
切換旨在用於運作狀態良好的 Amazon DocumentDB 全域叢集。若要從意外中斷復原，請依照 [執行 Amazon DocumentDB 全域叢集的手動容錯移轉](#manual-failover) 中適當的程序進行。  
若要執行切換，所有次要區域都必須執行與主要區域完全相同的引擎版本。如果區域的引擎版本不相符，則會封鎖切換。請檢查是否有任何待定升級，並將其套用以確保所有區域的引擎版本相符，並且全域叢集切換已解除封鎖。如需詳細資訊，請參閱[解除封鎖全域叢集切換或容錯移轉](#unblocking-gc-so-fo)。

在切換期間，Amazon DocumentDB 會在維護您全域叢集的現有複寫拓撲時，將主要叢集切換到您選擇的次要區域。在開始切換程序之前，Amazon DocumentDB 會等待所有次要區域叢集與主要區域叢集完全同步。然後，主要區域中的資料庫叢集會變成唯讀，而選擇的次要叢集會將其中一個唯讀節點提升為完整寫入器狀態。將此節點提升為寫入器可讓該次要叢集擔任主要叢集的角色。由於所有次要叢集都在程序開始時與主要叢集同步，新的主要叢集會繼續 Amazon DocumentDB 全域叢集的操作，而不會遺失任何資料。您的資料庫在短時間內無法使用，因為同時間主要叢集和選取的次要叢集會承擔其新角色。

若要最佳化應用程式可用性，建議您在使用此功能之前先執行下列動作：
+ 在非尖峰時間或寫入主要叢集最少的另一個時間執行此操作。
+ 讓應用程式離線，以防止寫入傳送至 Amazon DocumentDB 全域叢集的主要叢集。
+ 透過檢視 Amazon CloudWatch 中的 指標，檢查全域叢集中所有 Amazon DocumentDB 次要叢集的延遲時間。 `GlobalClusterReplicationLag` Amazon CloudWatch 此指標顯示次要叢集複寫到主要叢集落後多遠 （以毫秒為單位）。此值與 Amazon DocumentDB 完成轉換所需的時間直接成正比。因此，延遲值越大，轉換所需的時間越長。

  如需 Amazon DocumentDB CloudWatch 指標的詳細資訊，請參閱 [Amazon DocumentDB 指標](cloud_watch.md#cloud_watch-metrics_list)。

在轉換期間，選擇的次要資料庫叢集會提升為作為主要資料庫叢集的新角色。但是，它不會繼承主要資料庫叢集的各種組態選項。組態不相符可能會導致效能問題、工作負載不相容，以及其他異常行為。為了避免此類問題，建議您解決 Amazon DocumentDB 全域叢集之間的差異：
+ **視需要為新的主要叢集設定 Amazon DocumentDB 資料庫叢集參數群組** — 您可以為 Amazon DocumentDB 全域叢集中的每個叢集獨立設定 Amazon DocumentDB 叢集參數群組。這表示當您提升次要資料庫叢集以接管主要角色時，其參數群組可能會設定與主要資料庫叢集不同的參數群組。如果是這樣，請修改提升的次要資料庫叢集的參數群組，以符合主要叢集的設定。若要瞭解如何操作，請參閱[管理 Amazon DocumentDB 叢集參數群組](cluster_parameter_groups.md)。
+ **設定監控工具和選項，例如 Amazon CloudWatch Events 和警示** — 視需要為提升的叢集設定相同的記錄功能、警示等。與參數群組一樣，在轉換程序期間，這些功能的組態不會從主要叢集繼承。有些 CloudWatch 指標，例如複寫延遲，僅適用於主要區域。因此，轉換會改變檢視這些指標並對其設定警示的方式，而且可能需要變更任何預先定義的儀表板。如需詳細資訊，請參閱[監控 Amazon DocumentDB](monitoring_docdb.md)。

**注意**  
角色轉換通常需要數分鐘才能完成。

當切換程序完成時，提升的 Amazon DocumentDB 叢集可以處理全域叢集的寫入操作。

您可以使用 AWS 管理主控台 或 來切換 Amazon DocumentDB 全域叢集 AWS CLI：

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

**在 Amazon DocumentDB 全域叢集上執行切換**

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

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

1. 尋找並選取您要切換的 Amazon DocumentDB 全域叢集。  
![\[影像：選取全域叢集的叢集資料表。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/switchover-cluster-table.png)

1. 從**動作**功能表中選擇**切換或容錯移轉**。

1. 在出現的對話方塊中，選擇**切換**，然後從**新增主要叢集欄位下拉式清單中選擇次要叢集**。  
![\[影像：選取次要叢集的叢集切換對話方塊。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/switch-fail-confirm-2.png)

1. 選擇**確認**。

   主要叢集的狀態會變更為「**切換」**。此條件大約需要三分鐘。在此期間，所有區域叢集的狀態會顯示「**修改中...**」。同步區域並提升新的主要區域後，會顯示所有狀態欄位的「**可用**」，並且能夠提供交易。

1. 完成時，原始主要叢集會成為次要叢集。選取的次要叢集會成為主要叢集。  
![\[影像：顯示新主要叢集的叢集資料表。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/failover-complete.png)

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

**在 Amazon DocumentDB 全域叢集上執行切換**

執行 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/switchover-global-cluster.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/switchover-global-cluster.html) CLI 命令來切換您的 Amazon DocumentDB 全域叢集。使用 命令，傳遞下列選項的值：
+ `--region`
+ `--global-cluster-identifier`
+ `--target-db-cluster-identifier`

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

針對 Linux、macOS 或 Unix：

```
aws docdb switchover-global-cluster \
   --region region_of_primary \
   --global-cluster-identifier global_cluster_id \
   --target-db-cluster-identifier arn_of_secondary_to_promote
```

針對 Windows：

```
aws docdb switchover-global-cluster ^
   --region region_of_primary ^
   --global-cluster-identifier global_cluster_id ^
   --target-db-cluster-identifier arn_of_secondary_to_promote
```

------

## 解除封鎖全域叢集切換或容錯移轉
<a name="unblocking-gc-so-fo"></a>

當全域叢集中的所有區域叢集都位於相同的引擎版本時，會封鎖全域叢集切換和容錯移轉。如果版本不相符，您可能會在呼叫切換或容錯移轉時看到此錯誤：指定的目標資料庫叢集正在執行與來源資料庫叢集具有不同修補程式層級的引擎版本。我們建議您定期套用最新的引擎版本，以確保您執行最新的更新，讓全域叢集保持良好狀態。

若要解決此錯誤，請先套用任何待定的維護動作項目，將所有次要區域更新為相同的引擎版本。若要檢視待定的維護動作項目，並套用任何必要的變更以修正問題，請執行下列其中一個索引標籤中的指示：

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

若要解除封鎖全域叢集切換或容錯移轉，您必須判斷叢集是否有任何待定的維護動作，並將其套用。請依照下列步驟檢視和套用維護動作：

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

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

1. 在**叢集**表格中，在叢集**識別符欄中尋找您的全域叢集**。在全域叢集下，記下指定全域叢集的每個次要叢集和主要叢集，並為每個叢集執行以下步驟。

1. 對於每個次要叢集：

   1. 如果您的叢集有可用的更新，則會在**維護**欄中指出為**可用**、**必要**或**下一個視窗**。

   1. 若要採取動作，請選擇叢集以顯示其詳細資訊，然後選擇**維護和備份**。**待定維護**項目隨即出現。

   1. 在**描述**下，如果它指出「新的維護更新可用」，請選取它，然後選擇**立即套用**。

1. 對於您的主要叢集：

   1. 如果您的叢集有可用的更新，則會在**維護**欄中指出為**可用**、**必要**或**下一個視窗**。

   1. 若要採取動作，請選擇叢集以顯示其詳細資訊，然後選擇**維護和備份**。**待定維護**項目隨即出現。

   1. 在**描述**下，如果它指出「新的維護更新可用」，請選取它，然後選擇**立即套用**。

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

若要解除封鎖全域叢集切換或容錯移轉，您必須判斷叢集是否有任何待定的維護動作，並加以套用。請依照下列步驟，先在次要叢集上檢視和套用維護動作，然後在全域叢集的主要叢集上套用維護動作：

1. 先在每個次要區域的區域叢集上執行下列項目，再對主要區域區域叢集執行下列動作。

1. 使用 `--resource-identifier`選項執行 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-pending-maintenance-actions.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-pending-maintenance-actions.html) CLI 命令，以判斷您的 Amazon DocumentDB 區域叢集是否有任何可用的維護動作。

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

   針對 Linux、macOS 或 Unix：

   ```
   aws docdb describe-pending-maintenance-action \
      --resource-identifier arn:aws:rds:us-east-1:001234567890:cluster:docdb-2025-03-27-19-21-15
   ```

   針對 Windows：

   ```
   aws docdb describe-pending-maintenance-action ^
      --resource-identifier arn:aws:rds:us-east-1:001234567890:cluster:docdb-2025-03-27-19-21-15
   ```

   結果如下所示：

   ```
   {
       "PendingMaintenanceActions": [
           {
               "ResourceIdentifier": "arn:aws:rds:us-east-1:001234567890:cluster:docdb-2025-03-27-19-21-15",
               "PendingMaintenanceActionDetails": [
                   {
                       "Action": "system-update",
                       "CurrentApplyDate": "2025-04-11T03:01:00Z",
                       "Description": "db-version-upgrade",
                       "ForcedApplyDate": "2025-06-18T03:01:00Z",
                       "AutoAppliedAfterDate": "2025-05-11T03:01:00Z"
                       "OptInStatus": "pending"
                   }
               ]
           }
       ]
   }
   ```

1. 如果需要維護動作，請使用下列選項執行 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/apply-pending-maintenance-action.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/apply-pending-maintenance-action.html) CLI 命令：
   + `--resource-identifier`
   + `--apply-action`
   + `--opt-in-type`
   + `--region`

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

   針對 Linux、macOS 或 Unix：

   ```
   aws docdb apply-pending-maintenance-action \
      --resource-identifier arn:aws:rds:us-east-1:001234567890:cluster:docdb-2025-03-27-19-21-15 \
      --apply-action system-update \
      --opt-in-type immediate \
      --region us-east-1
   ```

   針對 Windows：

   ```
   aws docdb apply-pending-maintenance-action ^
      --resource-identifier arn:aws:rds:us-east-1:001234567890:cluster:docdb-2025-03-27-19-21-15 ^
      --apply-action system-update ^
      --opt-in-type immediate ^
      --region us-east-1
   ```

1. 維護動作完成後，請再次執行 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-pending-maintenance-actions.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-pending-maintenance-actions.html)命令，以確保叢集沒有其他待處理的動作。

   您想要的結果是：

   ```
   {
       "PendingMaintenanceActions": []
   }
   ```

------
#### [ Using the Amazon DocumentDB API ]

若要解除封鎖全域叢集切換或容錯移轉，您必須判斷叢集是否有任何待定的維護動作，並加以套用。使用下列 APIs來檢視和套用維護動作：

1. 先在每個次要區域的區域叢集上執行下列項目，再對主要區域區域叢集執行下列動作。

1. 呼叫 [https://docs.aws.amazon.com/documentdb/latest/developerguide/API_PendingMaintenanceAction.html](https://docs.aws.amazon.com/documentdb/latest/developerguide/API_PendingMaintenanceAction.html) API 來判斷您的 Amazon DocumentDB 全域叢集是否有任何可用的維護動作。

1. 透過呼叫 [https://docs.aws.amazon.com/documentdb/latest/developerguide/API_ApplyPendingMaintenanceAction.html](https://docs.aws.amazon.com/documentdb/latest/developerguide/API_ApplyPendingMaintenanceAction.html) API 套用任何變更。

------