

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

# 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**
+ [配置](#global-clusters.config)
+ [创建全局集群](#global-clusters-create)
+ [向全局集群添加区域](#global-clusters.add-region)
+ [使用快照](#global-clusters.snapshot)

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

Amazon DocumentDB 全球集群至少跨越两个。 AWS 区域主区域支持具有一个主（写入器）实例和多达 15 个副本实例的集群，而辅助区域运行一个完全由多达 16 个副本实例组成的只读集群。一个全局集群可以有多达五个辅助区域。该表列出了全局集群中允许的集群、实例和副本的最大数量。


| 说明 | 主要 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 管理控制台，导航到**亚马逊 Documen** tDB。

1. 抵达 Amazon DocumentDB 控制台后，选择**集群**。  
![\[Amazon DocumentDB 控制台中的“集群”页面。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/choose-cluster.png)

1. 选择**创建**。  
![\[“创建”按钮显示在“集群”表右上角。\]](http://docs.aws.amazon.com/zh_cn/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_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/create-config.png)

1. 在**身份验证**部分，填写主用户名和主密码。  
![\[用于为新的 Amazon DocumentDB 集群指定主用户名和密码的“身份验证”表单。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/create-auth.png)

1. 选择**显示高级设置**。  
![\[显示“取消”和“创建集群”按钮旁边的高级设置切换按钮。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/show-advanced.png)

1. 在**网络设置** 部分中：
   + 保留**虚拟私有云（VPC）**和**子网组**的默认选项。  
![\[“网络设置”表单，其中显示了 VPC、子网组和 VPC 安全组等选项。VPC 和子网组字段已选择默认选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/default-vpc-1.png)
   + 对于 **VPC 安全组**，应已添加**默认（VPC）**。  
![\[“网络设置”表单，显示已添加默认 VPC。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/default-vpc-2.png)
   + 在 **VPC 安全组**字段中键入 `DocDB`，然后选择 **DocDB-Inbound（VFC）**。  
![\[已在“VPC 安全组”下拉菜单中选择“DocDB-Inbound VFC”。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/inbound-vfc.png)

1. 对于**群集选项**和 **E ncryption-at-rest**，保留默认选项。  
![\[在选择默认选项的情况下 Encryption-at-rest对选项和表单进行聚类。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/leave-default-1.png)

1. 对于**备份**和**日志导出**，保留默认选项。  
![\[“备份”和“日志导出”表单已选择默认选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/leave-default-2.png)

1. 对于**维护**、**标签**和**删除保护**，保留默认选项。  
![\[“维护”、“标签”和“删除保护”表单已选择默认选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/leave-default-3.png)

1. 现在单击显示**创建集群**的按钮。  
![\[在集群创建过程结束时显示“创建集群”按钮。\]](http://docs.aws.amazon.com/zh_cn/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`

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

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

对于 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)。

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

一旦您的区域集群可用，您就可以使用以下说明在另一个区域添加辅助集群：[向 Amazon DocumentDB 全局集群添加 AWS 区域](#global-clusters.add-region)。添加区域后，您的区域集群将成为您的主集群，而您在自己选择的区域中有一个新的辅助集群。

## 向 Amazon DocumentDB 全局集群添加 AWS 区域
<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 管理控制台 并打开亚马逊文档数据库控制台。

1. 在导航窗格中，选择**集群**。  
![\[Amazon DocumentDB 控制台中的“集群”页面。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/choose-cluster.png)

1. 选择您要要向其中添加辅助集群的集群。确保集群为 `Available`。  
![\[显示可用状态的区域和全球集群列表，突出显示了 mydocdbglobalcluster。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/choose-cluster-2.png)

1. 选择**操作**的下拉菜单列表，然后选择**添加区域**。  
![\[“集群”界面上的“操作”下拉列表显示了“添加区域”选项。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/add-region.png)

1. 在**添加 AWS 区域** 页面上，选择辅助区域。您不能为同一个全局集群选择已有辅助集群的区域。此外，该区域也不能是主集群所在的同一个区域。如果这是您正在添加的第一个区域，则您还必须指定您选择的全局集群标识符。  
![\[使用添加 AWS 区域 表单上的下拉菜单选择辅助区域。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/add-region-2.png)

1. 在新区域中填写辅助集群的其余字段，然后选择**创建集群**。完成添加区域后，您可以在 AWS 管理控制台中的**集群**列表中看到该区域。  
![\[向集群添加区域的最后步骤，显示配置表单、每小时成本估算和“创建集群”按钮。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/quick-start/select-add-region.png)

### 使用 AWS CLI
<a name="global-clusters-add-region-cli"></a>
+ 使用带有 `(--global-cluster-identifier)` 全局集群名称的 `create-db-cluster` CLI 命令。对于其他参数，请执行以下操作：
  + 对于`--region`，请选择与您的主要区域不同的 AWS 区域 区域。
  + 为 `--engine` 和 `--engine-version` 参数选择特定的值。
  + 对于加密集群，请将您的主 AWS 区域 集群指定`--source-region`为用于加密的集群。

以下示例创建了一个新 Amazon DocumentDB 数据库集群，并将其作为只读辅助集群附加到全局集群。在最后一步中，实例将添加到新集群。

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

对于 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)。

**注意**  
当集群从全局集群中分离时，它将不再与主集群同步。它变成了具有全部 read/write 功能的独立预配置集群。此外，它在 Amazon DocumentDB 控制台中不再可见。只有您在控制台中选择集群位于其中的区域时，它才可见。

您可以使用 AWS 管理控制台、或 RDS API 从全局集群中 AWS CLI移除集群。

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

1. 登录 AWS 管理控制台 并导航到亚马逊 DocumentDB 控制台。

1. 请在左侧导航中，选择**集群**。  
![\[图片：集群导航框中显示一列现有集群链接及其对应的实例链接。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/choose-cluster.png)

1. 展开全局群集，从而您可以看到所有的辅助群集。选择您想删除的辅助集群。选择**操作**，然后在下拉菜单中，选择**从全局集群删除**。  
![\[图片：集群导航框中显示了选定的现有辅助集群，并突出显示“从全局移除”操作。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/remove-global.png)

1. 将会出现一个提示，要求确认您要将辅助集群从全局集群中分离。选择 **删除并提升**以从全局集群中删除集群。  
![\[图片：“移除并升级” 提示。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/remove-promote.png)

现在集群不再作为主集群中的辅助集群，也不再与主集群同步。它是一个 read/write 功能齐全的独立集群。

在移除或删除所有辅助集群后，您可以按同样方式移除主集群。在删除全部辅助集群之前，您无法将主集群从全局集群中分离或删除。全局群集可能保留在集群列表中，区域为零和 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 管理控制台 并导航到亚马逊 DocumentDB 控制台。

1. 选择**集群**并查找您想要删除的全局集群。  
![\[图片：集群导航框中显示一列现有集群链接及其对应的实例链接。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/global-clusters/choose-cluster.png)

1. 选择您的全局群集，从**操作**菜单中选择**删除**。  
![\[图片：集群导航框中显示了选定的全局集群，并突出显示“删除”操作。\]](http://docs.aws.amazon.com/zh_cn/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 管理控制台 并打开[亚马逊 DocumentDB 控制台](https://console.aws.amazon.com/rds/)。

1. 请在左侧导航中，选择**集群**。

1. 选择需要辅助集群的全局集群。确保主数据库集群为 `Available`。

1. 对于 **Actions (操作)**，选择 **Add region (添加区域)**。

1. 在**添加区域**页面上，选择辅助区域。
**注意**  
您不能为同一个全局集群选择已有辅助集群的区域。此外，该区域也不能是主集群所在的同一个区域。

1. 在新区域中填写辅助集群的其余字段。这些配置选项与任何集群实例的配置选项相同。

1. 添加区域。完成向自身全局集群添加该区域后，您将在 AWS 管理控制台中 `Clusters` 的列表中看到它。

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) 或 API 来监控这些指标。 CloudWatch 

要监控全局集群，请使用以下 CloudWatch 指标。


| 指标 | 说明 | 
| --- | --- | 
| GlobalClusterReplicatedWriteIO | 按照 5 分钟报告从主 AWS 区域 卷中的群集卷复制到辅助 AWS 区域卷的集群卷的计费写入 I/O 操作的平均数量。复制到每个辅助区域的 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)**：可能丢失的数据量（按时间衡量）。对于全局集群，RPO 通常以秒为单位进行测量。
+ 要从计划外停机中恢复，您可以执行跨区域故障转移到全局集群中的一个辅助区域。当全局集群有多个辅助区域时，请确保分离您想要提升为主区域的所有辅助区域。然后，您将其中一个辅助区域提升为新的主 AWS 区域。最后，在其他每个辅助区域中创建新的集群，并将这些集群附加到全局集群。

## 对 Amazon DocumentDB 全局集群执行托管式失效转移
<a name="managed-failover"></a>

这种方法用于在发生真实的区域性灾难或完全的服务级别中断时实现业务连续性。

在托管式失效转移期间，主集群会失效转移到您选择的辅助区域，同时维护 Amazon DocumentDB 全局集群的现有复制拓扑。所选的辅助集群将其一个只读节点提升为完全写入器状态。此步骤允许集群代入主集群的角色。在此集群代入其新角色期间，您的数据库在短时间内不可用。当该辅助集群成为新的主集群时，未从旧的主集群复制到选定辅助集群的数据可能会丢失。在与新主卷同步之前，旧主卷会尽力尝试拍一张快照，以便在快照中保存未被复制的数据。

**注意**  
仅当主集群和所有辅助集群具有相同的引擎版本时，您才能对 Amazon DocumentDB 全局集群执行托管式跨区域集群失效转移。如果您的引擎版本不兼容，则可以按照[对 Amazon DocumentDB 全局集群执行手动失效转移](#manual-failover)中的步骤手动执行失效转移。  
如果区域的引擎版本不匹配，则失效转移将被阻止。请检查是否有任何待处理的升级并应用这些升级，以确保所有区域的引擎版本都匹配并且全局集群失效转移不会被阻止。有关更多信息，请参阅 [解除全局集群切换或失效转移的阻止](#unblocking-gc-so-fo)。

为最大限度地减少数据丢失，我们建议您在使用此特征之前执行以下操作：
+ 使应用程序离线以防止写入内容被发送到 Amazon DocumentDB 全局集群的主集群。
+ 查看所有 Amazon DocumentDB 辅助集群的滞后时间。选择复制滞后最小的辅助区域可以最大限度地减少当前出现故障的主区域的数据丢失。通过查看亚马逊中的`GlobalClusterReplicationLag`指标，查看全局集群中所有 Amazon DocumentDB 辅助集群的延迟时间。 CloudWatch这些指标显示复制到辅助集群滞后于复制到主集群的时间（以毫秒为单位）。

  有关亚马逊 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: name-of-old-primary-db-cluster docdb-unplanned-global-failover-timeStamp” 的快照放在快照部分中。 AWS 管理控制台还可以在 `DescribeDBClusterSnapshots` API 操作返回的信息中看到列出的此快照。

**注意**  
旧存储卷的快照是系统快照，受旧的主集群上配置的备份保留期限制。要在保留期之外保留此快照，可以复制它以另存为手动快照。要了解有关复制快照的更多信息（包括定价），请参阅[复制集群快照](backup_restore-copy_cluster_snapshot.md#backup_restore-copy_a_cluster_snapshot)。

还原原始拓扑后，您可以通过在对业务和工作负载最有意义的时候执行切换操作，将全局集群失效自动恢复到原始主区域。为此，请按照[对 Amazon DocumentDB 全局集群执行切换](#global-cluster-switchover)中的步骤进行操作。

您可以使用 AWS 管理控制台、或 Amazon DocumentDB API 对亚马逊文档数据库全局集群进行故障切换。 AWS CLI

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

**对 Amazon DocumentDB 全局集群执行托管式失效转移**

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

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

1. 查找并选择要进行失效转移的 Amazon DocumentDB 全局集群。  
![\[图片：选择了全局集群的集群表。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/failover-cluster-table.png)

1. 从**操作**菜单中选择**切换或失效转移**。

1. 在弹出的对话框中，选择**失效转移**，然后从**新主集群**字段下拉列表中选择辅助集群。  
![\[图片：全局集群切换或失效转移对话框。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/switch-fail-confirm.png)

1. 在最后一个字段中，键入“confirm”。然后，选择 **Confirm（确认）**。

   主集群的状态更改为“**失效转移**”。这种情况应该需要一分钟左右。在此期间，新主集群的状态显示“**正在修改...**”。新主集群升级后将显示“可用”，并且能够**处理**读取和写入事务。与新主集群重新同步时，包含旧主集群的辅助区域将显示“**正在重新同步...**”。与新主集群类似，只有在状态变为“**可用**”后，旧主集群才能处理事务。

1. 完成后，原始主集群将变为辅助集群。选定的辅助集群将变为主集群。  
![\[图片：显示新主集群的集群表。\]](http://docs.aws.amazon.com/zh_cn/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`

在以下示例中，将每个*user input placeholder*示例替换为集群的信息。

对于 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 区域 不可用，则可以将全局集群中的另一个集群提升为具有 read/write 功能。

如果另一个 AWS 区域 中的集群成为主集群效果更好，您可以手动启用全局集群失效转移机制。例如，您可以提高其中一个辅助集群的容量，然后将其提升成为主集群。或者，它们之间的活动平衡 AWS 区域 可能会发生变化，因此将主集群切换到不同的集群 AWS 区域 可能会降低写入操作的延迟。

以下过程概述了如何在 Amazon DocumentDB 全局集群中提升其中一个辅助集群。

提升辅助集群

1. 停机时停止向主集群发出 DML 语句和其他写入操作。 AWS 区域 

1. 从辅助群集中识别出 AWS 区域 要用作新的主群集的群集。如果您的全局群集中有两个（或更多）辅助 AWS 区域 群集，请选择延迟时间最少的辅助群集。

1. 从全局集群分离您所选的辅助集群。

   从全局群集中移除辅助群集会立即停止从主群集向该辅助群集的复制，并将其提升为具有全部 read/write 功能的独立预配置群集。与该停机区域中的主集群关联的任何其他辅助集群仍然可用，并且可以接受应用程序的调用。它们还会消耗资源。由于您要重新创建全局集群，为避免分裂大脑和其他问题，请先删除其他辅助集群，再在后续步骤中创建新的全局集群。

   有关分离的详细步骤，请参阅 [从 Amazon DocumentDB 全局集群中删除某集群](global-clusters.manage.md#global-clusters.remove)。

1. 在下一步中，当您开始向集群添加区域时，该集群将成为新的全局数据库的主集群。

1.  AWS 区域 向集群中添加。执行此操作后，从主数据库集群到辅助数据库集群的复制过程将会开始。

1. 根据需要添加更多内容 AWS 区域 ，以重新创建支持您的应用程序所需的拓扑。确保在做出这些更改之前、更改期间和更改之后，将应用程序写入内容发送到正确的集群，以避免全局集群中集群之间的数据不一致（大脑分裂问题）。

1. 当停机问题已解决且您已准备好再次将原始 AWS 区域 指定为主集群时，请按相反顺序执行相同步骤：

1. 从全局集群移除其中一个辅助集群。这将使其能够为 read/write 流量提供服务。

1. 将所有写入流量重定向到原始 AWS 区域中的主集群。

1. 添加 AWS 区域 可以 AWS 区域 像以前一样设置一个或多个辅助群集。

Amazon DocumentDB 全球集群可以使用进行管理 AWS SDKs，使您能够创建解决方案，自动执行灾难恢复和业务连续性规划用例的全局集群故障转移流程。其中一个解决方案已通过 Apache 2.0 许可提供给我们的客户，并且可以从我们的工具库中访问[此处](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 层系统在几个月内切换到不同的区域，以确保定期执行灾难恢复过程。
+ 适用于多区域 “follow-the-sun” 应用程序。例如，一家企业可能希望根据不同时区的工作时间在不同区域提供延迟更低的写入。
+ 作为故障转移后故障恢复到原始主区域 zero-data-loss的一种方法。

**注意**  
切换功能专为用于正常运行的 Amazon DocumentDB 全局集群而设计。要从计划外停机中进行恢复，请按照[对 Amazon DocumentDB 全局集群执行手动失效转移](#manual-failover)中的相应过程操作。  
要执行切换，所有辅助区域都必须运行与主区域完全相同的引擎版本。如果区域的引擎版本不匹配，则切换将被阻止。请检查是否有任何待处理的升级并应用这些升级，以确保所有区域的引擎版本都匹配并且全局集群切换不会被阻止。有关更多信息，请参阅 [解除全局集群切换或失效转移的阻止](#unblocking-gc-so-fo)。

在切换过程中，Amazon DocumentDB 会将您的主集群切换到您选择的辅助区域，同时维护全局集群的现有复制拓扑。在开始切换过程之前，Amazon DocumentDB 会等待所有辅助区域集群与主区域集群完全同步。然后，主区域中的数据库集群将变为只读状态，所选辅助集群将其一个只读节点提升为完全写入器状态。将此节点提升为写入器将允许该辅助集群代入主集群的角色。由于所有辅助集群在过程开始时都与主集群同步，因此新的主集群将继续执行 Amazon DocumentDB 全局集群的操作，而不会丢失任何数据。您的数据库在短时间内不可用，而主集群和所选的辅助集群将担任其新角色。

为了优化应用程序可用性，我们建议您在使用此特征之前执行以下操作：
+ 在非高峰时间段，或在向主集群写入操作最少的其他时间执行此操作。
+ 使应用程序离线以防止写入内容被发送到 Amazon DocumentDB 全局集群的主集群。
+ 通过查看亚马逊中的`GlobalClusterReplicationLag`指标，查看全局集群中所有 Amazon DocumentDB 辅助集群的延迟时间。 CloudWatch该指标显示复制到辅助集群滞后于复制到主集群的时间（以毫秒为单位）。该值与 Amazon DocumentDB 完成切换所需的时间成正比。因此，滞后值越大，切换所需的时间就越长。

  有关亚马逊 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 Ev CloudWatch ents 和警报** — 根据全局集群的需要，为提升的集群配置相同的日志记录功能、警报等。与参数组一样，在切换过程中，这些特征的配置不会从主数据库集群继承。某些 CloudWatch 指标（例如复制延迟）仅适用于主要区域。因此，切换会更改查看这些指标和对指标设置警报的方式，并且可能要求更改任何预定义的控制面板。有关更多信息，请参阅 [监控 Amazon DocumentDB](monitoring_docdb.md)。

**注意**  
通常，角色切换最多可能需要几分钟。

切换过程完成后，提升后的 Amazon DocumentDB 集群即可处理全局集群的写入操作。

您可以使用 AWS 管理控制台 或切换您的 Amazon DocumentDB 全局集群： AWS CLI

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

**对 Amazon DocumentDB 全局集群执行切换**

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

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

1. 查找并选择要进行切换的 Amazon DocumentDB 全局集群。  
![\[图片：选择了全局集群的集群表。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/switchover-cluster-table.png)

1. 从**操作**菜单中选择**切换或失效转移**。

1. 在弹出的对话框中，选择**切换**，然后从**新主集群**字段下拉列表中选择辅助集群。  
![\[图片：选择了辅助集群的集群切换对话框。\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/switch-fail-confirm-2.png)

1. 选择**确认**。

   主集群的状态更改为“**切换**”。这种情况应该需要三分钟左右。在此期间，所有区域集群的状态显示“**正在修改...**”。一旦区域同步且新主集群升级后，所有状态字段将显示“**可用**”，并且能够处理事务。

1. 完成后，原始主集群将变为辅助集群。选定的辅助集群将变为主集群。  
![\[图片：显示新主集群的集群表。\]](http://docs.aws.amazon.com/zh_cn/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`

在以下示例中，将每个*user input placeholder*示例替换为集群的信息。

对于 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 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

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 区域集群。

   在以下示例中，将每个*user input placeholder*示例替换为集群的信息。

   对于 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`

   在以下示例中，将每个*user input placeholder*示例替换为集群的信息。

   对于 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 来应用任何更改。

------