

# 创建只读副本
<a name="USER_ReadRepl.Create"></a>

您可以使用 AWS 管理控制台、AWS CLI 或 RDS API 从现有数据库实例创建只读副本。可通过指定 `SourceDBInstanceIdentifier`（要从其进行复制的源数据库实例的数据库实例标识符）创建只读副本。

当您创建只读副本时，Amazon RDS 会制作源数据库实例的数据库快照，然后开始复制。数据库快照操作开始时，源数据库实例会经历非常短暂的 I/O 暂停。这种 I/O 暂停通常持续大约一秒时间。如果源数据库实例为多可用区部署，则可避免 I/O 暂停，因为在这种情况下，会从辅助数据库实例制作数据库快照。

长时间运行的活动事务会减慢创建只读副本的过程。我们建议您等待长时间运行的事务完成，然后再创建只读副本。如果从同一源数据库实例同时创建多个并行只读副本，则 Amazon RDS 仅在开始第一个创建操作时创建一张快照。

创建只读副本时，有几件事情需要考虑。首先，您必须先通过将备份保留期设置为一个非零值来在源数据库实例上启用自动备份。此要求也适用于作为一个只读副本的源数据库实例的另一个只读副本。要对 RDS for MariaDB 只读副本启用自动备份，请先创建只读副本，然后修改只读副本以启用自动备份。

**注意**  
在 AWS 区域内，我们强烈建议您在与源数据库实例相同的基于 Amazon VPC 的虚拟私有云（VPC）中创建所有只读副本。如果您在与源数据库实例不同的 VPC 中创建只读副本，则副本和 RDS 系统之间的无类域间路由 (CIDR) 范围可能会重叠。CIDR 重叠会使副本不稳定，从而对连接到副本的应用程序产生负面影响。如果您在创建只读副本时收到错误，请选择其他目标数据库子网组。有关更多信息，请参阅 [在 VPC 中使用数据库实例](USER_VPC.WorkingWithRDSInstanceinaVPC.md)。  
无法直接使用控制台或 AWS CLI 在其他 AWS 账户中创建只读副本。

## 控制台
<a name="USER_ReadRepl.Create.Console"></a>

**从源数据库实例创建只读副本**

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

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

1. 选择要作为只读副本源的数据库实例。

1. 对于 **Actions (操作)**，选择 **Create read replica (创建只读副本)**。

1. 对于**数据库实例标识符**，输入该只读副本的名称。

1. 选择您的实例配置。建议您为只读副本使用与源数据库实例相同或更大的数据库实例类和存储类型。

1. 对于 **AWS 区域**，指定只读副本的目标区域。

1. 对于**存储**，指定分配的存储大小以及是否要使用存储自动扩缩。

   如果您的源数据库实例未使用最新的存储配置，则可以使用**升级存储文件系统配置**选项。您可以启用此设置将只读副本的存储文件系统升级到首选配置。有关更多信息，请参阅 [升级数据库实例的存储文件系统](USER_PIOPS.UpgradeFileSystem.md)。

1. 对于**可用性**，选择是否在另一个可用区中创建副本的备用来支持副本的故障转移。
**注意**  
创建您的只读副本作为多可用区数据库实例与源数据库是否为多可用区数据库实例无关。

1. 指定其他数据库实例设置。有关每项可用设置的信息，请参阅[数据库实例的设置](USER_CreateDBInstance.Settings.md)。

1. 要创建加密的只读副本，请展开**其他配置**并指定以下设置：

   1. 选择**启用加密**。

   1. 对于 **AWS KMS key**，选择 KMS 密钥的 AWS KMS key 标识符。
**注意**  
 源数据库实例必须加密。要了解关于加密源数据库实例的更多信息，请参阅 [加密 Amazon RDS 资源](Overview.Encryption.md)。

1. 选择 **Create read replica (创建只读副本)**。

创建只读副本后，您可以在 RDS 控制台的**数据库**页面上看到它。它在**角色**列中显示**副本**。

## AWS CLI
<a name="USER_ReadRepl.Create.CLI"></a>

要从源数据库实例创建只读副本，请使用 AWS CLI 命令 [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html)。此示例还设置了分配存储大小、启用了存储自动扩展，并将文件系统升级到首选配置。

您可以指定其他设置。有关每项设置的信息，请参阅 [数据库实例的设置](USER_CreateDBInstance.Settings.md)。

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

```
aws rds create-db-instance-read-replica \
    --db-instance-identifier myreadreplica \
    --source-db-instance-identifier mydbinstance \
    --allocated-storage 100 \
    --max-allocated-storage 1000 \
    --upgrade-storage-config
```
对于：Windows  

```
aws rds create-db-instance-read-replica ^
    --db-instance-identifier myreadreplica ^
    --source-db-instance-identifier mydbinstance ^
    --allocated-storage 100 ^
    --max-allocated-storage 1000 ^
    --upgrade-storage-config
```

## RDS API
<a name="USER_ReadRepl.Create.API"></a>

要从源 Db2、MySQL、MariaDB、Oracle、PostgreSQL 或 SQL Server 数据库实例创建只读副本，请调用具有以下必要参数的 Amazon RDS API [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) 操作：
+ `DBInstanceIdentifier`
+ `SourceDBInstanceIdentifier`

**注意**  
 要创建 RDS for Db2 备用副本，请将可选 `ReplicaMode` 操作设置为 `mounted`。