

# 跨 AWS 区域复制 Amazon Aurora MySQL 数据库集群
<a name="AuroraMySQL.Replication.CrossRegion"></a>

 您可以在与源数据库集群不同的 AWS 区域中创建 Amazon Aurora MySQL 数据库集群作为只读副本。采用此方法可增强灾难恢复能力，允许您将读取操作扩展到更靠近用户的 AWS 区域，并使从一个 AWS 区域迁移到另一个区域变得更轻松。

 您可以创建加密和不加密数据库集群的只读副本。如果加密了源数据库集群，则必须加密只读副本。

 对于每个源数据库集群，您最多可以具有 5 个作为只读副本的跨区域数据库集群。

**注意**  
 作为跨区域只读副本的替代方案，您可以使用 Aurora 全局数据库以最小的延迟时间来扩展读取操作。1 个 Aurora Global Database 在 1 个 AWS 区域中有 1 个主 Aurora 数据库集群，在不同区域中最多有 10 个辅助只读数据库集群。每个辅助数据库集群最多可以包含 16 个（而不是 15）Aurora 副本。从主数据库集群到所有辅助集群的复制由 Aurora 存储层而不是由数据库引擎处理，因此复制更改的延迟最短，通常不到 1 秒。将数据库引擎排除在复制过程之外意味着数据库引擎专用于处理工作负载。这还意味着您不需要配置或管理 Aurora MySQL 二进制日志（二进制日志记录）复制。要了解更多信息，请参阅[使用 Amazon Aurora Global Database](aurora-global-database.md)。

 当您在另一个 AWS 区域中创建 Aurora MySQL 数据库集群只读副本时，您应了解：
+  源数据库集群和跨区域只读副本数据库集群最多可以具有 15 个 Aurora 副本以及数据库集群的主实例。通过使用该功能，您可以扩展源 AWS 区域和复制目标 AWS 区域的读取操作。
+  在跨区域方案中，由于各 AWS 区域之间的网络通道更长，因此，源数据集群和只读副本之间的滞后时间更长。
+  跨区域复制时传输的数据可产生 Amazon RDS 数据传输费用。以下跨区域复制操作会针对传输到源 AWS 区域以外的数据收取费用：
  +  在创建只读副本时，Amazon RDS 将创建源集群的快照，并将快照传输到保存只读副本的 AWS 区域。
  +  对于源数据库中做出的每项数据修改，Amazon RDS 都会将数据从源区域传输到保存只读副本的 AWS 区域。

   有关 Amazon RDS 数据传输定价的更多信息，请参阅 [Amazon Aurora 定价](https://aws.amazon.com/rds/aurora/pricing/)。
+  您可以为引用相同源数据库集群的只读副本运行多个并发创建或删除操作。不过，您必须保持在每个源数据库集群中具有 5 个只读副本的限制。
+  为了有效地进行复制，每个只读副本应具有与源数据库集群相同数量的计算和存储资源。如果扩展源数据库集群，您还应扩展只读副本。

**Topics**
+ [开始前的准备工作](#AuroraMySQL.Replication.CrossRegion.Prerequisites)
+ [创建 Aurora MySQL 的跨区域只读副本数据库集群](AuroraMySQL.Replication.CrossRegion.Creating.md)
+ [将只读副本提升为 Aurora MySQL 的数据库集群](AuroraMySQL.Replication.CrossRegion.Promote.md)
+ [Amazon Aurora MySQL 的跨区域副本故障排除](AuroraMySQL.Replication.CrossRegion.Troubleshooting.md)

## 开始前的准备工作
<a name="AuroraMySQL.Replication.CrossRegion.Prerequisites"></a>

 在创建作为跨区域只读副本的 Aurora MySQL 数据库集群之前，必须先在源 Aurora MySQL 数据库集群上开启二进制日志记录。Aurora MySQL 的跨区域复制使用 MySQL 二进制复制来重放对跨区域只读副本数据库集群的更改。

 要在 Aurora MySQL 数据库集群上开启二进制日志记录，请更新源数据库集群的 `binlog_format` 参数。`binlog_format` 参数是默认集群参数组中的集群级参数。如果数据库集群使用默认的数据库集群参数组，则需创建新的数据库集群参数组来修改 `binlog_format` 设置。建议您将 `binlog_format` 设置为 `MIXED`。不过，您也可以将 `binlog_format` 设置为 `ROW` 或 `STATEMENT` (如果您需要特定的二进制日志格式)。重启您的 Aurora 数据库集群以使更改生效。

 有关对 Aurora MySQL 使用二进制日志记录的更多信息，请参阅 [Aurora 与 MySQL 之间或 Aurora 与其他 Aurora 数据库集群之间的复制（二进制日志复制）](AuroraMySQL.Replication.MySQL.md)。有关修改 Aurora MySQL 配置参数的更多信息，请参阅 [Amazon Aurora 数据库集群和数据库实例参数](USER_WorkingWithDBClusterParamGroups.md#Aurora.Managing.ParameterGroups) 和 [Amazon Aurora 的参数组](USER_WorkingWithParamGroups.md)。

# 创建 Aurora MySQL 的跨区域只读副本数据库集群
<a name="AuroraMySQL.Replication.CrossRegion.Creating"></a>

 您可以使用AWS 管理控制台、AWS Command Line Interface（AWS CLI）或 Amazon RDS API 创建作为跨区域只读副本的 Aurora 数据库集群。您可以从加密和未加密的数据库集群中创建跨区域只读副本。

 在使用 AWS 管理控制台 为 Aurora MySQL 创建跨区域只读副本时，Amazon RDS 先在目标 AWS 区域中创建一个数据库集群，然后自动为该数据库集群创建一个数据库实例以作为主实例。

 使用 AWS CLI 或 RDS API 创建跨区域只读副本时，您需要首先在目标 AWS 区域创建数据库集群，然后等待它变为活动状态。一旦处于活动状态，您就可以为该数据库集群创建一个数据库实例作为主实例。

 当只读副本数据库集群的主实例可用时，复制开始。

 执行以下过程从 Aurora MySQL 数据库集群创建跨区域只读副本。这些步骤适用于从加密和未加密的数据库集群中创建只读副本。

## 控制台
<a name="AuroraMySQL.Replication.CrossRegion.Creating.Console"></a>

**使用AWS 管理控制台创建作为跨区域只读副本的 Aurora MySQL 数据库集群**

1. 登录AWS 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1.  在 AWS 管理控制台的右上角，选择托管源数据库集群的 AWS 区域。

1.  在导航窗格中，选择 **Databases**（数据库）。

1.  选择要为其创建跨区域只读副本的数据库集群。

1. 对于 **Actions**（操作），请选择 **Create cross-Region read replica**（创建跨区域只读副本）。

1.  在 **Create cross region read replica (创建跨区域只读副本)** 页面上，选择跨区域只读副本数据库集群的选项设置，如下表中所述。    
<a name="cross-region-read-replica-settings"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.CrossRegion.Creating.html)

1.  选择 **Create (创建)** 以创建 Aurora 的跨区域只读副本。

## AWS CLI
<a name="AuroraMySQL.Replication.CrossRegion.Creating.CLI"></a>

**使用 CLI 创建作为跨区域只读副本的 Aurora MySQL 数据库集群**

1.  在要创建只读副本数据库集群的 AWS 区域中调用 AWS CLI [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) 命令。包括 `--replication-source-identifier` 选项并指定要创建只读副本的源数据库集群的 Amazon Resource Name (ARN)。

    对于由 `--replication-source-identifier` 标识的数据库集群已加密的跨区域复制，请指定 `--kms-key-id` 选项和 `--storage-encrypted` 选项。
**注意**  
 通过指定 `--storage-encrypted` 并提供 `--kms-key-id` 的值，您可以设置从未加密数据库集群到加密只读副本的跨区域复制。

    您无法指定 `--master-username` 和 `--master-user-password` 参数。这些值取自源数据库集群。

    以下代码示例从 us-west-2 区域的一个未加密数据库集群快照中创建 us-east-1 区域的只读副本。在 us-east-1 区域调用命令。此示例指定了生成主用户密码并在 Secrets Manager 中对其进行管理的 `--manage-master-user-password` 选项。有关更多信息，请参阅 [使用 Amazon Aurora 和 AWS Secrets Manager 管理密码](rds-secrets-manager.md)。或者，您可以使用 `--master-password` 选项自行指定和管理密码。

   对于 Linux、macOS 或 Unix：

   ```
   aws rds create-db-cluster \
     --db-cluster-identifier sample-replica-cluster \
     --engine aurora-mysql \
     --engine-version 8.0.mysql_aurora.3.08.0 \
     --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster
   ```

   对于 Windows：

   ```
   aws rds create-db-cluster ^
     --db-cluster-identifier sample-replica-cluster ^
     --engine aurora-mysql ^
     --engine-version 8.0.mysql_aurora.3.08.0 ^
     --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster
   ```

    以下代码示例从 us-west-2 区域的一个加密数据库集群快照中创建 us-east-1 区域的只读副本。在 us-east-1 区域调用命令。

   对于 Linux、macOS 或 Unix：

   ```
   aws rds create-db-cluster \
     --db-cluster-identifier sample-replica-cluster \
     --engine aurora-mysql \
     --engine-version 8.0.mysql_aurora.3.08.0 \
     --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster \
     --kms-key-id my-us-east-1-key \
     --storage-encrypted
   ```

   对于 Windows：

   ```
   aws rds create-db-cluster ^
     --db-cluster-identifier sample-replica-cluster ^
     --engine aurora-mysql ^
     --engine-version 8.0.mysql_aurora.3.08.0 ^
     --replication-source-identifier arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster ^
     --kms-key-id my-us-east-1-key ^
     --storage-encrypted
   ```

   `--source-region` 选项对于 AWS GovCloud（美国东部）和 AWS GovCloud（美国西部）区域之间的跨区域复制是必需的，其中由 `--replication-source-identifier` 标识的数据库集群已加密。对于 `--source-region`，指定源数据库集群的 AWS 区域。

   如果未指定 `--source-region`，请指定 `--pre-signed-url` 值。*预签名 URL* 包含签名版本 4 签名的请求，该请求用于在源 `create-db-cluster`中调用的 AWS 区域 命令。要了解有关 `pre-signed-url` 选项的更多信息，请参阅《AWS CLI 命令参考》中的 [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)。

1.  使用 AWS CLI [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) 命令检查数据库集群是否已变为可用状态，如以下示例中所示。

   ```
   aws rds describe-db-clusters --db-cluster-identifier sample-replica-cluster
   ```

    当 **`describe-db-clusters`** 结果显示状态 `available` 时，创建数据库集群的主实例以便复制能够开始。为此，请使用 AWS CLI [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 命令，如以下示例中所示。

   对于 Linux、macOS 或 Unix：

   ```
   aws rds create-db-instance \
     --db-cluster-identifier sample-replica-cluster \
     --db-instance-class db.r5.large \
     --db-instance-identifier sample-replica-instance \
     --engine aurora-mysql
   ```

   对于 Windows：

   ```
   aws rds create-db-instance ^
     --db-cluster-identifier sample-replica-cluster ^
     --db-instance-class db.r5.large ^
     --db-instance-identifier sample-replica-instance ^
     --engine aurora-mysql
   ```

    在数据库实例已创建并可用后，复制将开始。您可以调用 AWS CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令以确定数据库实例是否可用。

## RDS API
<a name="AuroraMySQL.Replication.CrossRegion.Creating.API"></a>

**使用 API 创建作为跨区域只读副本的 Aurora MySQL 数据库集群**

1.  在要创建只读副本数据库集群的 AWS 区域中调用 RDS API [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) 操作。包括 `ReplicationSourceIdentifier` 参数并指定要创建只读副本的源数据库集群的 Amazon Resource Name (ARN)。

    对于由 `ReplicationSourceIdentifier` 标识的数据库集群已加密的跨区域复制，应指定 `KmsKeyId` 参数并将 `StorageEncrypted` 参数设置为 `true`。
**注意**  
 您可以将 `StorageEncrypted` 指定为 **true** 并提供 `KmsKeyId` 值，以设置从未加密数据库集群到加密只读副本的跨区域复制。在这种情况下，不需要指定 `PreSignedUrl`。

    您无需包含 `MasterUsername` 和 `MasterUserPassword` 参数，因为这些值是从源数据库集群中获取的。

    以下代码示例从 us-west-2 区域的一个未加密数据库集群快照中创建 us-east-1 区域的只读副本。在 us-east-1 区域调用操作。

   ```
   https://rds.us-east-1.amazonaws.com/
     ?Action=CreateDBCluster
     &ReplicationSourceIdentifier=arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster
     &DBClusterIdentifier=sample-replica-cluster
     &Engine=aurora-mysql
     &SignatureMethod=HmacSHA256
     &SignatureVersion=4
     &Version=2014-10-31
     &X-Amz-Algorithm=AWS4-HMAC-SHA256
     &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request
     &X-Amz-Date=20160201T001547Z
     &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
     &X-Amz-Signature=a04c831a0b54b5e4cd236a90dcb9f5fab7185eb3b72b5ebe9a70a4e95790c8b7
   ```

    以下代码示例从 us-west-2 区域的一个加密数据库集群快照中创建 us-east-1 区域的只读副本。在 us-east-1 区域调用操作。

   ```
   https://rds.us-east-1.amazonaws.com/
     ?Action=CreateDBCluster
     &KmsKeyId=my-us-east-1-key
     &StorageEncrypted=true
     &PreSignedUrl=https%253A%252F%252Frds.us-west-2.amazonaws.com%252F
            %253FAction%253DCreateDBCluster
            %2526DestinationRegion%253Dus-east-1
            %2526KmsKeyId%253Dmy-us-east-1-key
            %2526ReplicationSourceIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%25253A123456789012%25253Acluster%25253Asample-master-cluster
            %2526SignatureMethod%253DHmacSHA256
            %2526SignatureVersion%253D4
            %2526Version%253D2014-10-31
            %2526X-Amz-Algorithm%253DAWS4-HMAC-SHA256
            %2526X-Amz-Credential%253DAKIADQKE4SARGYLE%252F20161117%252Fus-west-2%252Frds%252Faws4_request
            %2526X-Amz-Date%253D20161117T215409Z
            %2526X-Amz-Expires%253D3600
            %2526X-Amz-SignedHeaders%253Dcontent-type%253Bhost%253Buser-agent%253Bx-amz-content-sha256%253Bx-amz-date
            %2526X-Amz-Signature%253D255a0f17b4e717d3b67fad163c3ec26573b882c03a65523522cf890a67fca613
     &ReplicationSourceIdentifier=arn:aws:rds:us-west-2:123456789012:cluster:sample-master-cluster
     &DBClusterIdentifier=sample-replica-cluster
     &Engine=aurora-mysql
     &SignatureMethod=HmacSHA256
     &SignatureVersion=4
     &Version=2014-10-31
     &X-Amz-Algorithm=AWS4-HMAC-SHA256
     &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request
     &X-Amz-Date=20160201T001547Z
     &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
     &X-Amz-Signature=a04c831a0b54b5e4cd236a90dcb9f5fab7185eb3b72b5ebe9a70a4e95790c8b7
   ```

   对于 AWS GovCloud（美国东部）和 AWS GovCloud（美国西部）区域之间的跨区域复制（其中由 `ReplicationSourceIdentifier` 标识的数据库集群已加密），还应指定 `PreSignedUrl` 参数。预签名 URL 必须是对 `CreateDBCluster` API 操作的有效请求，该操作能够在包含要复制的加密数据库集群的源 AWS 区域中执行。KMS 密钥标识符用于加密只读副本，并且必须是对目标 AWS 区域有效的 KMS 密钥。要自动而非手动生成预签名的 URL，请改用具有 `--source-region` 选项的 AWS CLI [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) 命令。

1.  如下例所示，通过使用 RDS API [DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) 操作检查数据库集群是否可用。

   ```
   https://rds.us-east-1.amazonaws.com/
     ?Action=DescribeDBClusters
     &DBClusterIdentifier=sample-replica-cluster
     &SignatureMethod=HmacSHA256
     &SignatureVersion=4
     &Version=2014-10-31
     &X-Amz-Algorithm=AWS4-HMAC-SHA256
     &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request
     &X-Amz-Date=20160201T002223Z
     &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
     &X-Amz-Signature=84c2e4f8fba7c577ac5d820711e34c6e45ffcd35be8a6b7c50f329a74f35f426
   ```

    当 `DescribeDBClusters` 结果显示状态 `available` 时，创建数据库集群的主实例以便复制能够开始。为此，请使用 RDS API [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 操作，如以下示例所示。

   ```
   https://rds.us-east-1.amazonaws.com/
     ?Action=CreateDBInstance
     &DBClusterIdentifier=sample-replica-cluster
     &DBInstanceClass=db.r5.large
     &DBInstanceIdentifier=sample-replica-instance
     &Engine=aurora-mysql
     &SignatureMethod=HmacSHA256
     &SignatureVersion=4
     &Version=2014-10-31
     &X-Amz-Algorithm=AWS4-HMAC-SHA256
     &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request
     &X-Amz-Date=20160201T003808Z
     &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
     &X-Amz-Signature=125fe575959f5bbcebd53f2365f907179757a08b5d7a16a378dfa59387f58cdb
   ```

    在数据库实例已创建并可用后，复制将开始。您可以调用 AWS CLI [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 命令以确定数据库实例是否可用。

## 查看 Amazon Aurora MySQL 跨区域副本
<a name="AuroraMySQL.Replication.CrossRegion.Viewing"></a>

 您可以调用 [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) AWS CLI 命令或 [DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) RDS API 操作以查看 Amazon Aurora MySQL 数据库集群的跨区域复制关系。在响应中，请参阅 `ReadReplicaIdentifiers` 字段，获取任何跨区域只读副本数据库集群的数据库集群标识符。请参阅 `ReplicationSourceIdentifier` 元素，获取作为复制源的源数据库集群的 ARN。

# 将只读副本提升为 Aurora MySQL 的数据库集群
<a name="AuroraMySQL.Replication.CrossRegion.Promote"></a>

 可将 Aurora MySQL 只读副本提升为独立的数据库集群。提升 Aurora MySQL 只读副本时，其数据库实例将在重启后变得可用。

 通常，如果源数据库集群出现故障，可以作为数据恢复方案将 Aurora MySQL 只读副本提升为单独数据库集群。

 为此，请先创建只读副本，然后监控源数据库集群的故障。如果出现故障，请执行以下操作：

1.  提升只读副本。

1.  将数据库流量定向到提升的数据库集群。

1.  将提升的数据库集群作为源，创建替代只读副本。

 在提升只读副本时，只读副本将成为独立的 Aurora 数据库集群。提升过程可能需要几分钟或更长时间才能完成，具体时间取决于只读副本的大小。将只读副本提升为新数据库集群后，它将与任何其他数据库集群相同。例如，可从中创建只读副本并执行时间点还原操作。还可以为数据库集群创建 Aurora 副本。

 由于经过提升的数据库集群不再是只读副本，因此不能再使用它作为复制目标。

 以下步骤说明将只读副本提升为数据库集群的一般过程：

1.  停止向只读副本源数据库集群写入任何事务，然后等待对只读副本完成所有更新。在源数据库集群完成数据库更新后，只读副本才会进行数据库更新，且这种复制滞后可能会有很大差异。使用 `ReplicaLag` 指标确定只读副本完成所有更新的时间。`ReplicaLag` 指标记录只读副本数据库实例滞后于源数据库实例的时间量。当 `ReplicaLag` 指标达到 `0` 时，即表示只读副本已赶上源数据库实例进度。

1.  使用 Amazon RDS 控制台上的 **Promote**（提升）选项、AWS CLI 命令 [promote-read-replica-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html) 或 [PromoteReadReplicaDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplicaDBCluster.html) Amazon RDS API 操作来提升只读副本。

    选择 Aurora MySQL 数据库实例来提升只读副本。在提升只读副本后，Aurora MySQL 数据库集群将被提升为单独数据库集群。故障转移优先级最高的数据库实例将被提升为数据库集群的主数据库实例。其他数据库实例将变为 Aurora 副本。
**注意**  
 提升过程需要几分钟才能完成。在提升只读副本时，会停止复制并重启数据库实例。完成重启后，只读副本即可作为新数据库集群使用。

## 控制台
<a name="AuroraMySQL.Replication.CrossRegion.Promote.Console"></a>

**将 Aurora MySQL 只读副本提升为数据库集群**

1. 登录AWS 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1.  在控制台中，选择 **Instances (实例)**。

    此时将显示**实例**窗格。

1.  在 **Instances (实例)** 窗格中，选择要提升的只读副本。

    只读副本将显示为 Aurora MySQL 数据库实例。

1.  对于**操作**，选择**提升只读副本**。

1.  在确认页面上，选择 **Promote read replica**（提升只读副本）。

## AWS CLI
<a name="AuroraMySQL.Replication.CrossRegion.Promote.CLI"></a>

 要将只读副本升级为数据库集群，请使用 AWS CLI [promote-read-replica-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html) 命令。

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

```
aws rds promote-read-replica-db-cluster \
    --db-cluster-identifier mydbcluster
```
对于 Windows：  

```
aws rds promote-read-replica-db-cluster ^
    --db-cluster-identifier mydbcluster
```

## RDS API
<a name="AuroraMySQL.Replication.CrossRegion.Promote.API"></a>

 要将只读副本提升为数据库集群，请调用 [PromoteReadReplicaDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplicaDBCluster.html)。

# Amazon Aurora MySQL 的跨区域副本故障排除
<a name="AuroraMySQL.Replication.CrossRegion.Troubleshooting"></a>

 以下是您在创建 Amazon Aurora 跨区域只读副本时可能遇到的常见错误消息的列表以及指定错误的解决方法。

## 源集群 [数据库集群 ARN] 未启用二进制日志
<a name="AuroraMySQL.Replication.CrossRegion.Troubleshooting.1"></a>

 要解决该问题，请对源数据库集群开启二进制日志记录。有关更多信息，请参阅 [开始前的准备工作](AuroraMySQL.Replication.CrossRegion.md#AuroraMySQL.Replication.CrossRegion.Prerequisites)。

## 源集群 [数据库集群 ARN] 没有在写入器上同步的集群参数组
<a name="AuroraMySQL.Replication.CrossRegion.Troubleshooting.2"></a>

 如果您已更新 `binlog_format` 数据库集群参数，但尚未重启数据库集群的主实例，则会收到该错误。重启数据库集群的主实例 (即写入器) 并重试。

## 源集群 [数据库集群 ARN] 已具有此区域中的只读副本
<a name="AuroraMySQL.Replication.CrossRegion.Troubleshooting.3"></a>

 对于任意 AWS 区域中的每个源数据库集群，您最多可以具有 5 个作为只读副本的跨区域数据库集群。如果在特定 AWS 区域中，您已有数据库集群的最大数量只读副本，则必须先删除一个现有副本，然后才能在该区域中创建新的跨区域数据库集群。

## 数据库集群 [数据库集群 ARN] 需要数据库引擎升级来支持跨区域复制
<a name="AuroraMySQL.Replication.CrossRegion.Troubleshooting.4"></a>

 要解决该问题，请将源数据库集群中的所有实例的数据库引擎版本升级到最新的数据库引擎版本，然后再次尝试创建跨区域只读副本数据库。