

# 修改 Amazon RDS 的多可用区数据库集群
<a name="modify-multi-az-db-cluster"></a>

多可用区数据库集群在三个独立可用区中有一个写入器数据库实例和两个读取器数据库实例。与多可用区部署相比，多可用区数据库集群可提供高可用性、增加读取工作负载容量以及更低的延迟。有关多可用区数据库集群的更多信息，请参阅 [Amazon RDS 的多可用区数据库集群部署](multi-az-db-clusters-concepts.md)。

您可以修改多可用区数据库集群以更改其设置。您还可以对多可用区数据库集群执行操作，例如获取其快照。

**重要**  
您无法修改多可用区数据库集群中的数据库实例。所有修改都必须在数据库集群级别完成。您可以对多可用区数据库集群中的数据库实例执行的唯一操作是重启它。

您可以使用 AWS 管理控制台、AWS CLI 或 RDS API 修改多可用区数据库集群。

## 控制台
<a name="modify-multi-az-db-cluster-console"></a>

**要修改多可用区数据库集群**

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

1. 在导航窗格中，选择 **Databases**（数据库），然后选择要修改的多可用区数据库集群。

1. 选择**修改**。此时会显示**修改数据库集群**页面。

1. 根据需要更改任意设置。有关每项设置的信息，请参阅 [修改多可用区数据库集群的设置](#modify-multi-az-db-cluster-settings)。

1. 当所有更改都达到您的要求时，选择**继续**并查看修改摘要。

1. （可选）选择**立即应用**以立即应用更改。选择此选项在某些情况下可能导致停机。有关更多信息，请参阅 [立即应用更改](#modify-multi-az-db-cluster-apply-immediately)。

1. 在确认页面上，检查您的更改。如果更改正确无误，请选择 **Modify DB cluster**（修改数据库集群）以保存更改。

   也可以选择 **Back (返回)** 编辑您的更改，或选择 **Cancel (取消)** 取消更改。

## AWS CLI
<a name="modify-multi-az-db-cluster-cli"></a>

要使用 AWS CLI 修改多可用区数据库集群，请调用 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 命令。指定数据库集群标识符以及要修改的选项值。有关各选项的信息，请参阅[修改多可用区数据库集群的设置](#modify-multi-az-db-cluster-settings)。

**Example**  
以下代码修改 `my-multi-az-dbcluster`，将备份保留期设置为 1 周 (7 天)。该代码使用 `--deletion-protection` 启用删除保护。要关闭删除保护，请使用 `--no-deletion-protection`。将在下一维护时段使用 `--no-apply-immediately` 应用这些更改。使用 `--apply-immediately` 可立即应用更改。有关更多信息，请参阅 [立即应用更改](#modify-multi-az-db-cluster-apply-immediately)。  
对于 Linux、macOS 或 Unix：  

```
aws rds modify-db-cluster \
    --db-cluster-identifier my-multi-az-dbcluster \
    --backup-retention-period 7 \
    --deletion-protection \
    --no-apply-immediately
```
对于：Windows  

```
aws rds modify-db-cluster ^
    --db-cluster-identifier my-multi-az-dbcluster ^
    --backup-retention-period 7 ^
    --deletion-protection ^
    --no-apply-immediately
```

## RDS API
<a name="modify-multi-az-db-cluster-api"></a>

要使用 Amazon RDS API 修改多可用区数据库集群，请调用 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) 操作。指定数据库集群标识符，以及您要修改的设置参数。有关每个参数的信息，请参阅[修改多可用区数据库集群的设置](#modify-multi-az-db-cluster-settings)。

## 立即应用更改
<a name="modify-multi-az-db-cluster-apply-immediately"></a>

修改多可用区数据库集群后，您可立即应用更改。要立即应用更改，请选中 AWS 管理控制台中的**立即应用**选项。或者，您可以在调用 AWS CLI 时使用 `--apply-immediately` 选项，或在使用 Amazon RDS API 时将 `ApplyImmediately` 参数设置为 `true`。

如果您没有选择立即应用更改，更改将被放置在等待修改队列中。队列中的所有等待更改都将在下一维护时段应用。如果您选择立即应用更改，将应用您的新更改以及等待修改队列中的所有更改。

**重要**  
如果任何待处理修改需要数据库集群暂时不可用（*停机*），则选择立即应用选项可能会导致意外停机。  
当您选择立即应用更改时，任何待定修改也将立即应用，而不是在下一个维护时段内应用。  
如果您不想将待定更改应用到下一个维护时段，您可以修改数据库实例来恢复更改。您可以通过使用 AWS CLI 和指定 `--apply-immediately` 选项来执行此操作。

一些数据库设置的更改会立即应用，即使您选择延迟更改也是如此。要查看不同数据库的设置如何与“立即应用”设置进行交互，请参阅[修改多可用区数据库集群的设置](#modify-multi-az-db-cluster-settings)。

## 修改多可用区数据库集群的设置
<a name="modify-multi-az-db-cluster-settings"></a>

有关可用于修改多可用区数据库集群的设置的详细信息，请参见下表。有关 AWS CLI 选项的更多信息，请参阅 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)。有关 RDS API 参数的更多信息，请参阅 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)。


| 控制台设置 | 设置说明 | CLI 选项和 RDS API 参数 | 发生更改时 | 停机说明 | 
| --- | --- | --- | --- | --- | 
|  **分配的存储空间**  |  为数据库集群中的每个数据库实例分配的存储量（以 GiB 为单位）。有关更多信息，请参阅 [Amazon RDS 数据库实例存储](CHAP_Storage.md)。    |  **CLI 选项：** `--allocated-storage` **RDS API 参数：**  `AllocatedStorage`  |  如果您选择立即应用更改，则更改立即生效。 如果您不选择立即应用更改，则更改会在下一个维护时段中生效。  |  在此更改期间，不会出现停机。  | 
| 自动次要版本升级 |  请选择 **Enable auto minor version upgrade**（启用自动次要版本升级），以使数据库集群能够在首选次要数据库引擎版本升级可用时自动接收这些升级。Amazon RDS 在维护时段内执行自动次要版本升级。  |  **CLI 选项：** `--auto-minor-version-upgrade` `--no-auto-minor-version-upgrade` **RDS API 参数：** `AutoMinorVersionUpgrade`  |  更改立即发生。此设置忽略立即应用设置。  |  在此更改期间发生停机。  | 
| 备份保留期  |  保留数据库集群的自动备份的天数。该值必须大于零。 有关更多信息，请参阅 [备份简介](USER_WorkingWithAutomatedBackups.md)。  |  **CLI 选项：** `--backup-retention-period` **RDS API 参数：** `BackupRetentionPeriod`  |  如果您选择立即应用更改，则更改立即生效。 如果您不选择立即应用更改，则更改会在下一个维护时段中生效。    | 在此更改期间，不会出现停机。 | 
| 备份时段： |  Amazon RDS 自动备份数据库集群的时间段。除非您知道需要何时进行数据库备份，否则，请使用 **No preference**（无首选项）的默认设置。 有关更多信息，请参阅“[备份简介](USER_WorkingWithAutomatedBackups.md)”。  |  **CLI 选项：** `--preferred-backup-window` **RDS API 参数：** `PreferredBackupWindow`  |  更改会尽快异步应用。  |  在此更改期间，不会停机。  | 
|  **证书颁发机构**  |  数据库集群使用的服务器证书的证书颁发机构（CA）。 有关更多信息，请参阅 [使用 SSL/TLS 加密与数据库实例或集群的连接](UsingWithRDS.SSL.md)。  |  **CLI 选项：** `--ca-certificate-identifier` **RDS API 参数：** `CACertificateIdentifier`  |  如果您选择立即应用更改，则更改立即生效。 如果您不选择立即应用更改，则更改会在下一个维护时段中生效。  | 仅当数据库引擎不支持在不重新启动的情况下轮换时，才会发生停机。您可以使用 [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI 命令来确定数据库引擎是否支持在不重新启动的情况下轮换。 | 
|  将标签复制到快照  |  在创建快照时，该选项将任何数据库集群标签复制到数据库快照中。 有关更多信息，请参阅 [为 Amazon RDS 资源添加标签](USER_Tagging.md)。  |  **CLI 选项：** `-copy-tags-to-snapshot` `-no-copy-tags-to-snapshot` **RDS API 参数：** `CopyTagsToSnapshot`  |  更改立即发生。此设置忽略“立即应用”设置。  |  在此更改期间，不会停机。  | 
|  数据库身份验证  |  对于多可用区数据库集群，仅支持 **Password authentication**（密码身份验证）。  |  无，因为密码身份验证是原定设置。  |  如果您选择立即应用更改，则更改立即生效。 如果您不选择立即应用更改，则更改会在下一个维护时段中生效。  |  在此更改期间，不会出现停机。  | 
|  **数据库集群标识符**  |  数据库集群标识符。此值以一个小写字符串存储。 更改数据库集群标识符后，数据库集群端点发生变化。数据库集群中的数据库实例的标识符和端点也会发生变化。新的数据库集群名称必须是唯一的。最大长度为 63 个字符。 数据库集群中的数据库实例的名称将更改为与数据库集群的新名称相对应。新的数据库实例名称不能与现有数据库实例的名称相同。例如，如果您将数据库集群名称更改为 `maz`，则数据库实例名称可能会更改为 `maz-instance-1`。在这种情况下，不能存在名为 `maz-instance-1` 的现有数据库实例。 有关更多信息，请参阅 [重命名 Amazon RDS 的多可用区数据库集群](multi-az-db-cluster-rename.md)。  |  **CLI 选项：** `--new-db-cluster-identifier` **RDS API 参数：** `NewDBClusterIdentifier`  |  如果您选择立即应用更改，则更改立即生效。 如果您不选择立即应用更改，则更改会在下一个维护时段中生效。  |  在此更改期间，不会出现停机。  | 
|  DB cluster instance class（数据库集群实例类  |  多可用区数据库集群中各数据库实例（例如 `db.r6gd.xlarge`）的计算和内存容量。 如有可能，请选择足够大的数据库实例类以便典型查询工作集能够保留在内存中。如果在内存中保留工作集，系统可以避免写入到磁盘，从而提高性能。 有关更多信息，请参阅 [多可用区数据库集群的实例类可用性](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts.InstanceAvailability)。  |  **CLI 选项：** `--db-cluster-instance-class` **RDS API 参数：** `DBClusterInstanceClass`  |  如果您选择立即应用更改，则更改立即生效。 如果您不选择立即应用更改，则更改会在下一个维护时段中生效。  |  在此更改期间发生停机。  | 
|  **数据库集群参数组**  |  要与数据库集群关联的数据库集群参数组。 有关更多信息，请参阅 [多可用区数据库集群的参数组](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-parameter-groups)。  |  **CLI 选项：** `--db-cluster-parameter-group-name` **RDS API 参数：** `DBClusterParameterGroupName`  |  参数组更改会立即发生。  |  在此更改期间，不会停机。当您更改参数组时，对某些参数的更改将立即应用于多可用区数据库集群中的数据库实例，而无需重新启动。而对其他一些参数进行的更改，只有在重新启动数据库实例之后才会应用。  | 
|  数据库引擎版本  |  要使用的数据库引擎的版本。  |  **CLI 选项：** `--engine-version` **RDS API 参数：** `EngineVersion`  |  如果您选择立即应用更改，则更改立即生效。 如果您不选择立即应用更改，则更改会在下一个维护时段中生效。  |  在此更改期间发生停机。  | 
| 删除保护 |  **启用删除保护**以禁止删除数据库集群。 有关更多信息，请参阅 [删除数据库实例](USER_DeleteInstance.md)。  |  **CLI 选项：** `--deletion-protection` `--no-deletion-protection` **RDS API 参数：** `DeletionProtection`  |  更改立即发生。此设置忽略“立即应用”设置。  |  在此更改期间，不会停机。  | 
|  维护时段  |  30 分钟时段，在这段时间内，将会应用对数据库集群的待处理修改。如果该时段无关紧要，请选择 **No preference**（无首选项）。 有关更多信息，请参阅“[Amazon RDS 维护时段](USER_UpgradeDBInstance.Maintenance.md#Concepts.DBMaintenance)”。  |  **CLI 选项：** `--preferred-maintenance-window` **RDS API 参数：** `PreferredMaintenanceWindow`  |  更改立即发生。此设置忽略“立即应用”设置。  |  如果有一个或多个待处理的操作导致停机，并且维护时段经过更改，加入了当前时间，则立即应用这些待处理的操作并会出现停机。  | 
|  在 AWS Secrets Manager 中管理主凭证  |  选择**在 AWS Secrets Manager 中管理主凭证**，以在 Secrets Manager 的密钥中管理主用户密码。 （可选）选择用于保护密钥的 KMS 密钥。请从您的账户的 KMS 密钥中进行选择，或输入来自其他账户的密钥。 如果 RDS 已在管理数据库集群的主用户密码，则可以通过选择 **Rotate secret immediately**（立即轮换密钥）来轮换主用户密码。 有关更多信息，请参阅 [使用 Amazon RDS 和 AWS Secrets Manager 管理密码](rds-secrets-manager.md)。  |  **CLI 选项：** `--manage-master-user-password \| --no-manage-master-user-password` `--master-user-secret-kms-key-id` `--rotate-master-user-password \| --no-rotate-master-user-password` **RDS API 参数：** `ManageMasterUserPassword` `MasterUserSecretKmsKeyId` `RotateMasterUserPassword`  |  如果您开启或关闭自动主用户密码管理，则更改会立即发生。此更改忽略立即应用设置。 如果要轮换主用户密码，则必须指定立即应用更改。  |  在此更改期间，不会停机。  | 
|  新建主密码  |  您的主用户账户密码。  |  **CLI 选项：** `--master-user-password` **RDS API 参数：** `MasterUserPassword`  |  更改会尽快异步应用。此设置忽略“立即应用”设置。  |  在此更改期间，不会停机。  | 
|  预调配 IOPS  |  最初为数据库集群分配的预置 IOPS（每秒输入/输出操作数）量。  |  **CLI 选项：** `--iops` **RDS API 参数：** `Iops`  |  如果您选择立即应用更改，则更改立即生效。 如果您不选择立即应用更改，则更改会在下一个维护时段中生效。  |  在此更改期间，不会出现停机。  | 
|  公有访问权限  |  请选择 **Publicly accessible**（可公开访问）以为数据库集群提供公有 IP 地址，这表示可以在 Virtual Private Cloud (VPC) 外部访问该实例。要可供公开访问，数据库集群还必须在 VPC 的公有子网中。 请选择 **Not publicly accessible**（不可公开访问）以设置只能从 VPC 内部访问数据库集群。 有关更多信息，请参阅 [对互联网隐藏 VPC 中的数据库实例](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Hiding)。 要从其 VPC 外部连接到数据库集群，该数据库集群必须可公开访问。此外，必须使用数据库集群安全组的入站规则授予访问权限，并且必须满足其他要求。有关更多信息，请参阅 [无法连接到 Amazon RDS 数据库实例](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)。 如果您的数据库集群不可公开访问，则您可以使用 AWS Site-to-Site VPN 连接或 Direct Connect 连接从专用网络访问该实例。有关更多信息，请参阅 [互联网络流量隐私](inter-network-traffic-privacy.md)。  | 修改数据库集群时不可用。 |  更改立即发生。此设置忽略“立即应用”设置。  |  在此更改期间，不会停机。  | 
| 存储类型 |  数据库集群的存储类型。 仅支持通用型 SSD（gp3）、预调配 IOPS（io1）和预调配 IOPS SSD（io2）存储。 有关更多信息，请参阅 [Amazon RDS 存储类型](CHAP_Storage.md#Concepts.Storage)。  |  **CLI 选项：** `--storage-type` **RDS API 参数：** `StorageType`  |  如果您选择立即应用更改，则更改立即生效。 如果您不选择立即应用更改，则更改会在下一个维护时段中生效。  |  在此更改期间，不会出现停机。  | 
|  VPC security group (VPC 安全组)。 |  要与数据库集群关联的安全组。 有关更多信息，请参阅 [VPC 安全组概述](Overview.RDSSecurityGroups.md#Overview.RDSSecurityGroups.VPCSec)。  |  **CLI 选项：** `--vpc-security-group-ids` **RDS API 参数：** `VpcSecurityGroupIds`  |  更改会尽快异步应用。此设置忽略“立即应用”设置。  |  在此更改期间，不会停机。  | 

## 修改多可用区数据库集群时不适用的设置
<a name="modify-multi-az-db-cluster-settings-not-applicable"></a>

AWS CLI 命令 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 和 RDS API 操作 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) 中的以下设置不适用于多可用区数据库集群。

您也无法在控制台中为多可用区数据库集群修改这些设置。


| AWS CLI 设置 | RDS API 设置 | 
| --- | --- | 
|  `--backtrack-window`  |  `BacktrackWindow`  | 
|  `--cloudwatch-logs-export-configuration`  |  `CloudwatchLogsExportConfiguration`  | 
|  `--copy-tags-to-snapshot \| --no-copy-tags-to-snapshot`  |  `CopyTagsToSnapshot`  | 
|  `--db-instance-parameter-group-name`  |  `DBInstanceParameterGroupName`  | 
|  `--domain`  |  `Domain`  | 
|  `--domain-iam-role-name`  |  `DomainIAMRoleName`  | 
|  `--enable-global-write-forwarding \| --no-enable-global-write-forwarding`  |  `EnableGlobalWriteForwarding`  | 
|  `--enable-http-endpoint \| --no-enable-http-endpoint`  |  `EnableHttpEndpoint`  | 
|  `--option-group-name`  |  `OptionGroupName`  | 
|  `--port`  |  `Port`  | 
|  `--scaling-configuration`  |  `ScalingConfiguration`  | 
|  `--storage-type`  |  `StorageType`  | 