

# 对 Amazon Aurora 数据库集群进行失效转移
<a name="aurora-failover"></a>

可以对 Aurora 数据库集群执行手动失效转移，例如，当您要将预置的写入器数据库实例替换为 Aurora Serverless v2 写入器实例时。

Aurora 通过两种方式之一失效转移到新的主数据库实例：
+ 通过将现有读取器数据库实例提升为新的主实例
+ 创建新的主实例

如果数据库集群具有一个或多个读取器数据库，则在故障事件期间，某个读取器将被提升为主实例。要提高数据库集群的可用性，建议您在两个或更多的不同可用区中创建至少一个或多个读取器实例。有关失效转移机制的更多信息，请参阅 [Aurora 数据库集群的容错能力](Concepts.AuroraHighAvailability.md#Aurora.Managing.FaultTolerance)。

可以使用 AWS 管理控制台、AWS CLI 或 RDS API 来执行手动失效转移。

## 控制台
<a name="aurora-failover.CON"></a>

**对数据库集群进行失效转移**

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

1. 在导航窗格中，选择**数据库**，然后在要进行失效转移的数据库集群中选择一个数据库实例。

1. 对于 **Actions**（操作），请选择 **Failover**（故障转移）。

   此时会显示确认页面。

1. 选择 **Failover（故障转移）**。

   **数据库**页面显示数据库集群状态为**正在失效转移**。失效转移完成后，状态将恢复为**可用**，并显示新的和以前的主数据库实例的角色。

## AWS CLI
<a name="aurora-failover.CLI"></a>

要使用 AWS CLI 对数据库集群进行失效转移，请调用 [failover-db-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/failover-db-cluster.html) 命令。指定以下参数：
+ `--db-cluster-identifier` – 要进行失效转移的数据库集群。
+ `--target-db-instance-identifier` – 要提升为主数据库实例的数据库实例的名称。

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

```
aws rds failover-db-cluster \
    --db-cluster-identifier {{mydbcluster}} \
    --target-db-instance-identifier {{mydbcluster-instance-2}}
```
对于 Windows：  

```
aws rds failover-db-cluster ^
    --db-cluster-identifier {{mydbcluster}} ^
    --target-db-instance-identifier {{mydbcluster-instance-2}}
```

## RDS API
<a name="aurora-failover.API"></a>

要使用 Amazon RDS API 修改数据库集群，请调用 [FailoverDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_FailoverDBCluster.html) 操作。指定以下参数：
+ DBClusterIdentifier
+ TargetDBInstanceIdentifier