

# 配置 Amazon RDS 数据库实例
<a name="CHAP_RDS_Configuring"></a>

本节介绍了如何设置 Amazon RDS 数据库实例。在创建数据库实例之前，请确定将运行该数据库实例的数据库实例类。此外，选择 AWS 区域以确定运行该数据库实例的位置。接下来，创建数据库实例。

您可以使用选项组和数据库参数组配置数据库实例。
+ 通过*选项组*，可以指定各种名为选项的功能，它们是专为特定的 Amazon RDS 数据库实例提供的。
+ *数据库参数组*就像是引擎配置值的容器，这些值可应用于一个或多个数据库实例。

可用的选项和参数取决于数据库引擎和数据库引擎版本。您可以在创建数据库实例时指定选项组和数据库参数组。也可以修改数据库实例来指定它们。

**Topics**
+ [创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)
+ [使用 AWS CloudFormation 创建 Amazon RDS 资源](creating-resources-with-cloudformation.md)
+ [连接到 Amazon RDS 数据库实例](CHAP_CommonTasks.Connect.md)
+ [使用选项组](USER_WorkingWithOptionGroups.md)
+ [Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)
+ [使用 Amazon RDS 数据库实例设置创建 Amazon ElastiCache 缓存](creating-elasticache-cluster-with-RDS-settings.md)
+ [使用 AWS Database Migration Service 将 EC2 数据库自动迁移到 Amazon RDS](USER_DMS_migration.md)
+ [教程：使用自定义参数和新选项组创建 MySQL 数据库实例](tutorial-creating-custom-OPG.md)

# 创建 Amazon RDS 数据库实例
<a name="USER_CreateDBInstance"></a>

Amazon RDS 的基本构建块是您在其中创建数据库的数据库实例。在创建数据库实例时，您可以选择其特定于引擎的特征。您还可以选择运行数据库服务器的 AWS 实例的存储容量、CPU、内存等。

**Topics**
+ [数据库实例先决条件](#USER_CreateDBInstance.Prerequisites)
+ [创建数据库实例](#USER_CreateDBInstance.Creating)
+ [数据库实例的设置](USER_CreateDBInstance.Settings.md)

## 数据库实例先决条件
<a name="USER_CreateDBInstance.Prerequisites"></a>

**重要**  
在创建 Amazon RDS 数据库实例之前，请先完成[设置 Amazon RDS 环境](CHAP_SettingUp.md)中的任务。

以下是创建 RDS 数据库实例的先决条件。

**Topics**
+ [为数据库实例配置网络](#USER_CreateDBInstance.Prerequisites.VPC)
+ [其他先决条件](#USER_CreateDBInstance.Prerequisites.Additional)

### 为数据库实例配置网络
<a name="USER_CreateDBInstance.Prerequisites.VPC"></a>

您只能在虚拟私有云（VPC）中基于 Amazon VPC 服务创建 Amazon RDS 数据库实例。此外，它必须位于至少有两个可用区的 AWS 区域中。为数据库实例选择的数据库子网组必须涵盖至少两个可用区。此配置可确保您在创建数据库实例时可以配置多可用区部署，或者将来可以轻松迁移到多可用区部署。

要在同一 VPC 中的新数据库实例和 Amazon EC2 实例之间设置连接，可以在创建数据库实例时执行此操作。要从同一 VPC 中的 EC2 实例以外的资源连接到数据库实例，请手动配置网络连接。

**Topics**
+ [配置与 EC2 实例的自动网络连接](#USER_CreateDBInstance.Prerequisites.VPC.Automatic)
+ [手动配置网络](#USER_CreateDBInstance.Prerequisites.VPC.Manual)

#### 配置与 EC2 实例的自动网络连接
<a name="USER_CreateDBInstance.Prerequisites.VPC.Automatic"></a>

创建 RDS 数据库集群时，可以使用 AWS 管理控制台在 EC2 实例和新数据库实例之间设置连接。当您这样做时，RDS 会自动配置您的 VPC 和网络设置。数据库实例与 EC2 实例在同一 VPC 中创建，以便 EC2 实例可以访问该数据库实例。

以下是将 EC2 实例与数据库实例连接的要求：
+ 在创建数据库实例之前，EC2 实例必须存在于 AWS 区域中。

  如果 AWS 区域中不存在任何 EC2 实例，控制台将提供创建一个此类实例的链接。
+ 创建数据库实例的用户必须具有执行以下操作的权限：
  + `ec2:AssociateRouteTable` 
  + `ec2:AuthorizeSecurityGroupEgress` 
  + `ec2:AuthorizeSecurityGroupIngress` 
  + `ec2:CreateRouteTable` 
  + `ec2:CreateSubnet` 
  + `ec2:CreateSecurityGroup` 
  + `ec2:DescribeInstances` 
  + `ec2:DescribeNetworkInterfaces` 
  + `ec2:DescribeRouteTables` 
  + `ec2:DescribeSecurityGroups` 
  + `ec2:DescribeSubnets` 
  + `ec2:ModifyNetworkInterfaceAttribute` 
  + `ec2:RevokeSecurityGroupEgress` 

使用此选项创建私有数据库实例。数据库实例使用仅包含私有子网的数据库子网组，来限制对 VPC 内资源的访问。

要将 EC2 实例连接到数据库实例，请在 **Create database**（创建数据库）页面上的 **Connectivity**（连接）部分中，选择 **Connect to an EC2 compute resource**（连接到 EC2 计算资源）。

![\[连接 EC2 实例\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/ec2-set-up-connection-create.png)


当您选择 **Connect to an EC2 compute resource**（连接到 EC2 计算资源）时，RDS 会自动设置以下选项。除非您通过选择 **Don't connect to an EC2 compute resource**（不要连接到 EC2 计算资源）来选择不与 EC2 实例建立连接，否则您无法更改这些设置。


****  

| 控制台选项 | 自动设置 | 
| --- | --- | 
|  **网络类型**  |  RDS 将网络类型设置为 **IPv4**。当前，在 EC2 实例和数据库实例之间设置连接时，不支持双堆栈模式。  | 
|  **虚拟私有云（VPC）**。  |  RDS 将 VPC 设置为与 EC2 实例关联的 VPC。  | 
|  **DB subnet group**（数据库子网组）  | RDS 要求在与 EC2 实例相同的可用区中具有带私有子网的数据库子网组。如果存在符合此要求的数据库子网组，则 RDS 将使用现有的数据库子网组。默认情况下，此选项设置为 Automatic setup（自动设置）。当您选择 **Automatic setup**（自动设置）但没有满足此要求的数据库子网组时，将执行以下操作。RDS 在三个可用区中使用三个可用的私有子网，其中一个可用区与 EC2 实例相同。如果私有子网在可用区中不可用，则 RDS 会在可用区中创建私有子网。然后，RDS 创建数据库子网组。当私有子网可用时，RDS 使用与该子网关联的路由表，并将它创建的任何子网添加到该路由表中。当没有可用的私有子网时，RDS 会创建一个没有互联网网关访问权限的路由表，并将它创建的子网添加到该路由表中。RDS 还允许您使用现有的数据库子网组。如果您想使用您选择的现有数据库子网组，请选择 **Choose existing**（选择现有）。  | 
|  **公有访问权限**  |  RDS 选择 **No**（否），以使数据库实例不可供公开访问。 出于安全考虑，最好实践是保持数据库为私有，并确保不能从互联网访问数据库。  | 
|  **VPC security group (firewall) [VPC 安全组（防火墙）**]  |  RDS 创建一个与数据库实例关联的新安全组。安全组命名为 `rds-ec2-n`，其中 `n` 是一个数值。该安全组包含一条以 EC2 VPC 安全组（防火墙）作为源的入站规则。这个与数据库实例关联的安全组允许 EC2 实例访问数据库实例。 RDS 还会创建一个与 EC2 实例关联的新安全组。安全组命名为 `ec2-rds-n`，其中 `n` 是一个数值。该安全组包含一条以数据库实例的 VPC 安全组作为源的出站规则。该安全组允许 EC2 实例向数据库实例发送流量。 您可以通过选择 **Create new**（新建）并键入新安全组的名称，添加另一个新安全组。 您可以通过选择 **Choose existing**（选择现有）并选择要添加的安全组，添加现有安全组。  | 
|  **可用区**  |  当您在 **Availability & durability**（可用性和持久性）（单可用区部署）中选择 **Single DB instance**（单数据库实例）时，RDS 将选择 EC2 实例的可用区。 当您在 **Availability & durability**（可用性和耐久性）（多可用区数据库实例部署）中选择 **Multi-AZ DB instance**（多可用区数据库实例）时，RDS 将为部署中的一个数据库实例选择 EC2 实例的可用区。RDS 为另一个数据库实例随机选择不同的可用区。在 EC2 实例所在的同一个可用区中创建主数据库实例或备用副本。当您选择 **Multi-AZ DB instance**（多可用区数据库实例）时，如果数据库实例和 EC2 实例位于不同的可用区，则可能会产生跨可用区成本。  | 

有关这些设置的更多信息，请参阅 [数据库实例的设置](USER_CreateDBInstance.Settings.md)。

如果您在创建数据库实例后更改这些设置，则这些更改可能会影响 EC2 实例与数据库实例之间的连接。

#### 手动配置网络
<a name="USER_CreateDBInstance.Prerequisites.VPC.Manual"></a>

要从同一 VPC 中的 EC2 实例以外的资源连接到数据库实例，请手动配置网络连接。如果您使用 AWS 管理控制台创建数据库实例，您可以让 Amazon RDS 自动为您创建 VPC。或者，您也可以使用现有 VPC 或为数据库实例创建新的 VPC。无论采用哪种方法，您的 VPC 都要求在至少两个可用区的每个可用区中至少有一个子网，以与 RDS 数据库实例一起使用。

原定设置情况下，Amazon RDS 会在可用区中自动为您创建数据库实例。要选择特定可用区，需要将 **Availability & durability**（可用性和耐用性）设置更改为 **Single DB instance**（单数据库实例）。这样做会公开 **Availability Zone**（可用区）设置，此设置可让您从 VPC 内的可用区中进行选择。但是，如果您选择多可用区部署，则 RDS 会自动选择主数据库实例或写入器数据库实例的可用区，而不显示 **Availability Zone**（可用区）设置。

在某些情况下，您可能没有原定设置 VPC 或尚未创建 VPC。在这些情况下，您可以在使用控制台创建数据库实例时，让 Amazon RDS 自动为您创建 VPC。否则，请执行以下操作：
+ 在要部署数据库实例的 AWS 区域中，创建在最少两个可用区中均至少有一个子网的 VPC。有关更多信息，请参阅[在 VPC 中使用数据库实例](USER_VPC.WorkingWithRDSInstanceinaVPC.md#Overview.RDSVPC.Create)和[教程：创建 VPC 以用于数据库实例（仅限 IPv4）](CHAP_Tutorials.WebServerDB.CreateVPC.md)。
+ 指定授权与您的数据库实例的连接的 VPC 安全组。有关更多信息，请参阅[通过创建安全组提供对 VPC 中的数据库实例的访问](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup)和[使用安全组控制访问权限](Overview.RDSSecurityGroups.md)。
+ 指定 RDS 数据库子网组，该子网组在 VPC 中定义至少两个可由数据库实例使用的子网。有关更多信息，请参阅 [使用数据库子网组](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Subnets)。

如果您想连接到与数据库实例不在同一 VPC 中的资源，请参阅[在 VPC 中访问数据库实例的场景](USER_VPC.Scenarios.md)中的相应方案。

### 其他先决条件
<a name="USER_CreateDBInstance.Prerequisites.Additional"></a>

在创建数据库实例之前，请考虑以下附加先决条件：
+ 如果使用 AWS Identity and Access Management（IAM）凭证连接到 AWS，您的 AWS 账户必须具有特定的 IAM policy。这些策略授予执行 Amazon RDS 操作所需的权限。有关更多信息，请参阅 [Amazon RDS 的 Identity and Access Management](UsingWithRDS.IAM.md)。

  要使用 IAM 访问 RDS 控制台，请使用您的 IAM 用户凭证登录 AWS 管理控制台。然后通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。
+ 要定制数据库实例的配置参数，请通过所需的参数设置指定数据库参数组。有关创建或修改数据库参数组的信息，请参阅[Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)。
**重要**  
如果您对 Amazon RDS for Db2 使用 BYOL 模型，则在创建数据库实例之前，必须先创建一个包含您的 IBM Site ID 和 IBM Customer ID 的自定义参数组。有关更多信息，请参阅 [Db2 的自带许可（BYOL）](db2-licensing.md#db2-licensing-options-byol)。
+ 确定要为数据库实例指定的 TCP/IP 端口号。有些公司的防火墙阻止连接到 RDS 数据库实例的原定设置端口。如果您公司的防火墙阻止原定设置端口，请为数据库实例选择其他端口。Amazon RDS 数据库引擎的原定设置端口为：    
<a name="dbengineports"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html)

  对于 RDS for SQL Server，预留以下端口，您不能在创建数据库实例时使用它们：`1234, 1434, 3260, 3343, 3389, 47001,` 和 `49152-49156`。

## 创建数据库实例
<a name="USER_CreateDBInstance.Creating"></a>

您可以使用 AWS 管理控制台、AWS CLI 或 RDS API 创建 Amazon RDS 数据库实例。

**注意**  
对于 RDS for Db2，建议您在创建 RDS for Db2 数据库实例之前设置许可模式所需的项。有关更多信息，请参阅 [Amazon RDS for Db2 许可选项](db2-licensing.md)。

### 控制台
<a name="USER_CreateDBInstance.CON"></a>

您可以在启用或未启用 **Easy create (轻松创建)** 的情况下使用 AWS 管理控制台 创建数据库实例。启用 **Easy create (轻松创建)** 的情况下，您可以仅指定数据库引擎类型、数据库实例大小和数据库实例标识符。**Easy create (轻松创建)** 为其他配置选项使用默认设置。未启用 **Easy create (轻松创建)** 的情况下，您在创建数据库时需要指定更多配置选项，包括用于可用性、安全性、备份和维护的选项。

**注意**  
在以下过程中，启用了 **Standard create (标准创建)**，并且未启用 **Easy create (轻松创建)**。此过程使用 Microsoft SQL Server 作为示例。  
有关使用 **Easy create (轻松创建)** 引导您完成为每个引擎创建和连接示例数据库实例的例子，请参阅[开始使用 Amazon RDS](CHAP_GettingStarted.md)。

**创建数据库实例**

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

1. 在 Amazon RDS 控制台的右上角，选择要在其中创建数据库实例的AWS区域。

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

1. 选择**创建数据库**，然后选择**标准创建**。

1. 在**引擎选项**中，选择 IBM Db2、MariaDB、Microsoft SQL Server、MySQL、Oracle 或 PostgreSQL。

   此处显示了 **Microsoft SQL Server**。  
![\[引擎选择\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/create-instance-sqlserver.png)

1. 对于**数据库管理类型**，如果您使用的是 Oracle 或 SQL Server，请选择 **Amazon RDS** 或 **Amazon RDS Custom**。

   此处显示了 **Amazon RDS**。有关 RDS Custom 的更多信息，请参阅 [Amazon RDS Custom](rds-custom.md)。

1. 对于**版本**，如果您使用的是 Db2、Oracle 或 SQL Server，请选择要使用的数据库引擎版本。

   MySQL 针对该版本只有一个选项，而 MariaDB 和 PostgreSQL 没有选项。

1. 对于 **Version (版本)**，选择引擎版本。

1. 在 **Templates (模板)** 中，选择与您的使用案例匹配的模板。如果您选择**生产**，则将在后面的步骤中预选以下内容：
   + **多可用区**故障转移选项
   + **Provisioned IOPS SSD (io1)** [预调配 IOPS SSD（io1）] 存储选项
   + **启用删除保护**选项

   我们建议将这些功能用于任何生产环境。
**注意**  
模板选择因版本而异。

1. 在**设置**部分中，打开**凭证设置**。然后执行以下操作：

   1. （可选）更改 **Master username**（主用户名）的值。

   1. 选择以下任一其它凭证管理选项：
      + **在 AWS Secrets Manager 管理**

        在**选择加密密钥**中，选择 Secrets Manager 创建的 KMS 密钥或您已创建的密钥。
**注意**  
我们建议将 AWS Secrets Manager 作为管理凭证的最安全的方法。将收取额外费用。有关更多信息，请参阅 [使用 Amazon RDS 和 AWS Secrets Manager 管理密码](rds-secrets-manager.md)。
      + **自行管理**

        要指定密码，请清除**自动生成密码**复选框（如果已选中）。在**主密码**和**确认主密码**中输入相同的密码。

1. （可选）为该数据库实例设置与计算资源的连接。

   在创建数据库实例期间，您可以配置 Amazon EC2 实例和新数据库实例之间的连接。有关更多信息，请参阅 [配置与 EC2 实例的自动网络连接](#USER_CreateDBInstance.Prerequisites.VPC.Automatic)。

1. 在**连接**部分的 **VPC 安全组（防火墙）**下，如果您选择**新建**，则会创建一个 VPC 安全组，其入站规则允许本地计算机的 IP 地址访问该数据库。

1. 对于其余部分，请指定数据库实例设置。有关每项设置的信息，请参阅 [数据库实例的设置](USER_CreateDBInstance.Settings.md)。

1. 选择**创建数据库**。

   如果选择使用自动生成的密码，则**数据库**页面上将显示**查看凭证详细信息**按钮。

   要查看数据库实例的主用户名和密码，请选择**查看凭证详细信息**。

   要以主用户身份连接到数据库实例，请使用显示的用户名和密码。
**重要**  
您无法再次查看主用户密码。如果您不记录它，您可能需要更改它。如果需要在数据库实例可用后更改主用户密码，则可以修改数据库实例以执行此操作。有关修改 数据库实例的更多信息，请参阅 [修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)。

1. 对于 **Databases (数据库)**，选择新数据库实例的名称。

   在 RDS 控制台上，将显示新数据库实例的详细信息。数据库实例具有 **Creating (正在创建)** 状态，直到该数据库实例完成创建并可供使用。当状态变为 **Available (可用)** 时，您可以连接到该数据库实例。根据所分配的数据库实例类和存储的不同，新实例可能需要数分钟时间才能变得可用。  
![\[我的数据库实例详细信息\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/SQLSvr-Launch05.png)

### AWS CLI
<a name="USER_CreateDBInstance.CLI"></a>



**注意**  
如果您想采用“通过 AWS Marketplace 获得 Db2 许可证”模式，则必须先使用 AWS 管理控制台订阅 AWS Marketplace 并注册 IBM。有关更多信息，请参阅 [订阅 Db2 Marketplace 清单并注册 IBM](db2-licensing.md#db2-marketplace-subscribing-registering)。

要使用 AWS CLI 创建数据库实例，请使用以下参数调用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 命令：
+ `--db-instance-identifier`
+ `--db-instance-class`
+ `--vpc-security-group-ids`
+ `--db-subnet-group`
+ `--engine`
+ `--master-username`
+ `--master-user-password` 或 `--manage-master-user-password`
+ `--allocated-storage`
+ `--backup-retention-period`

有关每项设置的信息，请参阅[数据库实例的设置](USER_CreateDBInstance.Settings.md)。

此示例使用 Microsoft SQL Server。

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

```
 1. aws rds create-db-instance \
 2.     --engine sqlserver-se \
 3.     --db-instance-identifier mymsftsqlserver \
 4.     --allocated-storage 250 \
 5.     --db-instance-class db.t3.large \
 6.     --vpc-security-group-ids mysecuritygroup \
 7.     --db-subnet-group mydbsubnetgroup \
 8.     --master-username masterawsuser \
 9.     --manage-master-user-password \
10.     --backup-retention-period 3
```
对于：Windows  

```
 1. aws rds create-db-instance ^
 2.     --engine sqlserver-se ^
 3.     --db-instance-identifier mydbinstance ^
 4.     --allocated-storage 250 ^
 5.     --db-instance-class db.t3.large ^
 6.     --vpc-security-group-ids mysecuritygroup ^
 7.     --db-subnet-group mydbsubnetgroup ^
 8.     --master-username masterawsuser ^ 
 9.     --manage-master-user-password ^
10.     --backup-retention-period 3
```
此命令生成类似于下述信息的输出。  

```
1. DBINSTANCE  mydbinstance  db.t3.large  sqlserver-se  250  sa  creating  3  ****  n  10.50.2789
2. SECGROUP  default  active
3. PARAMGRP  default.sqlserver-se-14  in-sync
```

### RDS API
<a name="USER_CreateDBInstance.API"></a>

**注意**  
如果您想采用“通过 AWS Marketplace 获得 Db2 许可证”模式，则必须先使用 AWS 管理控制台订阅 AWS Marketplace 并注册 IBM。有关更多信息，请参阅 [订阅 Db2 Marketplace 清单并注册 IBM](db2-licensing.md#db2-marketplace-subscribing-registering)。

要使用 Amazon RDS API 创建数据库实例，请调用 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 操作。

有关每项设置的信息，请参阅[数据库实例的设置](USER_CreateDBInstance.Settings.md)。

# 数据库实例的设置
<a name="USER_CreateDBInstance.Settings"></a>

在下表中可以找到您在创建数据库实例时所选设置的详细信息。该表还显示了支持每项设置的数据库引擎。

您可以使用控制台、[create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) CLI 命令或 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) RDS API 操作创建数据库实例。


****  

| 控制台设置 | 设置说明 | CLI 选项和 RDS API 参数 | 支持的数据库引擎 | 
| --- | --- | --- | --- | 
|  **分配的存储空间**  |  要为数据库实例分配的存储量（以 GiB 为单位）。有时，为数据库实例分配的存储空间高于数据库大小时可提高 I/O 性能。 有关更多信息，请参阅“[Amazon RDS 数据库实例存储](CHAP_Storage.md)”。  |  **CLI 选项：** `--allocated-storage` **API 参数：**  `AllocatedStorage`  |  All  | 
| 架构设置 |  如果选择**使用多租户架构**，则 RDS for Oracle 将创建容器数据库（CDB）。如果您不选择此选项，RDS for Oracle 将创建一个非 CDB。非 CDB 使用传统的 Oracle 数据库架构。CDB 可以包含可插拔数据库（PDB），而非 CDB 不能。 Oracle Database 21c 仅使用 CDB 架构。Oracle Database 19c 可以使用 CDB 或非 CDB 架构。低于 Oracle Database 19c 的版本仅使用非 CDB 架构。 有关更多信息，请参阅 [RDS for Oracle CDB 概述](Oracle.Concepts.CDBs.md)。  |  **CLI 选项：** `--engine oracle-ee-cdb`（Oracle 多租户） `--engine oracle-se2-cdb`（Oracle 多租户） `--engine oracle-ee`（传统） `--engine oracle-se2`（传统） **API 参数：** `Engine`  |  Oracle  | 
| 架构配置 |  只有在**架构设置**中选择 **Oracle 多租户架构**时，这些设置才有效。请选择以下任一其它设置： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html) 无论您选择哪种配置，您的 CDB 都包含一个初始 PDB。在多租户配置中，您可以以后使用 RDS API 创建更多 PDB。 有关更多信息，请参阅 [RDS for Oracle CDB 概述](Oracle.Concepts.CDBs.md)。  |  **CLI 选项：** `--multi-tenant`（多租户配置） `--no-multi-tenant`（单租户配置） **API 参数：** `MultiTenant`  |  Oracle  | 
| 自动次要版本升级 |  选择**启用自动次要版本升级**，以使数据库实例能够在首选次要数据库引擎版本升级可用时自动接收这些升级。这是默认行为。Amazon RDS 在维护时段内执行自动次要版本升级。如果您未选择**启用自动次要版本升级**，则当新的次要版本可用时，您的数据库实例不会自动升级。 有关更多信息，请参阅 [自动升级次要引擎版本](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades)。  |  **CLI 选项：** `--auto-minor-version-upgrade` `--no-auto-minor-version-upgrade` **API 参数：** `AutoMinorVersionUpgrade`  | 全部 | 
|  可用区:  |  数据库实例所在的可用区。使用默认值**无首选项**，除非您要指定一个可用区。 有关更多信息，请参阅“[区域、可用区和 Local Zones ](Concepts.RegionsAndAvailabilityZones.md)”。  |  **CLI 选项：** `--availability-zone` **API 参数：** `AvailabilityZone`  | 全部 | 
|   **AWS KMS key**   |  仅当**加密**设置为**启用加密**时可用。选择 AWS KMS key 以用于加密此数据库实例。有关更多信息，请参阅 [加密 Amazon RDS 资源](Overview.Encryption.md)。  |  **CLI 选项：** `--kms-key-id` **API 参数：** `KmsKeyId`  | 全部 | 
| AWS License Manager 配置 |  为 AWS License Manager 许可证配置输入名称。名称必须不超过 100 个字符，且仅包含 A-Z、A-Z 和 0-9。 有关更多信息，请参阅 [将 与 集成AWS License Manager](db2-licensing.md#db2-lms-integration)。  |  **CLI 选项：** 有关更多信息，请参阅 [AWS License Manager CLI](db2-licensing.md#db2-lms-integration.cli)。 **API 参数：** 有关更多信息，请参阅 [AWS License Manager API](db2-licensing.md#db2-lms-integration.api)。  | Db2 | 
| 备份复制 |  选择**在其他 AWS 区域启用复制**，以在另一个区域中创建备份来用于灾难恢复。 然后为其他备份选择**目标区域**。  |  创建数据库实例时不可用。有关使用 AWS CLI 或 RDS API 启用跨区域备份的信息，请参阅 [启用 Amazon RDS 的跨区域自动备份](AutomatedBackups.Replicating.Enable.md)。  |  Db2 Oracle PostgreSQL SQL Server  | 
| 备份保留期  |  您希望保留数据库实例自动备份的天数。对于任何重要的数据库实例，请将该值设置为 **1** 或更大。 有关更多信息，请参阅“[备份简介](USER_WorkingWithAutomatedBackups.md)”。  |  **CLI 选项：** `--backup-retention-period` **API 参数：** `BackupRetentionPeriod`  | 全部 | 
| Backup target（备份目标 |  选择 **AWS 云** 在父级 AWS 区域中存储自动备份和手动快照。选择 **Outposts (on-premises)**（Outposts（本地部署））以便将它们存储在您的本地 Outpost 上。 此选项设置仅适用于 Outposts 上的 RDS。有关更多信息，请参阅 [创建 Amazon RDS on AWS Outposts 数据库实例](rds-on-outposts.creating.md)。  |  **CLI 选项：** `--backup-target` **API 参数：** `BackupTarget`  | MySQL、PostgreSQL、SQL Server | 
| 备份时段： |  Amazon RDS 自动备份数据库实例的时间段。除非您知道需要何时进行数据库备份，否则，请使用**无首选项**默认值。 有关更多信息，请参阅“[备份简介](USER_WorkingWithAutomatedBackups.md)”。  |  **CLI 选项：** `--preferred-backup-window` **API 参数：** `PreferredBackupWindow`  | 全部 | 
|  **证书颁发机构**  |  数据库实例使用的服务器证书的证书颁发机构（CA）。 有关更多信息，请参阅 [使用 SSL/TLS 加密与数据库实例或集群的连接](UsingWithRDS.SSL.md)。  |  **CLI 选项：** `--ca-certificate-identifier` **RDS API 参数：** `CACertificateIdentifier`  |  全部  | 
| 字符集 |  数据库实例的字符集。数据库字符集的默认值 **AL32UTF8** 适用于 Unicode 5.0 UTF-8 Universal 字符集。创建数据库实例后，无法更改数据库字符集。 在单租户配置中，非默认数据库字符集仅影响 PDB，不影响 CDB。有关更多信息，请参阅“[CDB 架构的单租户配置](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant)”。 数据库字符集不同于国家/地区字符集，后者称为 NCHAR 字符集。与数据库字符集不同，NCHAR 字符集指定 NCHAR 数据类型（NCHAR、NVARCHAR2 和 NCLOB）列的编码，而不影响数据库元数据。 有关更多信息，请参阅“[RDS for Oracle 字符集](Appendix.OracleCharacterSets.md)”。  |  **CLI 选项：** `--character-set-name` **API 参数：** `CharacterSetName`  | Oracle | 
| 排序规则： |  数据库实例的服务器级别排序规则。 有关更多信息，请参阅“[Microsoft SQL Server 的服务器级别排序规则](Appendix.SQLServer.CommonDBATasks.Collation.md#Appendix.SQLServer.CommonDBATasks.Collation.Server)”。  |  **CLI 选项：** `--character-set-name` **API 参数：** `CharacterSetName`  | SQL Server | 
| 将标签复制到快照  |  在创建快照时，该选项将任何数据库实例标签复制到数据库快照中。 有关更多信息，请参阅“[为 Amazon RDS 资源添加标签](USER_Tagging.md)”。  |  **CLI 选项：** `--copy-tags-to-snapshot` `--no-copy-tags-to-snapshot` **RDS API 参数：** `CopyTagsToSnapshot`  | All | 
|  数据库身份验证  |  您想要使用的数据库身份验证选项。 选择 **Password authentication** 以仅使用数据库密码验证数据库用户的身份。 选择 **Password and IAM DB authentication**（密码和 IAM 数据库身份验证），以通过用户和角色的数据库密码和用户凭证验证数据库用户的身份。有关更多信息，请参阅 [适用于 MariaDB、MySQL 和 PostgreSQL 的IAM 数据库身份验证](UsingWithRDS.IAMDBAuth.md)。此选项仅支持 MySQL 和 PostgreSQL。 选择 **Password and Kerberos authentication (密码和 Kerberos 身份验证)** 可使用数据库密码和 Kerberos 身份验证，通过使用 AWS Managed Microsoft AD 创建的 Directory Service 来验证数据库用户的身份。接下来，选择目录或选择 **Create a new Directory**。 有关更多信息，请参阅以下章节之一： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html)  |  ***IAM：*** **CLI 选项：** `--enable-iam-database-authentication` `--no-enable-iam-database-authentication` **RDS API 参数：** `EnableIAMDatabaseAuthentication` ***Kerberos：*** **CLI 选项：** `--domain` `--domain-iam-role-name` **RDS API 参数：** `Domain` `DomainIAMRoleName`  |  因身份验证类型而异  | 
| Database management type（数据库管理类型 |  如果您不需要自定义您的环境，请选择 **Amazon RDS**。 如果您想要自定义数据库、操作系统及基础设施，请选择 **Amazon RDS Custom**。有关更多信息，请参阅 [Amazon RDS Custom](rds-custom.md)。  |  对于 CLI 和 API，您可以指定数据库引擎类型。  |  Oracle SQL Server  | 
|  数据库端口： |  要访问数据库实例的端口。显示的是默认端口。  有些公司的防火墙不允许连接到默认的 MariaDB、MySQL 和 PostgreSQL 端口。如果您的公司防火墙阻止默认端口，请为数据库实例输入另一个端口。   |  **CLI 选项：** `--port` **RDS API 参数：** `Port`  | 全部 | 
|  数据库引擎版本  |  要使用的数据库引擎的版本。  |  **CLI 选项：** `--engine-version` **RDS API 参数：** `EngineVersion`  | All | 
|  数据库实例类： |  数据库实例的配置。例如，**db.t3.small** 数据库实例类具有 2 GiB 内存、2 个 vCPU、1 个虚拟内核、一个可变 ECU 和中等输入/输出容量。 如有可能，请选择足够大的数据库实例类以便典型查询工作集能够保留在内存中。如果在内存中保留工作集，系统可以避免写入到磁盘，从而提高性能。有关更多信息，请参阅 [数据库实例类](Concepts.DBInstanceClass.md)。 在 RDS for Oracle 中，您可以选择 **Include additional memory configurations (包括其他内存配置)**。这些配置针对较高的内存与 vCPU 比率进行了优化。例如，**db.r5.6xlarge.tpc2.mem4x** 是一个 db.r5.8x 数据库实例，每个内核有 2 个线程（tpc2），内存是标准 db.r5.6xlarge 数据库实例的 4 倍。有关更多信息，请参阅 [RDS for Oracle 数据库实例类](Oracle.Concepts.InstanceClasses.md)。  |  **CLI 选项：** `--db-instance-class` **RDS API 参数：** `DBInstanceClass`  | All | 
|  数据库实例标识符： |  数据库实例的名称。请使用与命名本地服务器相同的方式命名数据库实例。数据库实例标识符最多可以包含 63 个字母数字字符，且必须在所选 AWS 区域中对于您的账户是唯一的。  |  **CLI 选项：** `--db-instance-identifier` **RDS API 参数：** `DBInstanceIdentifier`  | All | 
|  数据库参数组： |  数据库实例的参数组。您可以选择原定设置参数组，也可以创建自定义参数组。 如果您对于 RDS for Db2 使用 BYOL 模型，则在创建数据库实例之前，必须先创建一个包含您的 IBM Site ID 和 IBM Customer ID 的自定义参数组。有关更多信息，请参阅 [Db2 的自带许可（BYOL）](db2-licensing.md#db2-licensing-options-byol)。 有关更多信息，请参阅 [Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)。  |  **CLI 选项：** `--db-parameter-group-name` **RDS API 参数：** `DBParameterGroupName`  | 全部 | 
|  DB subnet group（数据库子网组  | 要用于数据库集群的数据库子网组。选择 Choose existing（选择现有）以使用现有的数据库子网组。然后，从 Existing DB subnet groups（现有数据库子网组）下拉列表中选择所需的子网组。选择 **Automatic setup**（自动设置），让 RDS 选择兼容的数据库子网组。如果不存在任何子网组，RDS 会为您的集群创建一个新的子网组。有关更多信息，请参阅 [使用数据库子网组](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Subnets)。 |  **CLI 选项：** `--db-subnet-group-name` **RDS API 参数：** `DBSubnetGroupName`  | 全部 | 
| 专用日志卷 |  使用专用日志卷（DLV）将数据库事务日志存储在与包含数据库表的卷不同的存储卷上。 有关更多信息，请参阅 [使用专用日志卷（DLV）](USER_PIOPS.dlv.md)。  |  **CLI 选项：** `--dedicated-log-volume` **RDS API 参数：** `DedicatedLogVolume`  | All | 
| 删除保护 |  **启用删除保护**以禁止删除数据库实例。如果使用 AWS 管理控制台创建生产数据库实例，将默认启用删除保护。 有关更多信息，请参阅“[删除数据库实例](USER_DeleteInstance.md)”。  |  **CLI 选项：** `--deletion-protection` `--no-deletion-protection` **RDS API 参数：** `DeletionProtection`  | All | 
|  加密。 |  **启用加密**可对该数据库实例启用静态加密。 有关更多信息，请参阅“[加密 Amazon RDS 资源](Overview.Encryption.md)”。  |  **CLI 选项：** `--storage-encrypted` `--no-storage-encrypted` **RDS API 参数：** `StorageEncrypted`  | All | 
|  增强监控  |  **启用增强监控**以允许为运行数据库实例的操作系统实时收集指标。 有关更多信息，请参阅“[使用增强监控来监控操作系统指标](USER_Monitoring.OS.md)”。  |  **CLI 选项：** `--monitoring-interval` `--monitoring-role-arn` **RDS API 参数：** `MonitoringInterval` `MonitoringRoleArn`  | 全部 | 
|  引擎类型  |  选择用于此数据库集群的数据库实例。  |  **CLI 选项：** `--engine` **RDS API 参数：** `Engine`  | 全部 | 
|  初始数据库名称： |  数据库实例的数据库名称。如果未提供名称，则 Amazon RDS 不会在数据库实例上创建数据库（Oracle 和 PostgreSQL 除外）。该名称不能是数据库引擎保留的单词，并且具有其他限制，具体取决于数据库引擎。 Db2： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html) MariaDB 和 MySQL： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html) Oracle： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html) PostgreSQL： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html)  |  **CLI 选项：** `--db-name` **RDS API 参数：** `DBName`  | 除了 SQL Server 以外的全部 | 
|  许可证 |  许可证模型的有效值： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html)  |  **CLI 选项：** `--license-model` **RDS API 参数：** `LicenseModel`  |  全部  | 
|  **日志导出**  |  要发布到 Amazon CloudWatch Logs 的数据库日志文件的类型。 有关更多信息，请参阅“[将数据库日志发布到 Amazon CloudWatch Logs](USER_LogAccess.Procedural.UploadtoCloudWatch.md)”。  |  **CLI 选项：** `--enable-cloudwatch-logs-exports` **RDS API 参数：** `EnableCloudwatchLogsExports`  |  All  | 
|  维护时段  |  30 分钟时段，在这段时间内，将会应用对数据库实例的待处理修改。如果该时段无关紧要，请选择**无首选项**。 有关更多信息，请参阅“[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 密钥中进行选择，或输入来自其他账户的密钥。 有关更多信息，请参阅 [使用 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` **RDS API 参数：** `ManageMasterUserPassword` `MasterUserSecretKmsKeyId`  | All | 
|  主密码： |  您的主用户账户密码。密码具有以下数量的可打印 ASCII 字符（不包括 `/`、`"`、空格和 `@`），具体取决于数据库引擎： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html)  |  **CLI 选项：** `--master-user-password` **RDS API 参数：** `MasterUserPassword`  | All | 
|  主用户名 –  |  用作登录数据库实例的主用户名，拥有所有数据库权限。注意以下命名限制： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html) 您无法在创建数据库实例之后更改主用户名。 对于 Db2，我们建议您使用与自行管理的 Db2 实例名称相同的主用户名。 有关授予主用户权限的更多信息，请参阅 [主用户账户权限](UsingWithRDS.MasterAccounts.md)。  |  **CLI 选项：** `--master-username` **RDS API 参数：** `MasterUsername`  | All | 
| Microsoft SQL Server Windows 身份验证 |  **Enable Microsoft SQL Server Windows authentication (启用 Microsoft SQL Server Windows 身份验证)**，然后 **Browse Directory (浏览目录)** 以选择要允许授权域用户使用 Windows 身份验证向此 SQL Server 实例进行身份验证的目录。  |  **CLI 选项：** `--domain` `--domain-iam-role-name` **RDS API 参数：** `Domain`  `DomainIAMRoleName`  |  SQL Server  | 
|  多可用区部署  |  **创建备用实例**，以在另一个可用区中创建数据库实例的被动辅助副本，从而提供故障转移支持。建议将多可用区用于生产工作负载以保持高可用性。 对于开发和测试，您可以选择**不创建备用实例**。 有关更多信息，请参阅“[配置和管理 Amazon RDS 的多可用区部署](Concepts.MultiAZ.md)”。  |  **CLI 选项：** `--multi-az` `--no-multi-az` **RDS API 参数：** `MultiAZ`  | All | 
| 国家/地区字符集 (NCHAR) |  数据库实例的国家/地区字符集，通常称为 NCHAR 字符集。您可以将国家/地区字符集设置为 AL16UTF16（默认值）或 UTF-8。创建数据库实例后，无法更改国家/地区字符集。 国家/地区字符集不同于数据库字符集。与数据库字符集不同，国家/地区字符集仅指定 NCHAR 数据类型（NCHAR、NVARCHAR2 和 NCLOB）列的编码，而不影响数据库元数据。 有关更多信息，请参阅“[RDS for Oracle 字符集](Appendix.OracleCharacterSets.md)”。  |  **CLI 选项：** `--nchar-character-set-name` **API 参数：** `NcharCharacterSetName`  | Oracle | 
|  网络类型  |  数据库实例支持的 IP 寻址协议。 **IPv4**（默认值），规定资源只能通过 Internet 协议版本 4 (IPv4) 寻址协议与数据库实例通信。 **双堆栈模式**，规定资源可通过 IPv4 和/或 Internet 协议版本 6 (IPv6) 与数据库实例通信。如果您有任何必须通过 IPv6 寻址协议与数据库实例通信的资源，请使用双堆栈模式。此外，请确保将 IPv6 CIDR 块与指定的数据库子网组中的所有子网进行关联。 有关更多信息，请参阅 [Amazon RDS IP 寻址](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.IP_addressing)。  |  **CLI 选项：** `--network-type` **RDS API 参数：** `NetworkType`  |  全部  | 
|  选项组  |  数据库实例的选项组。您可以选择默认选项组，也可以创建自定义选项组。 有关更多信息，请参阅“[使用选项组](USER_WorkingWithOptionGroups.md)”。  |  **CLI 选项：** `--option-group-name` **RDS API 参数：** `OptionGroupName`  |  All  | 
| Performance Insights |  **启用 Performance Insights** 以监控数据库实例负载，以便您可以分析数据库性能和解决数据库性能问题。 选择保留期以确定要保留的 Performance Insights 历史记录数量。保留期设置为**默认值（7 天）**。要将性能数据保留更长时间，请指定 1–24 个月。有关保留期的更多信息，请参阅。[性能详情的定价和数据留存](USER_PerfInsights.Overview.cost.md) 选择一个 KMS 密钥以用来保护用于加密该数据库卷的密钥。请从您的账户的 KMS 密钥中进行选择，或输入来自其他账户的密钥。 有关更多信息，请参阅 [在 Amazon RDS 上使用性能详情监控数据库负载](USER_PerfInsights.md)。  |  **CLI 选项：** `--enable-performance-insights` `--no-enable-performance-insights` `--performance-insights-retention-period` `--performance-insights-kms-key-id` **RDS API 参数：** `EnablePerformanceInsights` `PerformanceInsightsRetentionPeriod` `PerformanceInsightsKMSKeyId`  | 全部，但 Db2 除外 | 
|  **预调配 IOPS**  |  数据库实例的预调配 IOPS（每秒 I/O 操作数）值。仅当您为 **Storage type**（存储类型）选择以下类型之一时，此设置才可用： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html) 有关更多信息，请参阅 [Amazon RDS 数据库实例存储](CHAP_Storage.md)。  |  **CLI 选项：** `--iops` **RDS API 参数：** `Iops`  |  全部  | 
|  公有访问权限  |  **Yes (是)** 为数据库实例提供公有 IP 地址，这表示可以在 VPC 外部访问该实例。要可供公开访问，数据库实例还必须在 VPC 的公有子网中。 **No** 让数据库实例只在 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)。  |  **CLI 选项：** `--publicly-accessible` `--no-publicly-accessible` **RDS API 参数：** `PubliclyAccessible`  | 全部 | 
| RDS Extended Support |  选择**启用 RDS Extended Support**，以允许受支持的主要引擎版本在 RDS 标准支持终止日期后继续运行。 当您创建数据库实例时，Amazon RDS 默认使用 RDS Extended Support。为了防止在 RDS 标准支持终止日期后创建新的数据库实例并避免支付 RDS Extended Support 费用，请禁用此设置。在 RDS Extended Support 定价开始日期之前，您的现有数据库实例不会产生费用。 有关更多信息，请参阅 [Amazon RDS 的 Amazon RDS 扩展支持](extended-support.md)。 |  **CLI 选项：** `--engine-lifecycle-support` **RDS API 参数：** `EngineLifecycleSupport`  |  MySQL PostgreSQL  | 
|  **RDS Proxy（RDS 代理**  |  选择 **Create an RDS Proxy**（创建 RDS 代理），以便为您的数据库实例创建代理。Amazon RDS 会自动为代理创建 IAM 角色和 Secrets Manager 密钥。 有关更多信息，请参阅 [Amazon RDS 代理](rds-proxy.md)。  |  创建数据库实例时不可用。  |  MariaDB MySQL PostgreSQL  | 
|  Storage autoscaling (存储自动扩展  |  **Enable storage autoscaling (启用存储自动扩展)**，使 Amazon RDS 能够在需要时自动增加存储空间，以避免数据库实例耗尽存储空间。 使用**最大存储阈值**设置 Amazon RDS 自动将数据库实例存储增加到的上限。默认值为 1,000 GiB。 有关更多信息，请参阅“[使用 Amazon RDS 存储自动扩展功能自动管理容量](USER_PIOPS.Autoscaling.md)”。  |  **CLI 选项：** `--max-allocated-storage` **RDS API 参数：** `MaxAllocatedStorage`  | 全部 | 
|  **Storage throughput（存储吞吐量**  |  数据库实例的存储吞吐量值。仅当您为 **Storage type**（存储类型）选择 **General purpose SSD (gp3)** [通用型 SSD（gp3）]时，此设置才可用： 有关更多信息，请参阅 [gp3 存储（推荐）](CHAP_Storage.md#gp3-storage)。  |  **CLI 选项：** `--storage-throughput` **RDS API 参数：** `StorageThroughput`  | All | 
|  存储类型  |  数据库实例的存储类型。 如果您选择 **General Purpose SSD (gp3)** [通用型 SSD（gp3）]，则可以在 **Advanced settings**（高级设置）下预调配额外的预调配 IOPS 和存储吞吐量。 如果您选择**预调配 IOPS SSD（io1）**或**预调配 IOPS SSD（io2）**，请输入**预调配 IOPS** 值。 有关更多信息，请参阅 [Amazon RDS 存储类型](CHAP_Storage.md#Concepts.Storage)。  |  **CLI 选项：** `--storage-type` **RDS API 参数：** `StorageType`  | 全部 | 
| 附加存储卷  |  您最多可以向 RDS for Oracle 或 RDS for SQL Server 数据库实例添加三个附加存储卷。您可以将每个附加卷配置为使用 gp3 或 io2 存储类型。您还可以指定不同的已分配存储、IOPS 和吞吐量设置，以针对您的工作负载要求进行优化。 确保将卷名称指定为 `rdsdbdata2`、`rdsdbdata3` 或 `rdsdbdata4`。 主卷和附加卷的总存储空间不能超过 256 TiB。  |  **CLI 选项：** `--additional-storage-volumes` **RDS API 参数：** `AdditionalStorageVolumes`  | Oracle 和 SQL Server | 
| 子网组  |  与此数据库实例关联的数据库子网组。 有关更多信息，请参阅 [使用数据库子网组](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Subnets)。  |  **CLI 选项：** `--db-subnet-group-name` **RDS API 参数：** `DBSubnetGroupName`  | 全部 | 
| 租户数据库名称 |  在 Oracle 架构的多租户配置中，您的初始 PDB 的名称。只有在**架构配置**中选择**多租户配置**时，此设置才可用。 租户数据库的名称必须与名为 `RDSCDB` CDB 的名称不同。您无法更改 CDB 名称。  |  **CLI 选项：** `--db-name` **RDS API 参数：** `DBName`  |  Oracle  | 
| 租户数据库主用户名 |  用作登录租户数据库（PDB）的主用户名，拥有所有数据库权限。只有在**架构配置**中选择**多租户配置**时，此设置才可用。 注意以下命名限制： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html) 您无法执行以下操作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html)  |  **CLI 选项：** `--master-username` **RDS API 参数：** `MasterUsername`  |  Oracle  | 
| 租户数据库主密码 |  租户数据库（PDB）的主用户帐户的密码。只有在**架构配置**中选择**多租户配置**时，此设置才可用。 密码必须包含 8–30 个可打印的 ASCII 字符（不包括 `/`、`"`、空格和 `@`。）。  |  **CLI 选项：** `--master-password` **RDS API 参数：** `MasterPassword`  |  Oracle  | 
| 租户数据库字符集 |  初始租户数据库的字符集。只有在**架构配置**中选择**多租户配置**时，此设置才可用。仅支持 RDS for Oracle CDB 实例。 租户数据库字符集的默认值 **AL32UTF8** 适用于 Unicode 5.0 UTF-8 Universal 字符集。您可以选择不同于 CDB 字符集的租户数据库字符集。 有关更多信息，请参阅 [RDS for Oracle 字符集](Appendix.OracleCharacterSets.md)。  |  **CLI 选项：** `--character-set-name` **RDS API 参数：** `CharacterSetName`  |  Oracle  | 
| 租户数据库国家字符集 |  租户数据库的国家字符集，通常称为 `NCHAR` 字符集。只有在**架构配置**中选择**多租户配置**时，此设置才可用。仅支持 RDS for Oracle CDB 实例。 您可以将国家字符集设置为 **AL16UTF16**（默认值）或 **UTF-8**。创建租户数据库后，无法更改国家字符集。 租户数据库国家字符集不同于租户数据库字符集。国家字符集仅为使用 `NCHAR` 数据类型（`NCHAR`、`NVARCHAR2`、和 `NCLOB`）且不影响数据库元数据的列指定编码。 有关更多信息，请参阅 [RDS for Oracle 字符集](Appendix.OracleCharacterSets.md)。  |  **CLI 选项：** `--nchar-character-set-name` **API 参数：** `NcharCharacterSetName`  |  Oracle  | 
|  时区： |  数据库实例的时区。如果您未选择时区，则数据库实例将使用默认时区。您无法在创建数据库实例之后更改时区。 有关更多信息，请参阅[Amazon RDS for Db2 数据库实例的本地时区](db2-time-zone.md)和[Microsoft SQL Server 数据库实例的本地时区](SQLServer.Concepts.General.TimeZone.md)。  |  **CLI 选项：** `--timezone` **RDS API 参数：** `Timezone`  |  Db2 SQL Server RDS Custom for SQL Server  | 
|  虚拟私有云（VPC）。 |  基于要与此数据库实例关联的 Amazon VPC 服务的 VPC。 有关更多信息，请参阅 [Amazon VPC 和 Amazon RDS](USER_VPC.md)。  |  对于 CLI 和 API，您可以指定 VPC 安全组 ID。  | 全部 | 
|  VPC security group (firewall) [VPC 安全组（防火墙）]  |  要与数据库实例关联的安全组。 有关更多信息，请参阅 [VPC 安全组概述](Overview.RDSSecurityGroups.md#Overview.RDSSecurityGroups.VPCSec)。  |  **CLI 选项：** `--vpc-security-group-ids` **RDS API 参数：** `VpcSecurityGroupIds`  | 全部 | 

# 使用 AWS CloudFormation 创建 Amazon RDS 资源
<a name="creating-resources-with-cloudformation"></a>

Amazon RDS 与 AWS CloudFormation 集成，后者是一项服务，可帮助您对AWS资源进行建模和设置，这样您就可以花较少的时间来创建和管理资源与基础设施。您可以创建一个模板，描述所需的所有 AWS 资源（例如数据库实例和数据库参数组），而且 CloudFormation 会为您预置和配置这些资源。

使用 CloudFormation 时，可以重复使用您的模板来不断地重复设置您的 RDS 资源。仅描述您的资源一次，然后在多个AWS账户和区域中反复配置相同的资源。

## RDS 和 CloudFormation 模板
<a name="working-with-templates"></a>

[CloudFormation 模板](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)是 JSON 或 YAML 格式的文本文件。这些模板可描述您要在 CloudFormation 堆栈中预调配的资源。如果您不熟悉 JSON 或 YAML，可以在 CloudFormation Designer 的帮助下开始使用 CloudFormation 模板。有关更多信息，请参阅 *AWS CloudFormation 用户指南*中的[什么是 CloudFormation Designer？](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html)。

RDS 支持在 CloudFormation 中创建资源。有关更多信息（包括这些资源的 JSON 和 YAML 模板示例），请参阅 *AWS CloudFormation 用户指南*中的 [RDS 资源类型参考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html)。

## 了解有关 CloudFormation 的更多信息
<a name="learn-more-cloudformation"></a>

要了解有关 CloudFormation 的更多信息，请参阅以下资源：
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
+ [AWS CloudFormation《用户指南](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)》
+ [CloudFormation API 参考](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html)
+ [AWS CloudFormation《命令行界面用户指南](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)》

# 连接到 Amazon RDS 数据库实例
<a name="CHAP_CommonTasks.Connect"></a>

 在连接到数据库实例之前，您必须先创建数据库实例。有关信息，请参阅 [创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)。在 Amazon RDS 预调配数据库实例后，使用标准客户端应用程序或实用程序将数据库引擎连接到数据库实例。在连接字符串中，指定数据库实例端点中的 DNS 地址作为主机参数。此外，还可以将数据库实例端点中的端口号指定为端口参数。

有关查找 Amazon RDS 数据库实例的连接信息或访问 VPC 中数据库实例的场景的更多信息，请参阅以下主题。
+ [查找 Amazon RDS 数据库实例的连接信息](CHAP_CommonTasks.Connect.EndpointAndPort.md)
+ [在 VPC 中访问数据库实例的方案](CHAP_CommonTasks.Connect.ScenariosForAccess.md)

# 查找 Amazon RDS 数据库实例的连接信息
<a name="CHAP_CommonTasks.Connect.EndpointAndPort"></a>

数据库实例的连接信息包括其端点、端口和有效数据库用户，如主用户。例如，对于 MySQL 数据库实例，假设端点值是 `mydb.123456789012.us-east-1.rds.amazonaws.com`。在这种情况下，端口值是 `3306`，数据库用户是 `admin`。鉴于此信息，您可以在连接字符串中指定以下值：
+ 对于主机或主机名或 DNS 名称，请指定 `mydb.123456789012.us-east-1.rds.amazonaws.com`。
+ 对于端口，请指定 `3306`。
+ 对于用户，请指定 `admin`。

端点对于每个数据库实例都是唯一的，端口和用户的值可能会有所不同。以下列表显示了每个数据库引擎的最常见端口：
+ Db2 – 50000
+ MariaDB – 3306
+ Microsoft SQL Server – 1433
+ MySQL – 3306
+ Oracle – 1521
+ PostgreSQL – 5432

要连接到数据库实例，请使用数据库引擎的任何客户端。例如，您可以使用 mysql 实用程序连接到 MariaDB 或 MySQL 数据库实例。您可以使用 Microsoft SQL Server Management Studio 连接到 SQL Server 数据库实例。您可以使用 Oracle SQL Developer 连接到 Oracle 数据库实例。类似地，可以使用 psql 命令行实用程序连接到 PostgreSQL 数据库实例。

要查找数据库实例的连接信息，请使用 AWS 管理控制台。还可以使用 AWS Command Line Interface（AWS CLI）[describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令或 RDS API [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 操作。

## 控制台
<a name="CHAP_CommonTasks.Connect.EndpointAndPort.Console"></a>

**在 AWS 管理控制台 中查找数据库实例的连接信息**

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

1. 在导航窗格中，选择 **数据库** 以显示数据库实例的列表。

1. 选择数据库实例的名称以显示其详细信息。

1. 在**连接和安全性**选项卡上，复制端点。另请注意端口号。您需要端点和端口号才能连接到数据库实例。  
![\[数据库实例的端点和端口\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/endpoint-port.png)

1. 如果需要查找主用户名，请选择 **Configuration (配置)** 选项卡并查看 **Master username (主用户名)** 值。

## AWS CLI
<a name="CHAP_CommonTasks.Connect.EndpointAndPort.CLI"></a>

要使用 AWS CLI 查找数据库实例的连接信息，请调用 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令。在调用中，查询数据库实例 ID、端点、端口和主用户名。

对于 Linux、macOS 或 Unix：

```
aws rds describe-db-instances \
  --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"
```

对于 Windows：

```
aws rds describe-db-instances ^
  --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"
```

您的输出应类似于以下内容。

```
[
    [
        "mydb",
        "mydb.123456789012.us-east-1.rds.amazonaws.com",
        3306,
        "admin"
    ],
    [
        "myoracledb",
        "myoracledb.123456789012.us-east-1.rds.amazonaws.com",
        1521,
        "dbadmin"
    ],
    [
        "mypostgresqldb",
        "mypostgresqldb.123456789012.us-east-1.rds.amazonaws.com",
        5432,
        "postgresadmin"
    ]
]
```

## RDS API
<a name="CHAP_CommonTasks.Connect.EndpointAndPort.API"></a>

要使用 Amazon RDS API 查找数据库实例的连接信息，请调用 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 操作。在输出中，找到端点地址、端点端口和主用户名的值。

# 在 VPC 中访问数据库实例的方案
<a name="CHAP_CommonTasks.Connect.ScenariosForAccess"></a>

利用 Amazon Virtual Private Cloud (Amazon VPC)，您可以在 Virtual Private Cloud (VPC) 中启动AWS资源，如 Amazon RDS 数据库实例。使用 Amazon VPC 时，您的虚拟联网环境完全由您控制。您可以选择自己的 IP 地址范围、创建子网以及配置路由和访问控制列表。

VPC 安全组控制 VPC 内的数据库实例的访问权限。每个 VPC 安全组规则都允许特定的源访问 VPC 中与此 VPC 安全组关联的数据库实例。源可以是一个地址范围 (例如，203.0.113.0/24) 或另一个 VPC 安全组。指定作为源的 VPC 安全组后，就可以允许从使用此源 VPC 安全组的所有实例 (通常为应用程序服务器) 中传入流量。

在尝试连接到您的数据库实例之前，请为您的使用案例配置 VPC。以下是在 VPC 中访问数据库实例的常见方案：
+ **VPC 中的数据库实例被同一 VPC 中的 Amazon EC2 实例访问** – 数据库实例在 VPC 中的常见用途是与在同一 VPC 中的 EC2 实例中运行的应用程序服务器共享数据。EC2 实例可能会使用与数据库实例交互的应用程序运行 Web 服务器。
+ **不同 VPC 中的 EC2 实例访问 VPC 中的数据库实例** – 在某些情况下，您的数据库实例与用于访问该实例的 EC2 实例位于不同的 VPC 中。如果是这样，您可以使用 VPC 对等连接访问该数据库实例。
+ **客户端应用程序通过互联网访问 VPC 中的数据库实例** – 要通过互联网从客户端应用程序访问 VPC 中的数据库实例，您可配置包含一个公有子网的 VPC。还要配置一个互联网网关以实现通过互联网通信。

  要从 VPC 外部连接到数据库实例，该数据库实例必须可公开访问。此外，必须使用数据库实例安全组的入站规则授予访问权限，并且必须满足其他要求。有关更多信息，请参阅 [无法连接到 Amazon RDS 数据库实例](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)。
+ **私有网络访问的 VPC 中的数据库实例** - 如果您的数据库实例不可公开访问，则可以使用以下选项之一从私有网络访问它：
  + AWS Site-to-Site VPN 连接
  + Direct Connect 连接
  + AWS Client VPN 连接

有关更多信息，请参阅 [在 VPC 中访问数据库实例的场景](USER_VPC.Scenarios.md)。

## 使用 AWS 驱动程序连接到数据库实例
<a name="RDS.Connecting.Drivers"></a>

借助 AWS 驱动程序套件，可显著缩短切换和故障转移时间，并支持使用 AWS Secrets Manager、AWS Identity and Access Management（IAM）和联合身份进行身份验证。AWS 驱动程序依靠监控数据库实例状态和了解实例拓扑，来确定新的主实例。这种方法将切换和故障转移时间缩短到几秒钟，而开源驱动程序的切换和故障转移时间则为几十秒。

下表列出了每个驱动程序支持的功能。随着新服务功能的推出，使用 AWS 驱动程序套件可为这些服务功能提供内置支持。


| 功能 | [AWS JDBC 驱动程序](https://github.com/awslabs/aws-advanced-jdbc-wrapper) | [AWS Python 驱动程序](https://github.com/awslabs/aws-advanced-python-wrapper) | [适用于 MySQL 的 AWS ODBC 驱动程序](https://github.com/aws/aws-mysql-odbc) | 
| --- | --- | --- | --- | 
| 失效转移支持 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheFailoverPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheFailoverPlugin.md)\$1 | [是](https://github.com/aws/aws-mysql-odbc/blob/main/docs/using-the-aws-driver/UsingTheAwsDriver.md#failover-process)\$1 | 
| 增强了失效转移监控功能 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheHostMonitoringPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheHostMonitoringPlugin.md)\$1 | [是](https://github.com/aws/aws-mysql-odbc/blob/main/docs/using-the-aws-driver/HostMonitoring.md#enhanced-failure-monitoring)\$1 | 
| 读/写分离 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheReadWriteSplittingPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheReadWriteSplittingPlugin.md)\$1 | 否 | 
| 驱动程序元数据连接 | [可以](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheDriverMetadataConnectionPlugin.md)。 | 不适用 | 不适用 | 
| 遥测 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/Telemetry.md) | [是](https://github.com/aws/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/Telemetry.md)\$1 | 否 | 
| Secrets Manager | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheAwsSecretsManagerPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheAwsSecretsManagerPlugin.md)\$1 | [是](https://github.com/aws/aws-mysql-odbc/blob/main/docs/using-the-aws-driver/UsingTheAwsDriver.md#secrets-manager-authentication)\$1 | 
| IAM 身份验证 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheIamAuthenticationPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheIamAuthenticationPlugin.md)\$1 | [是](https://github.com/aws/aws-mysql-odbc/blob/main/docs/using-the-aws-driver/UsingTheAwsDriver.md#iam-authentication)\$1 | 
| 联合身份验证（AD FS） | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheFederatedAuthPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheFederatedAuthenticationPlugin.md)\$1 | 否 | 
| 联合身份（Okta） | [可以](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheFederatedAuthPlugin.md)。 | 否 | 否 | 
| 多可用区数据库集群 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/SupportForRDSMultiAzDBCluster.md) | [是](https://github.com/aws/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/SupportForRDSMultiAzDBCluster.md)\$1 | 否 | 

有关 AWS 驱动程序的更多信息，请参阅 [RDS for MariaDB](MariaDB.Connecting.Drivers.md#MariaDB.Connecting.JDBCDriver)、[RDS for MySQL](MySQL.Connecting.Drivers.md#MySQL.Connecting.JDBCDriver) 或 [RDS for PostgreSQL](PostgreSQL.Connecting.JDBCDriver.md) 数据库实例的相应语言驱动程序。

**注意**  
RDS for MariaDB 支持的唯一功能是使用 AWS Secrets Manager、AWS Identity and Access Management（IAM）和联合身份进行身份验证。

## 连接到运行特定数据库引擎的数据库实例
<a name="CHAP_CommonTasks.Connect.DBEngine"></a>

要了解如何连接到运行特定数据库引擎的数据库实例，请按照数据库引擎的说明操作：
+ [RDS for Db2](USER_ConnectToDb2DBInstance.md)
+ [RDS for MariaDB](USER_ConnectToMariaDBInstance.md)
+ [RDS for SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md)
+ [RDS for MySQL](USER_ConnectToInstance.md)
+ [RDS for Oracle](USER_ConnectToOracleInstance.md)
+ [RDS for PostgreSQL](USER_ConnectToPostgreSQLInstance.md)

## 使用 RDS Proxy 管理连接
<a name="CHAP_CommonTasks.Connect.RDSProxy"></a>

还可以使用 Amazon RDS 代理管理与 RDS for MariaDB、RDS for Microsoft SQL Server、RDS for MySQL 和 RDS for PostgreSQL 数据库实例的连接。RDS Proxy 允许应用程序池化和共享数据库连接，以提高可扩展性。有关更多信息，请参阅 [Amazon RDS 代理](rds-proxy.md)。

## 数据库身份验证选项
<a name="CHAP_CommonTasks.Connect.DatabaseAuthentication"></a>

Amazon RDS 支持以下对数据库用户进行身份验证的方法：
+ **密码身份验证** – 数据库实例将执行用户账户的所有管理。您可以使用 SQL 语句创建用户并指定密码。您可以使用的 SQL 语句取决于数据库引擎。
+ **AWS Identity and Access Management（IAM）数据库身份验证** – 您在连接到数据库实例时无需使用密码。而是使用身份验证令牌。
+ **Kerberos 身份验证** – 使用 Kerberos 和 Microsoft Active Directory 对数据库用户进行外部身份验证。Kerberos 是一种网络身份验证协议，它使用票证和对称密钥加密，而不再需要通过网络传输密码。Kerberos 已内置到 Active Directory 中，用于在网络资源（如数据库）中对用户进行身份验证。

IAM 数据库身份验证和 Kerberos 身份验证仅适用于特定的数据库引擎和版本。

有关更多信息，请参阅“[Amazon RDS 的数据库身份验证](database-authentication.md)”。

## 加密连接
<a name="CHAP_CommonTasks.Connect.EncryptedConnections"></a>

您可以使用应用程序中的安全套接字层 (SSL) 或传输层安全 (TLS) 来加密与数据库实例的连接。每个数据库引擎都有自己的用于实施 SSL/TLS 的过程。有关更多信息，请参阅 [使用 SSL/TLS 加密与数据库实例或集群的连接](UsingWithRDS.SSL.md)。

# 使用选项组
<a name="USER_WorkingWithOptionGroups"></a>

一些数据库引擎提供更易于管理数据和数据库的其他功能，并为您的数据库提供更多安全保护。Amazon RDS 利用选项组启用和配置这些功能。通过*选项组*，可以指定各种名为选项的功能，它们是专为特定的 Amazon RDS 数据库实例提供的。选项可能具有指定该选项工作方式的设置。当您将数据库实例与选项组相关联时，就会在数据库实例上启用指定的选项和选项设置。

 Amazon RDS 支持以下数据库引擎选项：


****  

| 数据库引擎 | 相关文档 | 
| --- | --- | 
|  `Db2`  |  [RDS for Db2 数据库实例选项](Db2.Options.md)  | 
|  `MariaDB`  |  [适用于 MariaDB 数据库引擎的选项](Appendix.MariaDB.Options.md)  | 
|  `Microsoft SQL Server`  |  [适用于 Microsoft SQL Server 数据库引擎的选项](Appendix.SQLServer.Options.md)  | 
|  `MySQL`  |  [适用于 MySQL 数据库实例的选项](Appendix.MySQL.Options.md)  | 
|  `Oracle`  |  [向 Oracle 数据库实例添加选项](Appendix.Oracle.Options.md)  | 
|  `PostgreSQL`  |  PostgreSQL 不使用选项和选项组。PostgreSQL 使用扩展和模块来提供其他功能。有关更多信息，请参阅“[支持的 PostgreSQL 扩展版本](PostgreSQL.Concepts.General.FeatureSupport.Extensions.md)”。  | 

## 选项组概述
<a name="Overview.OptionGroups"></a>

Amazon RDS 为每个新数据库实例提供空的默认选项组。您无法修改或删除此原定设置选项组，但可以修改您创建的通过原定设置选项组派生其设置的任何新选项组。要将选项应用于数据库实例，您必须执行以下操作：

1. 创建新的选项组，或者复制或修改现有选项组。

1. 向选项组中添加一个或多个选项。

1. 将选项组与数据库实例相关联。

   要将选项组与数据库实例关联，请修改数据库实例。有关更多信息，请参阅“[修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)”。

数据库实例和数据库快照可与选项组相关联。有些情况下，您可能从数据库快照还原或为数据库实例执行时间点还原。在这些情况下，与数据库快照或数据库实例关联的选项组默认与还原的数据库实例相关联。您可以将不同的选项组与还原的数据库实例相关联。但是，新选项组必须包含原始选项组中包含的所有持久性或永久性选项。持久性和永久性选项的说明如下。

选项需要额外的内存才能在数据库实例上运行。因此，您可能需要根据数据库实例当前的使用情况启动更大的实例来使用这些选项。例如，Oracle Enterprise Manager Database Control 使用约 300 MB 的 RAM。如果为小数据库实例启用该选项，则可能会遇到性能问题或内存不足错误。

### 持久性和永久性选项
<a name="Overview.OptionGroups.Permanent"></a>

将两种选项 (持久性和永久性) 添加到选项组时，这两种选项需要考虑一些特殊的注意事项。

如果数据库实例与选项组关联，持久性选项则无法从该选项组中删除。持久性选项的一个示例是 Microsoft SQL Server 透明数据加密 (TDE) 的 TDE 选项。您必须先将所有数据库实例与该选项组取消关联，然后才能从选项组删除持久性选项。有些情况下，您可能从数据库快照还原或执行时间点还原。在这些情况下，如果与该数据库快照关联的选项组包含持久性选项，那么您只能将还原的数据库实例与该选项组相关联。

永久性选项（如适用于 Oracle 高级安全 TDE 的 TDE 选项）绝不能从选项组中删除。您可以更改使用永久性选项的数据库实例的选项组。但是，与数据库实例关联的选项组必须包括相同的永久性选项。有些情况下，您可能从数据库快照还原或执行时间点还原。在这些情况下，如果与该数据库快照关联的选项组包含永久性选项，那么您只能将还原的数据库实例与具有该永久性选项的选项组相关联。

对于 Oracle 数据库实例，您可以复制具有选项 `Timezone` 和/或 `OLS` 的共享数据库快照。为此，在复制数据库快照时，指定一个包含这些选项的目标选项组。OLS 选项仅对于运行 Oracle 12.2 或更高版本的 Oracle 数据库实例具有永久性和持久性。有关这些选项的更多信息，请参阅 [Oracle 时区](Appendix.Oracle.Options.Timezone.md) 和 [Oracle Label Security](Oracle.Options.OLS.md)。

### VPC 注意事项
<a name="Overview.OptionGroups.Platform"></a>

与该数据库实例关联的选项组会链接到该数据库实例的 VPC。这意味着，如果您尝试将实例还原到不同的 VPC，则无法使用为该数据库实例分配的选项组。如果您将数据库实例还原到不同的 VPC，可以执行以下操作之一：
+ 将默认选项组分配到数据库实例。
+ 分配关联到该 VPC 的选项组。
+ 创建新选项组并将其分配到数据库实例。

对于持久性或永久性选项（如 Oracle TDE），您必须创建新的选项组。在将数据库实例还原到不同的 VPC 中时，此选项组必须包括持久或永久选项。

选项设置可控制选项的行为。例如，Oracle 高级安全选项 `NATIVE_NETWORK_ENCRYPTION` 包含可用于为数据库实例的传入和传出网络流量指定加密算法的设置。部分选项设置已针对与 Amazon RDS 配合使用而优化，并且不能更改。

### 互斥选项
<a name="Overview.OptionGroups.Exclusive"></a>

一些选项是互斥的。您可使用其中一个选项，而不能同时使用两个选项。以下选项是互斥的：
+ [Oracle Enterprise Manager Database Express](Appendix.Oracle.Options.OEM_DBControl.md)、 和 [适用于 Enterprise Manager Cloud Control 的 Oracle Management Agent](Oracle.Options.OEMAgent.md) 
+ [Oracle 本机网络加密](Appendix.Oracle.Options.NetworkEncryption.md)、 和 [Oracle 安全套接字层](Appendix.Oracle.Options.SSL.md) 

## 创建选项组
<a name="USER_WorkingWithOptionGroups.Create"></a>

您可以创建一个新的选项组，该选项组从原定设置选项组派生其设置。然后，向新的选项组中添加一个或多个选项。或者，如果您已经有一个现有选项组，则可复制带有您已添加到新选项组的所有选项的选项组。有关更多信息，请参阅 [复制选项组](#USER_WorkingWithOptionGroups.Copy)。

创建新选项组后，新选项组中没有选项。要了解如何将选项添加到选项组，请参阅 [将选项添加到选项组](#USER_WorkingWithOptionGroups.AddOption)。添加了您所需的选项后，即可将选项组与数据库实例相关联。这样，就可以在数据库实例上使用这些选项了。有关将选项组与数据库实例相关联的信息，请参阅 [使用选项组](#USER_WorkingWithOptionGroups) 中适用于您的引擎的文档。

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

 一种创建选项组的方法是使用 AWS 管理控制台。

**通过使用控制台创建新选项组**

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

1. 在导航窗格中，选择**选项组**。

1. 选择**创建组**。

1. 在**创建选项组**窗口中，执行以下操作：

   1. 对于 **Name (名称)**，输入选项组的名称，在 AWS 账户内该名称需具有唯一性。此名称只能包含字母、数字和连字符。

   1. 对于**说明**，输入选项组的简要说明。此说明用于显示说明。

   1. 对于**引擎**，选择需要的数据库引擎。

   1. 对于**主引擎版本**，请选择所需的数据库引擎主版本。

1. 要继续，请选择**创建**。要取消操作，请选择**取消**。

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

要创建选项组，请使用带下列必需参数的 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/create-option-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-option-group.html) 命令。
+ `--option-group-name`
+ `--engine-name`
+ `--major-engine-version`
+ `--option-group-description`

**Example**  
下例创建了名为 `testoptiongroup` 的选项组，它是与 Oracle 企业版数据库引擎相关联的选项组。引号中的内容是描述。  
对于 Linux、macOS 或 Unix：  

```
       
aws rds create-option-group \
    --option-group-name testoptiongroup \
    --engine-name oracle-ee \
    --major-engine-version 19 \
    --option-group-description "Test option group for Oracle Database 19c EE"
```
对于 Windows：  

```
aws rds create-option-group ^
    --option-group-name testoptiongroup ^
    --engine-name oracle-ee ^-
    --major-engine-version 19 ^
    --option-group-description "Test option group for Oracle Database 19c EE"
```

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

要创建选项组，请调用 Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateOptionGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateOptionGroup.html) 操作。包括以下参数：
+ `OptionGroupName`
+ `EngineName`
+ `MajorEngineVersion`
+ `OptionGroupDescription`

## 复制选项组
<a name="USER_WorkingWithOptionGroups.Copy"></a>

您可以使用 AWS CLI 或 Amazon RDS API 复制选项组。复制选项组可能很方便。例如，当您具有现有选项组并且想在新的选项组中包含其大部分自定义参数和值时。您还可以为用于生产的选项组创建副本，然后修改此副本以测试其他选项设置。

**注意**  
目前，无法将选项组复制到其他 AWS 区域。

### AWS CLI
<a name="USER_WorkingWithOptionGroups.Copy.CLI"></a>

要复制选项组，请使用 AWS CLI [copy-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-option-group.html) 命令。包括以下必需选项：
+ `--source-option-group-identifier`
+ `--target-option-group-identifier`
+ `--target-option-group-description`

**Example**  
以下示例创建一个名为 `new-option-group` 的选项组，它是选项组 `my-option-group` 的本地副本。  
对于 Linux、macOS 或 Unix：  

```
aws rds copy-option-group \
    --source-option-group-identifier my-option-group \
    --target-option-group-identifier new-option-group \
    --target-option-group-description "My new option group"
```
对于 Windows：  

```
aws rds copy-option-group ^
    --source-option-group-identifier my-option-group ^
    --target-option-group-identifier new-option-group ^
    --target-option-group-description "My new option group"
```

### RDS API
<a name="USER_WorkingWithOptionGroups.Copy.API"></a>

要复制选项组，请调用 Amazon RDS API [CopyOptionGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyOptionGroup.html) 操作。包括以下必需参数。
+ `SourceOptionGroupIdentifier`
+ `TargetOptionGroupIdentifier`
+ `TargetOptionGroupDescription`

## 将选项添加到选项组
<a name="USER_WorkingWithOptionGroups.AddOption"></a>

您可将选项添加到现有选项组。添加了您所需的选项后，即可将选项组与数据库实例相关联，以便在数据库实例上使用其中的选项。有关将选项组与数据库实例相关联的信息，请参阅 [使用选项组](#USER_WorkingWithOptionGroups) 中列出的适用于特定数据库引擎的文档。

在以下两种情况下，必须立即应用选项组更改：
+ 当您添加用于添加或更新端口值的选项时，如 `OEM` 选项。
+ 当您添加或删除某个具有含端口值选项的选项组时。

在这些情况下，请选择控制台中的 **Apply Immediately (立即应用)** 选项。或者，您可以在使用 AWS CLI 时加入 `--apply-immediately` 选项，或在使用 Amazon RDS API 时将 `ApplyImmediately` 参数设置为 `true`。可立即应用不包括端口值的选项，也可在数据库实例的下一维护时段内应用此类选项。

**注意**  
如果您将安全组指定为选项组中某个选项的值，则可以通过修改选项组来管理该安全组。您无法通过修改数据库实例来更改或删除此安全组。此外，安全组不会显示在 AWS 管理控制台 的数据库实例详细信息中，也不会显示在 AWS CLI 命令 `describe-db-instances` 的输出中。

### 控制台
<a name="USER_WorkingWithOptionGroups.AddOption.Console"></a>

您可以使用 AWS 管理控制台将选项添加到选项组。

**通过使用控制台将选项添加到选项组**

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

1. 在导航窗格中，选择**选项组**。

1. 选择要修改的选项组，然后选择 **Add Option (添加选项)**。  
![\[控制台选项组\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/optiongroup-addoption1.png)

1. 在**添加选项**窗口中，执行以下操作：

   1. 选择要添加的选项。您可能需要根据您选择的选项提供其他值。例如，当您选择 `OEM` 选项时，必须同时输入端口值，并指定安全组。

   1. 要在添加选项后在所有关联数据库实例上启用该选项，对于**立即应用**，请选择**是**。如果选择**否**（默认），则会在下一个维护时段为每个关联数据库实例启用此选项。  
![\[控制台选项组\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/optiongroup-addoption2.png)

1. 根据需要设置完毕后，选择 **Add Option (添加选项)**。

### AWS CLI
<a name="USER_WorkingWithOptionGroups.AddOptions.CLI"></a>

要将选项添加到选项组，请带所需选项运行 AWS CLI[add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) 命令。要立即在所有关联数据库实例上启用新选项，请加入 `--apply-immediately` 参数。默认情况下，会在每个关联数据库实例的下一维护时段启用此选项。包括以下必需参数：
+ `--option-group-name`

**Example**  
下例会立即将带有 `America/Los_Angeles` 设置的 `Timezone` 选项添加到名为 `testoptiongroup` 的选项组，并立即启用它。  
对于 Linux、macOS 或 Unix：  

```
aws rds add-option-to-option-group \
    --option-group-name testoptiongroup \
    --options "OptionName=Timezone,OptionSettings=[{Name=TIME_ZONE,Value=America/Los_Angeles}]" \
    --apply-immediately
```
对于 Windows：  

```
aws rds add-option-to-option-group ^
    --option-group-name testoptiongroup ^
    --options "OptionName=Timezone,OptionSettings=[{Name=TIME_ZONE,Value=America/Los_Angeles}]" ^
    --apply-immediately
```
命令输出类似于以下内容：  

```
...{
       "OptionName": "Timezone",
       "OptionDescription": "Change time zone",
       "Persistent": true,
       "Permanent": false,
       "OptionSettings": [
           {
               "Name": "TIME_ZONE",
               "Value": "America/Los_Angeles",
               "DefaultValue": "UTC",
               "Description": "Specifies the timezone the user wants to change the system time to",
               "ApplyType": "DYNAMIC",
               "DataType": "STRING",
               "AllowedValues": "Africa/Cairo,...",
               "IsModifiable": true,
               "IsCollection": false
           }
       ],
       "DBSecurityGroupMemberships": [],
       "VpcSecurityGroupMemberships": []
   }...
```

**Example**  
以下示例将 Oracle OEM 选项添加到选项组。其中还指定了自定义端口和一对 Amazon EC2 VPC 安全组来用于该端口。  
对于 Linux、macOS 或 Unix：  

```
aws rds add-option-to-option-group \
    --option-group-name testoptiongroup \
    --options OptionName=OEM,Port=5500,VpcSecurityGroupMemberships="sg-test1,sg-test2" \
    --apply-immediately
```
对于 Windows：  

```
aws rds add-option-to-option-group ^
    --option-group-name testoptiongroup ^
    --options OptionName=OEM,Port=5500,VpcSecurityGroupMemberships="sg-test1,sg-test2" ^
    --apply-immediately
```
命令输出类似于以下内容：  

```
OPTIONGROUP  False  oracle-ee  19 arn:aws:rds:us-east-1:1234567890:og:testoptiongroup   Test Option Group  testoptiongroup vpc-test 
OPTIONS Oracle 12c EM Express   OEM     False   False   5500
VPCSECURITYGROUPMEMBERSHIPS     active  sg-test1
VPCSECURITYGROUPMEMBERSHIPS     active  sg-test2
```

**Example**  
下例将 Oracle 选项 `NATIVE_NETWORK_ENCRYPTION` 添加到选项组，然后指定该选项的设置。如果未指定选项设置，则使用默认值。  
对于 Linux、macOS 或 Unix：  

```
aws rds add-option-to-option-group \
    --option-group-name testoptiongroup \
    --options '[{"OptionSettings":[{"Name":"SQLNET.ENCRYPTION_SERVER","Value":"REQUIRED"},{"Name":"SQLNET.ENCRYPTION_TYPES_SERVER","Value":"AES256,AES192,DES"}],"OptionName":"NATIVE_NETWORK_ENCRYPTION"}]' \
    --apply-immediately
```
对于 Windows：  

```
aws rds add-option-to-option-group ^
    --option-group-name testoptiongroup ^
    --options "OptionSettings"=[{"Name"="SQLNET.ENCRYPTION_SERVER","Value"="REQUIRED"},{"Name"="SQLNET.ENCRYPTION_TYPES_SERVER","Value"="AES256\,AES192\,DES"}],"OptionName"="NATIVE_NETWORK_ENCRYPTION" ^
    --apply-immediately
```
命令输出类似于以下内容：  

```
...{
    "OptionName": "NATIVE_NETWORK_ENCRYPTION",
    "OptionDescription": "Native Network Encryption",
    "Persistent": false,
    "Permanent": false,
    "OptionSettings": [
        {
            "Name": "SQLNET.ENCRYPTION_TYPES_SERVER",
             "Value": "AES256,AES192,DES",
            "DefaultValue": "RC4_256,AES256,AES192,3DES168,RC4_128,AES128,3DES112,RC4_56,DES,RC4_40,DES40",
            "Description": "Specifies list of encryption algorithms in order of intended use",
            "ApplyType": "STATIC",
            "DataType": "STRING",
            "AllowedValues": "RC4_256,AES256,AES192,3DES168,RC4_128,AES128,3DES112,RC4_56,DES,RC4_40,DES40",
            "IsModifiable": true,
            "IsCollection": true
        },
        {
            "Name": "SQLNET.ENCRYPTION_SERVER",
            "Value": "REQUIRED",
            "DefaultValue": "REQUESTED",
            "Description": "Specifies the desired encryption behavior",
            "ApplyType": "STATIC",
            "DataType": "STRING",
            "AllowedValues": "ACCEPTED,REJECTED,REQUESTED,REQUIRED",
            "IsModifiable": true,
            "IsCollection": false
        },...
```

### RDS API
<a name="USER_WorkingWithOptionGroups.AddOptions.API"></a>

要使用 Amazon RDS API 将选项添加到选项组，请使用所要添加的选项调用 [ModifyOptionGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyOptionGroup.html) 操作。要立即在所有关联数据库实例上启用新选项，请加入 `ApplyImmediately` 参数并将其设置为 `true`。默认情况下，会在每个关联数据库实例的下一维护时段启用此选项。包括以下必需参数：
+ `OptionGroupName`

## 列出选项组的选项和选项设置
<a name="USER_WorkingWithOptionGroups.ListOption"></a>

 您可以列出选项组的所有选项和选项设置。

### 控制台
<a name="USER_WorkingWithOptionGroups.ListOption.Console"></a>

您可以使用 AWS 管理控制台列出选项组的所有选项和选项设置。

**列出选项组的选项和选项设置**

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

1. 在导航窗格中，选择**选项组**。

1. 选择选项组的名称可以显示其详细信息。此时将列出选项组中的选项和选项设置。

### AWS CLI
<a name="USER_WorkingWithOptionGroups.ListOption.CLI"></a>

要列出选项组的选项和选项设置，请使用 AWS CLI[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-option-groups.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-option-groups.html) 命令。指定您要查看其选项和设置的选项组的名称。如果不指定选项组名称，则会显示所有选项组的说明。

**Example**  
以下示例列出了所有选项组的选项和选项设置。  

```
aws rds describe-option-groups
```

**Example**  
以下示例列出名为 `testoptiongroup` 的选项组的选项和选项设置。  

```
aws rds describe-option-groups --option-group-name testoptiongroup
```

### RDS API
<a name="USER_WorkingWithOptionGroups.ListOption.API"></a>

要列出选项组的选项和选项设置，请使用 Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeOptionGroups.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeOptionGroups.html) 操作。指定您要查看其选项和设置的选项组的名称。如果不指定选项组名称，则会显示所有选项组的说明。

## 修改选项设置
<a name="USER_WorkingWithOptionGroups.ModifyOption"></a>

添加具有可修改的选项设置的选项后，可随时修改这些设置。如果更改选项组的选项或选项设置，这些更改将应用到与此选项组相关联的所有数据库实例。有关哪些设置对各种选项可用的详细信息，请参阅 [使用选项组](#USER_WorkingWithOptionGroups) 中适用于您的引擎的文档。

在以下两种情况下，必须立即应用选项组更改：
+ 当您添加用于添加或更新端口值的选项时，如 `OEM` 选项。
+ 当您添加或删除某个具有含端口值选项的选项组时。

在这些情况下，请选择控制台中的 **Apply Immediately (立即应用)** 选项。或者，您可以在使用 `--apply-immediately` 时加入 AWS CLI 选项，或在使用 RDS API 时将 `ApplyImmediately` 参数设置为 `true`。可立即应用不包括端口值的选项，也可在数据库实例的下一维护时段内应用此类选项。

**注意**  
如果您将安全组指定为选项组中某个选项的值，则可以通过修改选项组来管理该安全组。您无法通过修改数据库实例来更改或删除此安全组。此外，安全组不会显示在 AWS 管理控制台 的数据库实例详细信息中，也不会显示在 AWS CLI 命令 `describe-db-instances` 的输出中。

### 控制台
<a name="USER_WorkingWithOptionGroups.ModifyOption.Console"></a>

您可以使用 AWS 管理控制台来修改选项设置。

**通过使用控制台来修改选项设置**

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

1. 在导航窗格中，选择**选项组**。

1. 选择要修改选项的选项组，然后选择**修改选项**。

1. 在**修改选项**窗口中，从**安装的选项**中选择要修改设置的选项。执行所需的更改。

1. 要在添加选项后启用该选项，对于**立即应用**，请选择**是**。如果选择**否**（默认），则会在下一个维护时段为每个关联数据库实例启用此选项。

1. 根据需要设置完毕后，选择**修改选项**。

### AWS CLI
<a name="USER_WorkingWithOptionGroups.ModifyOption.CLI"></a>

要修改选项设置，请使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) 命令处理要修改的选项组和选项。默认情况下，会在每个关联数据库实例的下一维护时段启用此选项。要立即将更改应用到所有关联数据库实例，请包含 `--apply-immediately` 参数。要修改选项设置，请使用 `--settings` 参数。

**Example**  
下例会修改在名为 `testoptiongroup` 的选项组中 Oracle Enterprise Manager Database Control (OEM) 使用的端口，并立即应用此更改。  
对于 Linux、macOS 或 Unix：  

```
aws rds add-option-to-option-group \
    --option-group-name testoptiongroup \
    --options OptionName=OEM,Port=5432,DBSecurityGroupMemberships=default \
    --apply-immediately
```
对于 Windows：  

```
aws rds add-option-to-option-group ^
    --option-group-name testoptiongroup ^
    --options OptionName=OEM,Port=5432,DBSecurityGroupMemberships=default ^
    --apply-immediately
```
命令输出类似于以下内容：  

```
OPTIONGROUP   False  oracle-ee  19  arn:aws:rds:us-east-1:1234567890:og:testoptiongroup   Test Option Group    testoptiongroup
OPTIONS Oracle 12c EM Express   OEM     False   False   5432
DBSECURITYGROUPMEMBERSHIPS   default  authorized
```

**Example**  
下例修改 Oracle 选项 `NATIVE_NETWORK_ENCRYPTION`，然后更改该选项的设置。  
对于 Linux、macOS 或 Unix：  

```
aws rds add-option-to-option-group \
    --option-group-name testoptiongroup \
    --options '[{"OptionSettings":[{"Name":"SQLNET.ENCRYPTION_SERVER","Value":"REQUIRED"},{"Name":"SQLNET.ENCRYPTION_TYPES_SERVER","Value":"AES256,AES192,DES,RC4_256"}],"OptionName":"NATIVE_NETWORK_ENCRYPTION"}]' \
    --apply-immediately
```
对于 Windows：  

```
aws rds add-option-to-option-group ^
    --option-group-name testoptiongroup ^
    --options "OptionSettings"=[{"Name"="SQLNET.ENCRYPTION_SERVER","Value"="REQUIRED"},{"Name"="SQLNET.ENCRYPTION_TYPES_SERVER","Value"="AES256\,AES192\,DES\,RC4_256"}],"OptionName"="NATIVE_NETWORK_ENCRYPTION" ^
    --apply-immediately
```
命令输出类似于以下内容：  

```
OPTIONGROUP   False  oracle-ee  19  arn:aws:rds:us-east-1:1234567890:og:testoptiongroup   Test Option Group    testoptiongroup                
OPTIONS Oracle Advanced Security - Native Network Encryption    NATIVE_NETWORK_ENCRYPTION       False   False
OPTIONSETTINGS  RC4_256,AES256,AES192,3DES168,RC4_128,AES128,3DES112,RC4_56,DES,RC4_40,DES40 STATIC  STRING  
   RC4_256,AES256,AES192,3DES168,RC4_128,AES128,3DES112,RC4_56,DES,RC4_40,DES40    Specifies list of encryption algorithms in order of intended use        
   True     True    SQLNET.ENCRYPTION_TYPES_SERVER  AES256,AES192,DES,RC4_256
OPTIONSETTINGS  ACCEPTED,REJECTED,REQUESTED,REQUIRED    STATIC  STRING  REQUESTED   Specifies the desired encryption behavior  False   True  SQLNET.ENCRYPTION_SERVER    REQUIRED
OPTIONSETTINGS  SHA1,MD5   STATIC  STRING  SHA1,MD5    Specifies list of checksumming algorithms in order of intended use      True    True    SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER  SHA1,MD5
OPTIONSETTINGS  ACCEPTED,REJECTED,REQUESTED,REQUIRED  STATIC  STRING  REQUESTED     Specifies the desired data integrity behavior   False   True    SQLNET.CRYPTO_CHECKSUM_SERVER  REQUESTED
```

### RDS API
<a name="USER_WorkingWithOptionGroups.ModifyOption.API"></a>

要修改选项设置，请使用 Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyOptionGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyOptionGroup.html) 命令处理要修改的选项组和选项。默认情况下，会在每个关联数据库实例的下一维护时段启用此选项。要立即将更改应用到所有关联数据库实例，请加入 `ApplyImmediately` 参数并将其设置为 `true`。

## 从选项组中删除选项
<a name="USER_WorkingWithOptionGroups.RemoveOption"></a>

有些选项可从选项组中删除，而另一些不可以。在与选项组关联的所有数据库实例未取消关联之前，不能从该选项组中删除持续性选项。永久选项无法从选项组中删除。有关可删除选项的更多信息，请参阅 [使用选项组](#USER_WorkingWithOptionGroups) 中列出的适用于特定引擎的文档。

如果您删除某个选项组的所有选项，Amazon RDS 将不会删除该选项组。与空选项组相关联的数据库实例会继续与之相关联；只是不具有任何活动的选项。或者，要删除数据库实例的所有选项，您可以将数据库实例与默认 (空) 选项组关联。

### 控制台
<a name="USER_WorkingWithOptionGroups.RemoveOption.Console"></a>

您可以使用 AWS 管理控制台删除选项组中的选项。

**通过使用控制台删除选项组中的选项**

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

1. 在导航窗格中，选择**选项组**。

1. 选择要删除选项的选项组，然后选择**删除选项**。

1. 在**删除选项**窗口中，执行以下操作：
   +  选中您要删除的选项对应的复选框。
   + 要使删除在操作后立即生效，对于**立即应用**，请选择**是**。如果选择**否**（默认），则会在下一个维护时段为每个关联数据库实例删除此选项。  
![\[删除选项组\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/optiongroup-removeoption2.png)

1. 根据需要完成所有设置后，选择**是的，删除**。

### AWS CLI
<a name="USER_WorkingWithOptionGroups.RemoveOption.CLI"></a>

要从选项组中删除选项，请在 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/remove-option-from-option-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/remove-option-from-option-group.html) 命令中指定要删除的选项。默认情况下，会在每个关联数据库实例的下一维护时段删除此选项。要立即应用更改，请加入 `--apply-immediately` 参数。

**Example**  
以下示例会从名为 `testoptiongroup` 的选项组中移除 Oracle Enterprise Manager Database Control (OEM) 选项，并立即应用此更改。  
对于 Linux、macOS 或 Unix：  

```
  
aws rds remove-option-from-option-group \
    --option-group-name testoptiongroup \
    --options OEM \
    --apply-immediately
```
对于 Windows：  

```
aws rds remove-option-from-option-group ^
    --option-group-name testoptiongroup ^
    --options OEM ^
    --apply-immediately
```
命令输出类似于以下内容：  

```
OPTIONGROUP    testoptiongroup oracle-ee   19    Test option group
```

### RDS API
<a name="USER_WorkingWithOptionGroups.RemoveOption.API"></a>

要从选项组中删除选项，请使用 Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyOptionGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyOptionGroup.html) 操作。默认情况下，会在每个关联数据库实例的下一维护时段删除此选项。要立即应用更改，请加入 `ApplyImmediately` 参数，并将其设置为 `true`。

包括以下参数：
+ `OptionGroupName`
+ `OptionsToRemove.OptionName`

## 删除选项组
<a name="USER_WorkingWithOptionGroups.Delete"></a>

只有在选项组满足以下条件时，才能删除该选项组：
+ 它未与任何 Amazon RDS 资源关联。选项组可以与数据库实例、手动数据库快照或自动数据库快照关联。
+ 它不是默认选项组。

要识别数据库实例和数据库快照使用的选项组，您可以使用以下 CLI 命令：

```
aws rds describe-db-instances \
    --query 'DBInstances[*].[DBInstanceIdentifier,OptionGroupMemberships[].OptionGroupName]'

aws rds describe-db-snapshots | jq -r '.DBSnapshots[] | "\(.DBInstanceIdentifier),\(.OptionGroupName)"' | sort | uniq
```

如果您尝试删除与 RDS 资源关联的选项组，将返回类似于下面的错误。

```
An error occurred (InvalidOptionGroupStateFault) when calling the DeleteOptionGroup operation: The option group 'optionGroupName' cannot be deleted because it is in use.            
```

**查找与选项组关联的 Amazon RDS 资源**

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

1. 在导航窗格中，选择**选项组**。

1. 选择选项组的名称可以显示其详细信息。

1. 请查看**关联的实例和快照**部分，了解关联的 Amazon RDS 资源。

如果数据库实例已与选项组关联，请修改数据库实例来使用其他选项组。有关更多信息，请参阅 [修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)。

如果手动数据库快照与选项组关联，请修改数据库快照以使用其他选项组。您可以使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-snapshot.html) 命令来执行此操作。

**注意**  
您无法修改自动数据库快照的选项组。

### 控制台
<a name="USER_WorkingWithOptionGroups.Delete.Console"></a>

 一种删除选项组的方法是使用 AWS 管理控制台。

**使用控制台删除选项组**

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

1. 在导航窗格中，选择**选项组**。

1. 选择选项组。

1. 选择 **Delete group (删除组)**。

1. 在确认页面，选择 **Delete (删除)** 删除选项组，或选择 **Cancel (取消)** 取消删除。

### AWS CLI
<a name="USER_WorkingWithOptionGroups.Delete.CLI"></a>

要删除选项组，请使用带下列必需参数的 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/delete-option-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-option-group.html) 命令。
+ `--option-group-name`

**Example**  
以下示例将删除名为 `testoptiongroup` 的选项组。  
对于 Linux、macOS 或 Unix：  

```
       
aws rds delete-option-group \
    --option-group-name testoptiongroup
```
对于 Windows：  

```
aws rds delete-option-group ^
    --option-group-name testoptiongroup
```

### RDS API
<a name="USER_WorkingWithOptionGroups.Delete.API"></a>

要删除选项组，请调用 Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteOptionGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteOptionGroup.html) 操作。包括以下参数：
+ `OptionGroupName`

# Amazon RDS 的参数组
<a name="USER_WorkingWithParamGroups"></a>

*数据库参数*指定数据库的配置方式。例如，数据库参数可以指定要分配给数据库的资源量（如内存）。

您可以通过将数据库实例和多可用区 数据库集群与参数组进行关联来管理数据库配置。Amazon RDS 使用默认设置定义参数组。您还可以使用自定义设置定义您自己的参数组。

**注意**  
某些数据库引擎提供了附加功能，您可以将这些功能作为选项组中的选项添加到数据库中。有关选项组的信息，请参阅[使用选项组](USER_WorkingWithOptionGroups.md)。

**Topics**
+ [参数组概述](parameter-groups-overview.md)
+ [Amazon RDS 数据库实例的数据库参数组](USER_WorkingWithDBInstanceParamGroups.md)
+ [使用多可用区数据库集群的数据库集群参数组](USER_WorkingWithDBClusterParamGroups.md)
+ [比较数据库参数组](USER_WorkingWithParamGroups.Comparing.md)
+ [指定数据库参数](USER_ParamValuesRef.md)

# 参数组概述
<a name="parameter-groups-overview"></a>

*数据库参数组*就像是引擎配置值的容器，这些值应用于一个或多个数据库实例。

*数据库集群参数组*仅适用于多可用区数据库集群。在多可用区数据库集群中，数据库集群参数组中的设置应用于集群中的所有数据库实例。数据库引擎和数据库引擎版本的原定设置数据库参数组用于数据库集群中的每个数据库实例。

**Topics**
+ [原定设置和自定义参数组](#parameter-groups-overview.custom)
+ [静态和动态数据库实例参数](#parameter-groups-overview.db-instance)
+ [静态和动态数据库集群参数](#parameter-groups-overview.maz)
+ [字符集参数](#parameter-groups-overview.char-sets)
+ [支持的参数和参数值](#parameter-groups-overview.supported)

## 原定设置和自定义参数组
<a name="parameter-groups-overview.custom"></a>

如果创建的数据库实例未指定数据库参数组，数据库实例将使用默认的数据库参数组。同样，如果您在创建多可用区 数据库集群时未指定数据库集群参数组，数据库集群将使用默认数据库集群参数组。每个默认参数组包含数据库引擎默认值和 Amazon RDS 系统默认值，具体根据引擎、计算等级及实例的分配存储空间而定。

默认参数组的参数设置无法修改。您可以改而执行以下操作：

1. 创建新参数组。

1. 更改所需参数的设置。并非参数组中的所有数据库引擎参数都可供修改。

1. 修改数据库实例或数据库集群以关联新的参数组。

   将新数据库参数组与数据库实例进行关联时，关联将立即发生。有关修改数据库实例的信息，请参阅。[修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)有关修改多可用区数据库集群的信息，请参阅[修改 Amazon RDS 的多可用区数据库集群](modify-multi-az-db-cluster.md)。
**注意**  
如果您修改了数据库实例以使用自定义参数组，然后启动数据库实例，RDS 会在启动过程中自动重启数据库实例。对于启用了 AlwaysOn 或镜像选项的 RDS for SQL Server 多可用区实例，在启动过程结束后重启实例时，预计会进行失效转移。

仅在重启数据库实例后，RDS 才会在新关联的参数组中应用修改后的静态和动态参数。但是，如果在将数据库参数组与数据库实例关联之后修改数据库参数组中的动态参数，这些更改将立即得到应用，而无需重启。有关更改数据库集群参数组的信息，请参阅。[修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)

如果您更新了数据库参数组内的参数，更改将应用于与该参数组关联的所有数据库实例。同样，如果您更新了多可用区数据库参数组内的参数，更改将应用于与该数据库集群参数组关联的所有 Aurora 数据库集群。

如果您不想从头开始创建参数组，您可以使用 AWS CLI [copy-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-parameter-group.html) 命令或 [copy-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-cluster-parameter-group.html) 命令复制现有的参数组。您可能会发现复制参数组在某些情况下很有用。例如，您可能希望在新的数据库参数组中包含现有数据库参数组的大多数自定义参数和值。

## 静态和动态数据库实例参数
<a name="parameter-groups-overview.db-instance"></a>

数据库实例参数是静态的，也可以是动态的。它们在以下方面有所不同：
+ 更改静态参数并保存数据库参数组时，参数更改将在手动重启关联的数据库实例后生效。对于静态参数，控制台始终将 `pending-reboot` 用于 `ApplyMethod`。
+ 当您更改动态参数时，原定设置情况下，参数更改将立即生效，而无需重启。当您使用 AWS 管理控制台 更改数据库实例参数值时，对于动态参数，它始终使用 `immediate` 作为 `ApplyMethod`。要将参数更改推迟到重启关联的数据库实例之后，请使用 AWS CLI 或 RDS API。将 `ApplyMethod` 设置为 `pending-reboot` 以进行参数更改。
**注意**  
将 `pending-reboot` 与 AWS CLI 中的参数或 RDS for SQL Server 数据库实例上的 RDS API 搭配使用，会产生错误。在 RDS for SQL Server 上使用 `apply-immediately`。

有关使用 AWS CLI 更改参数值的更多信息，请参阅 [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html)。有关使用 RDS API 更改参数值的更多信息，请参阅 [ModifyDBParameterGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBParameterGroup.html)。

如果数据库实例未使用对其关联的数据库参数组所做的最新更改，控制台将针对数据库参数组显示 **pending-reboot**（待重启）状态。此状态不会在下一个维护时段期间导致自动重启。要向该数据库实例应用最新的参数更改，请手动重启数据库实例。

## 静态和动态数据库集群参数
<a name="parameter-groups-overview.maz"></a>

数据库集群参数是静态的，也可以是动态的。它们在以下方面有所不同：
+ 更改静态参数并保存数据库集群参数组时，参数更改将在手动重启关联数据库集群后生效。对于静态参数，控制台始终将 `pending-reboot` 用于 `ApplyMethod`。
+ 当您更改动态参数时，原定设置情况下，参数更改将立即生效，而无需重启。当您使用 AWS 管理控制台 更改数据库集群参数值时，对于动态参数，它始终使用 `immediate` 作为 `ApplyMethod`。要将参数更改推迟到重启关联的数据库集群之后，请使用 AWS CLI 或 RDS API。将 `ApplyMethod` 设置为 `pending-reboot` 以进行参数更改。

有关使用 AWS CLI 更改参数值的更多信息，请参阅 [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html)。有关使用 RDS API 更改参数值的更多信息，请参阅 [ModifyDBClusterParameterGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html)。

## 字符集参数
<a name="parameter-groups-overview.char-sets"></a>

在创建数据库实例或多可用区数据库集群之前，在参数组中设置与数据库的字符集或排序规则相关的任何参数。在其中创建数据库之前也要这样做。这样，您可确保原定设置数据库以及新数据库使用您指定的字符集和排序规则值。如果您更改字符集或排序规则参数，则参数更改不会应用于现有数据库。

对于某些数据库引擎，您可使用 `ALTER DATABASE` 命令更改现有数据库的字符集或排序规则值，例如：

```
ALTER DATABASE database_name CHARACTER SET character_set_name COLLATE collation;
```

有关更改数据库字符集或排序规则值的更多信息，请查阅数据库引擎文档。

## 支持的参数和参数值
<a name="parameter-groups-overview.supported"></a>

要确定数据库引擎支持的参数，请查看数据库实例或数据库集群使用的数据库参数组和数据库集群参数组中的参数。有关更多信息，请参阅[在 Amazon RDS 中查看数据库参数组的参数值](USER_WorkingWithParamGroups.Viewing.md)和[查看数据库集群参数组的参数值](USER_WorkingWithParamGroups.ViewingCluster.md)。

在许可情况下，您可以使用表达式、公式和函数指定整数和布尔参数值。函数可以包含数学对数表达式。但是，并非所有参数都支持对参数值使用表达式、公式和函数。有关更多信息，请参阅 [指定数据库参数](USER_ParamValuesRef.md)。

在参数组内设置参数不恰当可能会产生意外的不利影响，包括性能降低和系统不稳定。修改数据库参数时应始终保持谨慎，且在修改参数组前备份数据。将参数组更改应用于生产数据库实例或数据库集群前，请在测试数据库实例或数据库集群上尝试进行这些参数组设置更改。

# Amazon RDS 数据库实例的数据库参数组
<a name="USER_WorkingWithDBInstanceParamGroups"></a>

数据库实例使用数据库参数组。以下各节介绍配置和管理数据库实例参数组。

**Topics**
+ [在 Amazon RDS 中创建数据库参数组](USER_WorkingWithParamGroups.Creating.md)
+ [在 Amazon RDS 中将数据库参数组与数据库实例关联](USER_WorkingWithParamGroups.Associating.md)
+ [在 Amazon RDS 中修改数据库参数组中的参数](USER_WorkingWithParamGroups.Modifying.md)
+ [在 Amazon RDS 中将数据库参数组中的参数重置为其默认值](USER_WorkingWithParamGroups.Resetting.md)
+ [在 Amazon RDS 中复制数据库参数组](USER_WorkingWithParamGroups.Copying.md)
+ [在 Amazon RDS 中列出数据库参数组](USER_WorkingWithParamGroups.Listing.md)
+ [在 Amazon RDS 中查看数据库参数组的参数值](USER_WorkingWithParamGroups.Viewing.md)
+ [在 Amazon RDS 中删除数据库参数组](USER_WorkingWithParamGroups.Deleting.md)

# 在 Amazon RDS 中创建数据库参数组
<a name="USER_WorkingWithParamGroups.Creating"></a>

您可以使用 AWS 管理控制台、AWS CLI 或 RDS API 创建新数据库参数组。

以下限制适用于数据库参数组名称：
+ 名称必须为 1 到 255 个字母、数字或连字符。

  原定设置参数组名称可以包含句点，例如 `default.mysql8.0`。但是，自定义参数组名称不能包含句点。
+ 第一个字符必须是字母。
+ 名称不能以连字符结束，也不能包含两个连续的连字符。

## 控制台
<a name="USER_WorkingWithParamGroups.Creating.CON"></a>

**创建数据库参数组**

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

1. 在导航窗格中，选择**参数组**。

1. 选择**创建参数组**。

1. 对于**参数组名称**，请输入新数据库参数组的名称。

1. 对于**描述**，请输入对新数据库参数组的描述。

1. 对于**引擎类型**，请选择所需的数据库引擎。

1. 对于**参数组系列**，请选择一个数据库参数组系列。

1. 对于**类型**，如果适用，请选择**数据库参数组**。

1. 选择**创建**。

## AWS CLI
<a name="USER_WorkingWithParamGroups.Creating.CLI"></a>

要创建数据库参数组，请使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html) 命令。以下示例为 8.0 版 MySQL 创建名为 *mydbparametergroup* 的数据库参数组，其说明为*我的新参数组*。

包括以下必需参数：
+ `--db-parameter-group-name`
+ `--db-parameter-group-family`
+ `--description`

要列出所有可用的参数组系列，请使用以下命令：

```
aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily"
```

**注意**  
输出包含重复项。

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

```
aws rds create-db-parameter-group \
    --db-parameter-group-name mydbparametergroup \
    --db-parameter-group-family MySQL8.0 \
    --description "My new parameter group"
```
对于：Windows  

```
aws rds create-db-parameter-group ^
    --db-parameter-group-name mydbparametergroup ^
    --db-parameter-group-family MySQL8.0 ^
    --description "My new parameter group"
```
此命令生成类似于下述信息的输出：  

```
DBPARAMETERGROUP  mydbparametergroup  mysql8.0  My new parameter group
```

## RDS API
<a name="USER_WorkingWithParamGroups.Creating.API"></a>

要创建数据库参数组，请使用 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBParameterGroup.html) 操作。

包括以下必需参数：
+ `DBParameterGroupName`
+ `DBParameterGroupFamily`
+ `Description`

# 在 Amazon RDS 中将数据库参数组与数据库实例关联
<a name="USER_WorkingWithParamGroups.Associating"></a>

您可以使用自定义设置创建自己的数据库参数组。之后可以使用 AWS 管理控制台、AWS CLI 或 RDS API 关联数据库参数组与数据库实例。在创建或修改数据库实例时可以执行此操作。

有关创建数据库参数组的信息，请参阅[在 Amazon RDS 中创建数据库参数组](USER_WorkingWithParamGroups.Creating.md)。有关创建数据库实例的信息，请参阅。[创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)有关修改数据库实例的信息，请参阅。[修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)

**注意**  
将新数据库参数组与数据库实例关联时，修改后的静态和动态参数仅在数据库实例重新启动后得到应用。但是，如果在将数据库参数组与数据库实例关联之后修改数据库参数组中的动态参数，这些更改将立即得到应用，而无需重启。

## 控制台
<a name="USER_WorkingWithParamGroups.Associating.CON"></a>

**关联数据库参数组与数据库实例**

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

1. 在导航窗格中，选择**数据库**，然后选择要修改的数据库实例。

1. 选择**修改**。将显示**修改数据库实例**页面。

1. 更改**数据库参数组**设置。

1. 选择**继续**，查看修改摘要。

1. （可选）选择**立即应用**以立即应用更改。选择此选项在某些情况下可能导致中断。有关更多信息，请参阅。[使用计划修改设置](USER_ModifyInstance.ApplyImmediately.md)

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

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

## AWS CLI
<a name="USER_WorkingWithParamGroups.Associating.CLI"></a>

要关联数据库参数组与数据库实例，请使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 命令及以下选项：
+ `--db-instance-identifier`
+ `--db-parameter-group-name`

以下示例关联了 `mydbpg` 数据库参数组与 `database-1` 数据库实例。使用 `--apply-immediately` 可立即应用更改。使用 `--no-apply-immediately` 可在下一维护时段内应用更改。有关更多信息，请参阅。[使用计划修改设置](USER_ModifyInstance.ApplyImmediately.md)

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

```
aws rds modify-db-instance \
    --db-instance-identifier database-1 \
    --db-parameter-group-name mydbpg \
    --apply-immediately
```
对于：Windows  

```
aws rds modify-db-instance ^
    --db-instance-identifier database-1 ^
    --db-parameter-group-name mydbpg ^
    --apply-immediately
```

## RDS API
<a name="USER_WorkingWithParamGroups.Associating.API"></a>

要关联数据库参数组与数据库实例，请使用 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 操作及以下参数：
+ `DBInstanceName`
+ `DBParameterGroupName`

# 在 Amazon RDS 中修改数据库参数组中的参数
<a name="USER_WorkingWithParamGroups.Modifying"></a>

您可以修改客户创建的数据库参数组中的参数值，但不能更改默认数据库参数组中的参数值。对客户创建的数据库参数组中的参数所做的更改将应用于与此数据库参数组关联的所有数据库实例。

参数有两种类型：动态参数和静态参数。对动态参数的更改将立即应用于数据库实例，而无需重新启动。而对静态参数进行的更改，只有在重新启动数据库实例之后，才会应用。

RDS 控制台在 **Configuration (配置)** 选项卡上显示与数据库实例关联的数据库参数组的状态。例如，如果数据库实例未使用对其关联的数据库参数组所做的最新更改，则 RDS 控制台将显示状态为 **pending-reboot** 的数据库参数组。要向该数据库实例应用最新的参数更改，请手动重启数据库实例。

![\[参数更改等待重启方案\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/param-reboot.png)


## 控制台
<a name="USER_WorkingWithParamGroups.Modifying.CON"></a>

**修改数据库参数组中的参数**

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

1. 在导航窗格中，选择**参数组**。

1. 在此列表中，选择要修改的参数组的名称。

1. 对于 **Parameter group actions (参数组操作)**，选择 **Edit (编辑)**。

1. 更改要修改的参数的值。您可使用对话框右上方的箭头键滚动参数。

   您无法更改默认参数组中的值。

1. 选择**保存更改**。

## AWS CLI
<a name="USER_WorkingWithParamGroups.Modifying.CLI"></a>

要修改数据库参数组，请使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) 命令及以下必需选项：
+ `--db-parameter-group-name`
+ `--parameters`

以下示例修改了名为 *mydbparametergroup* 的数据库参数组的 ` max_connections` 和 `max_allowed_packet` 值。

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

```
aws rds modify-db-parameter-group \
    --db-parameter-group-name mydbparametergroup \
    --parameters "ParameterName=max_connections,ParameterValue=250,ApplyMethod=immediate" \
                 "ParameterName=max_allowed_packet,ParameterValue=1024,ApplyMethod=immediate"
```
对于：Windows  

```
aws rds modify-db-parameter-group ^
    --db-parameter-group-name mydbparametergroup ^
    --parameters "ParameterName=max_connections,ParameterValue=250,ApplyMethod=immediate" ^
                 "ParameterName=max_allowed_packet,ParameterValue=1024,ApplyMethod=immediate"
```
该命令产生类似下面的输出：  

```
DBPARAMETERGROUP  mydbparametergroup
```

## RDS API
<a name="USER_WorkingWithParamGroups.Modifying.API"></a>

要修改数据库参数组，请使用 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBParameterGroup.html) 操作及以下必要参数：
+ `DBParameterGroupName`
+ `Parameters`

# 在 Amazon RDS 中将数据库参数组中的参数重置为其默认值
<a name="USER_WorkingWithParamGroups.Resetting"></a>

您可以将客户创建的数据库参数组中的参数值重置为默认值。对客户创建的数据库参数组中的参数所做的更改将应用于与此数据库参数组关联的所有数据库实例。

使用控制台时，可以将特定参数重置为其默认值。但是，您无法轻松地一次性重置数据库参数组中的所有参数。使用 AWS CLI 或 RDS API 时，可以将特定参数重置为其默认值。您还可以一次性重置数据库参数组中的所有参数。

对某些参数的更改将立即应用于数据库实例，而无需重新启动。而对其他一些参数进行的更改，只有在重新启动数据库实例之后，才会应用。RDS 控制台在 **Configuration (配置)** 选项卡上显示与数据库实例关联的数据库参数组的状态。例如，假设数据库实例未使用对其关联的数据库参数组所做的最新更改。如果是这样，RDS 控制台将显示状态为 **pending-reboot**（待重启）的数据库参数组。要向该数据库实例应用最新的参数更改，请手动重启数据库实例。

![\[参数更改等待重启方案\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/param-reboot.png)


**注意**  
在默认数据库参数组中，参数始终设置为默认值。

## 控制台
<a name="USER_WorkingWithParamGroups.Resetting.CON"></a>

**将数据库参数组中的参数重置为默认值的方法**

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

1. 在导航窗格中，选择**参数组**。

1. 在列表中，选择参数组。

1. 对于 **Parameter group actions (参数组操作)**，选择 **Edit (编辑)**。

1. 选择要重置为默认值的参数。您可使用对话框右上方的箭头键滚动参数。

   您无法重置默认参数组中的值。

1. 选择**重置**，然后通过选择**重置参数**进行确认。

## AWS CLI
<a name="USER_WorkingWithParamGroups.Resetting.CLI"></a>

要重置数据库参数组中的部分或所有参数，请使用带以下必需选项的 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/reset-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/reset-db-parameter-group.html) 命令：`--db-parameter-group-name`。

要重置数据库参数组中的所有参数，请指定 `--reset-all-parameters` 选项。要重置特定参数，请指定 `--parameters` 选项。

以下示例将名为 *mydbparametergroup* 的数据库参数组中的所有参数重置为其默认值。

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

```
aws rds reset-db-parameter-group \
    --db-parameter-group-name mydbparametergroup \
    --reset-all-parameters
```
对于：Windows  

```
aws rds reset-db-parameter-group ^
    --db-parameter-group-name mydbparametergroup ^
    --reset-all-parameters
```

以下示例展示了在名为 *mydbparametergroup* 的数据库参数组中将 `max_connections` 和 `max_allowed_packet` 选项重置为各自的默认值。

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

```
aws rds reset-db-parameter-group \
    --db-parameter-group-name mydbparametergroup \
    --parameters "ParameterName=max_connections,ApplyMethod=immediate" \
                 "ParameterName=max_allowed_packet,ApplyMethod=immediate"
```
对于：Windows  

```
aws rds reset-db-parameter-group ^
    --db-parameter-group-name mydbparametergroup ^
    --parameters "ParameterName=max_connections,ApplyMethod=immediate" ^
                 "ParameterName=max_allowed_packet,ApplyMethod=immediate"
```
该命令产生类似下面的输出：  

```
DBParameterGroupName  mydbparametergroup
```

## RDS API
<a name="USER_WorkingWithParamGroups.Resetting.API"></a>

要将数据库参数组中的参数重置为默认值，请使用带以下必需参数的 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ResetDBParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ResetDBParameterGroup.html) 命令：`DBParameterGroupName`。

要重置数据库参数组中的所有参数，请将 `ResetAllParameters` 参数设置为 `true`。要重置特定参数，请指定 `Parameters` 参数。

# 在 Amazon RDS 中复制数据库参数组
<a name="USER_WorkingWithParamGroups.Copying"></a>

您可以复制您创建的自定义数据库参数组。复制参数组可能是一种方便的解决方案。例如，您创建了一个数据库参数组，并且想在新的数据库参数组中包含其大部分自定义参数和值。您可以使用 AWS 管理控制台复制数据库参数组。还可以使用 AWS CLI [copy-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-parameter-group.html) 命令或 RDS API [CopyDBParameterGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyDBParameterGroup.html) 操作。

复制数据库参数组之后，请至少等待 5 分钟，再创建使用该数据库参数组作为默认参数组的第一个数据库实例。这样，在使用参数组前，Amazon RDS 可以完成全部复制操作。这对于在为数据库实例创建默认数据库时十分关键的参数非常重要。示例如 `character_set_database` 参数定义的默认数据库的字符集。请使用 [Amazon RDS 控制台](https://console.aws.amazon.com/rds/)的**参数组**选项或使用 [describe-db-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) 命令来验证是否已创建数据库参数组。

**注意**  
您无法复制默认参数组。不过，您可以创建基于默认参数组的新参数组。  
您无法将数据库参数组复制到其他 AWS 账户或 AWS 区域。

## 控制台
<a name="USER_WorkingWithParamGroups.Copying.CON"></a>

**复制数据库参数组**

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

1. 在导航窗格中，选择**参数组**。

1. 在列表中，选择要复制的自定义参数组。

1. 对于 **Parameter group actions (参数组操作)**，选择 **Copy (复制)**。

1. 在 **New DB parameter group identifier (新数据库参数组标识符)** 中，输入新参数组的名称。

1. 在 **Description (描述)** 中，输入新参数组的描述。

1. 选择 **Copy (复制)**。

## AWS CLI
<a name="USER_WorkingWithParamGroups.Copying.CLI"></a>

要复制数据库参数组，请使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-parameter-group.html) 命令及以下必要选项：
+ `--source-db-parameter-group-identifier`
+ `--target-db-parameter-group-identifier`
+ `--target-db-parameter-group-description`

以下示例创建一个名为 `mygroup2` 的新数据库参数组，它是数据库参数组 `mygroup1` 的副本。

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

```
aws rds copy-db-parameter-group \
    --source-db-parameter-group-identifier mygroup1 \
    --target-db-parameter-group-identifier mygroup2 \
    --target-db-parameter-group-description "DB parameter group 2"
```
对于：Windows  

```
aws rds copy-db-parameter-group ^
    --source-db-parameter-group-identifier mygroup1 ^
    --target-db-parameter-group-identifier mygroup2 ^
    --target-db-parameter-group-description "DB parameter group 2"
```

## RDS API
<a name="USER_WorkingWithParamGroups.Copying.API"></a>

要复制数据库参数组，请将 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyDBParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyDBParameterGroup.html) 操作与下列必需参数配合使用：
+ `SourceDBParameterGroupIdentifier`
+ `TargetDBParameterGroupIdentifier`
+ `TargetDBParameterGroupDescription`

# 在 Amazon RDS 中列出数据库参数组
<a name="USER_WorkingWithParamGroups.Listing"></a>

您可以列出为AWS 账户创建的数据库参数组。

**注意**  
当您为特定数据库引擎和版本创建数据库实例时，将自动从默认参数模板创建默认参数组。这些默认参数组包含首选参数设置，并且无法修改。当您创建自定义参数组时，可以修改参数设置。

## 控制台
<a name="USER_WorkingWithParamGroups.Listing.CON"></a>

**列出 AWS 账户的所有数据库参数组**

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

1. 在导航窗格中，选择**参数组**。

   数据库参数组将显示在列表中。

## AWS CLI
<a name="USER_WorkingWithParamGroups.Listing.CLI"></a>

要列出 AWS 账户的所有数据库参数组，请使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameter-groups.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameter-groups.html) 命令。

**Example**  
下例列出了 AWS 账户的所有可用数据库参数组。  

```
aws rds describe-db-parameter-groups
```
此命令会返回类似以下内容的响应：  

```
DBPARAMETERGROUP  default.mysql8.0     mysql8.0  Default parameter group for MySQL8.0
DBPARAMETERGROUP  mydbparametergroup   mysql8.0  My new parameter group
```
以下示例描述了 *mydbparamgroup1* 参数组。  
对于 Linux、macOS 或 Unix：  

```
aws rds describe-db-parameter-groups \
    --db-parameter-group-name mydbparamgroup1
```
对于：Windows  

```
aws rds describe-db-parameter-groups ^
    --db-parameter-group-name mydbparamgroup1
```
此命令会返回类似以下内容的响应：  

```
DBPARAMETERGROUP  mydbparametergroup1  mysql8.0  My new parameter group
```

## RDS API
<a name="USER_WorkingWithParamGroups.Listing.API"></a>

要列出 AWS 账户的所有数据库参数组，请使用 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBParameterGroups.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBParameterGroups.html) 操作。

# 在 Amazon RDS 中查看数据库参数组的参数值
<a name="USER_WorkingWithParamGroups.Viewing"></a>

您可获得数据库参数组内所有参数的列表及它们的值。

## 控制台
<a name="USER_WorkingWithParamGroups.Viewing.CON"></a>

**查看数据库参数组的参数值**

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

1. 在导航窗格中，选择**参数组**。

   数据库参数组将显示在列表中。

1. 选择参数组名称以查看其参数列表。

## AWS CLI
<a name="USER_WorkingWithParamGroups.Viewing.CLI"></a>

要查看数据库参数组的参数值，请使用带下列必需参数的 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) 命令。
+ `--db-parameter-group-name`

**Example**  
以下示例列出名为 *mydbparametergroup* 的数据库参数组的参数和参数值。  

```
aws rds describe-db-parameters --db-parameter-group-name mydbparametergroup
```
此命令会返回类似以下内容的响应：  

```
DBPARAMETER  Parameter Name            Parameter Value  Source           Data Type  Apply Type  Is Modifiable
DBPARAMETER  allow-suspicious-udfs                      engine-default   boolean    static      false
DBPARAMETER  auto_increment_increment                   engine-default   integer    dynamic     true
DBPARAMETER  auto_increment_offset                      engine-default   integer    dynamic     true
DBPARAMETER  binlog_cache_size         32768            system           integer    dynamic     true
DBPARAMETER  socket                    /tmp/mysql.sock  system           string     static      false
```

## RDS API
<a name="USER_WorkingWithParamGroups.Viewing.API"></a>

要查看数据库参数组的参数值，请使用带下列所需参数的 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBParameters.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBParameters.html) 命令。
+ `DBParameterGroupName`

# 在 Amazon RDS 中删除数据库参数组
<a name="USER_WorkingWithParamGroups.Deleting"></a>

您可以使用 AWS 管理控制台、AWS CLI 或 RDS API 删除数据库参数组。仅当参数组未与数据库实例关联时，才能将其删除。

## 控制台
<a name="USER_WorkingWithParamGroups.Deleting.CON"></a>

**删除数据库参数组**

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

1. 在导航窗格中，选择**参数组**。

   数据库参数组将显示在列表中。

1. 选择要删除的参数组的名称。

1. 选择**操作**，然后选择**删除**。

1. 查看参数组名称，然后选择**删除**。

## AWS CLI
<a name="USER_WorkingWithParamGroups.Deleting.CLI"></a>

要删除数据库参数组，请使用带以下必需参数的 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-parameter-group.html) 命令。
+ `--db-parameter-group-name`

**Example**  
以下示例删除一个名为 *mydbparametergroup* 的数据库参数组。  

```
aws rds delete-db-parameter-group --db-parameter-group-name mydbparametergroup
```

## RDS API
<a name="USER_WorkingWithParamGroups.Deleting.API"></a>

要删除数据库参数组，请使用带以下必需参数的 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBParameterGroup.html) 命令。
+ `DBParameterGroupName`

# 使用多可用区数据库集群的数据库集群参数组
<a name="USER_WorkingWithDBClusterParamGroups"></a>

多可用区数据库集群使用数据库集群参数组。以下各节介绍配置和管理数据库集群参数组。

**Topics**
+ [创建数据库集群参数组](USER_WorkingWithParamGroups.CreatingCluster.md)
+ [修改数据库集群参数组中的参数](USER_WorkingWithParamGroups.ModifyingCluster.md)
+ [重置数据库集群参数组中的参数](USER_WorkingWithParamGroups.ResettingCluster.md)
+ [复制数据库集群参数组](USER_WorkingWithParamGroups.CopyingCluster.md)
+ [列出数据库集群参数组](USER_WorkingWithParamGroups.ListingCluster.md)
+ [查看数据库集群参数组的参数值](USER_WorkingWithParamGroups.ViewingCluster.md)
+ [删除数据库集群参数组](USER_WorkingWithParamGroups.DeletingCluster.md)

# 创建数据库集群参数组
<a name="USER_WorkingWithParamGroups.CreatingCluster"></a>

您可以使用 AWS 管理控制台、AWS CLI 或 RDS API 创建新数据库集群参数组。

创建数据库集群参数组之后，至少等待 5 分钟，然后创建使用该数据库集群参数组的数据库集群。这样，Amazon RDS 就可以在新数据库集群使用参数组之前完全创建此参数组。您可以使用 [Amazon RDS 控制台](https://console.aws.amazon.com/rds/)的 **Parameter groups**（参数组）页面，或者使用 [describe-db-cluster-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-cluster-parameters.html) 命令，以验证是否创建了数据库集群参数组。

以下限制适用于数据库集群参数组名称：
+ 名称必须为 1 到 255 个字母、数字或连字符。

  原定设置参数组名称可以包含句点，例如 `default.mysql5.7`。但是，自定义参数组名称不能包含句点。
+ 第一个字符必须是字母。
+ 名称不能以连字符结束，也不能包含两个连续的连字符。

## 控制台
<a name="USER_WorkingWithParamGroups.CreatingCluster.CON"></a>

**若要创建数据库集群参数组**

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

1. 在导航窗格中，选择**参数组**。

1. 选择**创建参数组**。

1. 对于**参数组名称**，输入新数据库集群参数组的名称。

1. 对于**描述**，输入新数据库集群参数组的描述。

1. 对于**引擎类型**，请选择数据库引擎。

1. 对于**参数组系列**，请选择一个数据库参数组系列。

1. 选择**创建**。

## AWS CLI
<a name="USER_WorkingWithParamGroups.CreatingCluster.CLI"></a>

要创建数据库集群参数组，请使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster-parameter-group.html) 命令。

以下示例为 RDS for MySQL 版本 8.0 创建名为 *mydbclusterparametergroup* 的数据库集群参数组，其说明为“*我的新集群参数组*”。

包括以下必需参数：
+ `--db-cluster-parameter-group-name`
+ `--db-parameter-group-family`
+ `--description`

要列出所有可用的参数组系列，请使用以下命令：

```
aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily"
```

**注意**  
输出包含重复项。

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

```
aws rds create-db-cluster-parameter-group \
    --db-cluster-parameter-group-name mydbclusterparametergroup \
    --db-parameter-group-family mysql8.0 \
    --description "My new cluster parameter group"
```
对于：Windows  

```
aws rds create-db-cluster-parameter-group ^
    --db-cluster-parameter-group-name mydbclusterparametergroup ^
    --db-parameter-group-family mysql8.0 ^
    --description "My new cluster parameter group"
```
此命令生成类似于下述信息的输出：  

```
{
    "DBClusterParameterGroup": {
        "DBClusterParameterGroupName": "mydbclusterparametergroup",
        "DBParameterGroupFamily": "mysql8.0",
        "Description": "My new cluster parameter group",
        "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterparametergroup2"
    }
}
```

## RDS API
<a name="USER_WorkingWithParamGroups.CreatingCluster.API"></a>

要创建数据库集群参数组，请使用 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBClusterParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBClusterParameterGroup.html) 操作。

包括以下必需参数：
+ `DBClusterParameterGroupName`
+ `DBParameterGroupFamily`
+ `Description`

# 修改数据库集群参数组中的参数
<a name="USER_WorkingWithParamGroups.ModifyingCluster"></a>

您可以修改客户创建的数据库集群参数组中的参数值。您无法更改默认数据库集群参数组中的参数值。对客户创建的数据库集群参数组中的参数所做的更改将应用于与此数据库集群参数组关联的所有数据库集群。

## 控制台
<a name="USER_WorkingWithParamGroups.ModifyingCluster.CON"></a>

**修改数据库集群参数组**

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

1. 在导航窗格中，选择**参数组**。

1. 在此列表中，选择要修改的参数组。

1. 对于 **Parameter group actions (参数组操作)**，选择 **Edit (编辑)**。

1. 更改要修改的参数的值。您可使用对话框右上方的箭头键滚动参数。

   您无法更改默认参数组中的值。

1. 选择**保存更改**。

1. 重启集群中的以对其应用更改。

   如果您不重启集群，则失效转移操作需要的时间可能比正常情况下更长。

## AWS CLI
<a name="USER_WorkingWithParamGroups.ModifyingCluster.CLI"></a>

要修改数据库集群参数组，请使用带以下必需参数的 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html) 命令：
+ `--db-cluster-parameter-group-name`
+ `--parameters`

以下示例修改了名为 *mydbclusterparametergroup* 的数据库集群参数组的 `server_audit_logging` 和 `server_audit_logs_upload` 值。

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

```
aws rds modify-db-cluster-parameter-group \
    --db-cluster-parameter-group-name mydbclusterparametergroup \
    --parameters "ParameterName=server_audit_logging,ParameterValue=1,ApplyMethod=immediate" \
                 "ParameterName=server_audit_logs_upload,ParameterValue=1,ApplyMethod=immediate"
```
对于：Windows  

```
aws rds modify-db-cluster-parameter-group ^
    --db-cluster-parameter-group-name mydbclusterparametergroup ^
    --parameters "ParameterName=server_audit_logging,ParameterValue=1,ApplyMethod=immediate" ^
                 "ParameterName=server_audit_logs_upload,ParameterValue=1,ApplyMethod=immediate"
```
该命令产生类似下面的输出：  

```
DBCLUSTERPARAMETERGROUP  mydbclusterparametergroup
```

## RDS API
<a name="USER_WorkingWithParamGroups.ModifyingCluster.API"></a>

要修改数据库集群参数组，请使用带以下必需参数的 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html) 命令：
+ `DBClusterParameterGroupName`
+ `Parameters`

# 重置数据库集群参数组中的参数
<a name="USER_WorkingWithParamGroups.ResettingCluster"></a>

您可以在客户创建的数据库集群参数组中将参数重置为其默认值。对客户创建的数据库集群参数组中的参数所做的更改将应用于与此数据库集群参数组关联的所有数据库集群。

**注意**  
在默认数据库集群参数组中，参数始终设置为默认值。

## 控制台
<a name="USER_WorkingWithParamGroups.ResettingCluster.CON"></a>

**将数据库集群参数组中的参数重置为其默认值**

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

1. 在导航窗格中，选择**参数组**。

1. 在列表中，选择参数组。

1. 对于 **Parameter group actions (参数组操作)**，选择 **Edit (编辑)**。

1. 选择要重置为默认值的参数。您可使用对话框右上方的箭头键滚动参数。

   您无法重置默认参数组中的值。

1. 选择**重置**，然后通过选择**重置参数**进行确认。

1. 重启。

## AWS CLI
<a name="USER_WorkingWithParamGroups.ResettingCluster.CLI"></a>

要将数据库集群参数组中的参数重置为其默认值，请使用带以下必要选项的 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/reset-db-cluster-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/reset-db-cluster-parameter-group.html) 命令：`--db-cluster-parameter-group-name`。

要重置数据库集群参数组中的所有参数，请指定 `--reset-all-parameters` 选项。要重置特定参数，请指定 `--parameters` 选项。

以下示例将名为 *mydbparametergroup* 的数据库参数组中的所有参数重置为其默认值。

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

```
aws rds reset-db-cluster-parameter-group \
    --db-cluster-parameter-group-name mydbparametergroup \
    --reset-all-parameters
```
对于：Windows  

```
aws rds reset-db-cluster-parameter-group ^
    --db-cluster-parameter-group-name mydbparametergroup ^
    --reset-all-parameters
```

以下示例展示了在名为 *mydbclusterparametergroup* 的数据库集群参数组中将 `server_audit_logging` 和 `server_audit_logs_upload` 重置为其默认值。

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

```
aws rds reset-db-cluster-parameter-group \
    --db-cluster-parameter-group-name mydbclusterparametergroup \
    --parameters "ParameterName=server_audit_logging,ApplyMethod=immediate" \
                 "ParameterName=server_audit_logs_upload,ApplyMethod=immediate"
```
对于：Windows  

```
aws rds reset-db-cluster-parameter-group ^
    --db-cluster-parameter-group-name mydbclusterparametergroup ^
    --parameters "ParameterName=server_audit_logging,ParameterValue=1,ApplyMethod=immediate" ^
                 "ParameterName=server_audit_logs_upload,ParameterValue=1,ApplyMethod=immediate"
```
该命令产生类似下面的输出：  

```
DBClusterParameterGroupName  mydbclusterparametergroup
```

## RDS API
<a name="USER_WorkingWithParamGroups.ResettingCluster.API"></a>

要将数据库集群参数组中的参数重置为其默认值，请使用带以下必需参数的 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ResetDBClusterParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ResetDBClusterParameterGroup.html) 命令：`DBClusterParameterGroupName`。

要重置数据库集群参数组中的所有参数，请将 `ResetAllParameters` 参数设置为 `true`。要重置特定参数，请指定 `Parameters` 参数。

# 复制数据库集群参数组
<a name="USER_WorkingWithParamGroups.CopyingCluster"></a>

您可以复制您创建的自定义数据库集群参数组。当您已创建一个数据库集群参数组并且想在新的数据库集群参数组中包含该组中的大部分自定义参数和值时，复制参数组是一个方便的解决方案。您可通过使用 AWS CLI [copy-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-cluster-parameter-group.html) 命令或 RDS API [CopyDBClusterParameterGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyDBParameterGroup.html) 操作来复制数据库集群参数组。

复制数据库集群参数组之后，至少等待 5 分钟，然后创建使用该数据库集群参数组的数据库集群。这样，Amazon RDS 就可以在新数据库集群使用参数组之前完全复制此参数组。您可以使用 [Amazon RDS 控制台](https://console.aws.amazon.com/rds/)的 **Parameter groups**（参数组）页面，或者使用 [describe-db-cluster-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-cluster-parameters.html) 命令，以验证是否创建了数据库集群参数组。

**注意**  
您无法复制默认参数组。不过，您可以创建基于默认参数组的新参数组。  
您无法将数据库集群参数组复制到其他 AWS 账户或 AWS 区域。

## 控制台
<a name="USER_WorkingWithParamGroups.CopyingCluster.CON"></a>

**复制数据库集群参数组**

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

1. 在导航窗格中，选择**参数组**。

1. 在列表中，选择要复制的自定义参数组。

1. 对于 **Parameter group actions (参数组操作)**，选择 **Copy (复制)**。

1. 在 **New DB parameter group identifier (新数据库参数组标识符)** 中，输入新参数组的名称。

1. 在 **Description (描述)** 中，输入新参数组的描述。

1. 选择 **Copy (复制)**。

## AWS CLI
<a name="USER_WorkingWithParamGroups.CopyingCluster.CLI"></a>

要复制数据库集群参数组，请使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-cluster-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-cluster-parameter-group.html) 命令及以下必要参数：
+ `--source-db-cluster-parameter-group-identifier`
+ `--target-db-cluster-parameter-group-identifier`
+ `--target-db-cluster-parameter-group-description`

以下示例创建一个名为 `mygroup2` 的新数据库参集群数组，它是数据库集群参数组 `mygroup1` 的副本。

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

```
aws rds copy-db-cluster-parameter-group \
    --source-db-cluster-parameter-group-identifier mygroup1 \
    --target-db-cluster-parameter-group-identifier mygroup2 \
    --target-db-cluster-parameter-group-description "DB parameter group 2"
```
对于：Windows  

```
aws rds copy-db-cluster-parameter-group ^
    --source-db-cluster-parameter-group-identifier mygroup1 ^
    --target-db-cluster-parameter-group-identifier mygroup2 ^
    --target-db-cluster-parameter-group-description "DB parameter group 2"
```

## RDS API
<a name="USER_WorkingWithParamGroups.Copying.API"></a>

要复制数据库集群参数组，请将 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyDBClusterParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyDBClusterParameterGroup.html) 操作与下列必需参数配合使用：
+ `SourceDBClusterParameterGroupIdentifier`
+ `TargetDBClusterParameterGroupIdentifier`
+ `TargetDBClusterParameterGroupDescription`

# 列出数据库集群参数组
<a name="USER_WorkingWithParamGroups.ListingCluster"></a>

您可以列出为 AWS 账户创建的数据库集群参数组。

**注意**  
当您为特定数据库引擎和版本创建数据库集群时，将自动从默认参数模板创建默认参数组。这些默认参数组包含首选参数设置，并且无法修改。当您创建自定义参数组时，可以修改参数设置。

## 控制台
<a name="USER_WorkingWithParamGroups.ListingCluster.CON"></a>

**列出 AWS 账户的所有数据库集群参数组**

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

1. 在导航窗格中，选择**参数组**。

   数据库集群参数组出现在**数据库集群参数组**的**类型**列表中。

## AWS CLI
<a name="USER_WorkingWithParamGroups.ListingCluster.CLI"></a>

要列出 AWS 账户的所有数据库集群参数组，请使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusterparameter-groups.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusterparameter-groups.html) 命令。

**Example**  
下例列出了 AWS 账户的所有可用数据库集群参数组。  

```
aws rds describe-db-cluster-parameter-groups
```
以下示例描述了 *mydbclusterparametergroup* 参数组。  
对于 Linux、macOS 或 Unix：  

```
aws rds describe-db-cluster-parameter-groups \
    --db-cluster-parameter-group-name mydbclusterparametergroup
```
对于：Windows  

```
aws rds describe-db-cluster-parameter-groups ^
    --db-cluster-parameter-group-name mydbclusterparametergroup
```
此命令会返回类似以下内容的响应：  

```
{
    "DBClusterParameterGroups": [
        {
            "DBClusterParameterGroupName": "mydbclusterparametergroup2",
            "DBParameterGroupFamily": "mysql8.0",
            "Description": "My new cluster parameter group",
            "DBClusterParameterGroupArn": "arn:aws:rds:us-east-1:123456789012:cluster-pg:mydbclusterparametergroup"
        }
    ]
}
```

## RDS API
<a name="USER_WorkingWithParamGroups.ListingCluster.API"></a>

要列出 AWS 账户的所有数据库集群参数组，请使用 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusterParameterGroups.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusterParameterGroups.html) 操作。

# 查看数据库集群参数组的参数值
<a name="USER_WorkingWithParamGroups.ViewingCluster"></a>

您可获得数据库集群参数组内所有参数的列表及它们的值。

## 控制台
<a name="USER_WorkingWithParamGroups.ViewingCluster.CON"></a>

**查看数据库集群参数组的参数值**

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

1. 在导航窗格中，选择**参数组**。

   数据库集群参数组出现在**数据库集群参数组**的**类型**列表中。

1. 选择数据库集群参数组的名称以查看其参数列表。

## AWS CLI
<a name="USER_WorkingWithParamGroups.ViewingCluster.CLI"></a>

要查看数据库集群参数组的参数值，请使用 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-cluster-parameters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-cluster-parameters.html) 命令及以下必要参数。
+ `--db-cluster-parameter-group-name`

**Example**  
以下示例以 JSON 格式列出名为 *mydbclusterparametergroup* 的数据库集群参数组的参数和参数值。  
此命令会返回类似以下内容的响应：  

```
aws rds describe-db-cluster-parameters --db-cluster-parameter-group-name mydbclusterparametergroup
```

```
{
    "Parameters": [
        {
            "ParameterName": "activate_all_roles_on_login",
            "ParameterValue": "0",
            "Description": "Automatically set all granted roles as active after the user has authenticated successfully.",
            "Source": "engine-default",
            "ApplyType": "dynamic",
            "DataType": "boolean",
            "AllowedValues": "0,1",
            "IsModifiable": true,
            "ApplyMethod": "pending-reboot",
            "SupportedEngineModes": [
                "provisioned"
            ]
        },
        {
            "ParameterName": "allow-suspicious-udfs",
            "Description": "Controls whether user-defined functions that have only an xxx symbol for the main function can be loaded",
            "Source": "engine-default",
            "ApplyType": "static",
            "DataType": "boolean",
            "AllowedValues": "0,1",
            "IsModifiable": false,
            "ApplyMethod": "pending-reboot",
            "SupportedEngineModes": [
                "provisioned"
            ]
        },
...
```

## RDS API
<a name="USER_WorkingWithParamGroups.ViewingCluster.API"></a>

要查看数据库集群参数组的参数值，请使用带下列所需参数的 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBParameters.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBParameters.html) 命令。
+ `DBClusterParameterGroupName`

在某些情况下，不显示参数的允许值。这些始终是源为数据库引擎原定设置值的参数。

要查看这些参数的值，可以运行以下 SQL 语句：
+ MySQL：

  ```
  -- Show the value of a particular parameter
  mysql$ SHOW VARIABLES LIKE '%parameter_name%';
  
  -- Show the values of all parameters
  mysql$ SHOW VARIABLES;
  ```
+ PostgreSQL：

  ```
  -- Show the value of a particular parameter
  postgresql=> SHOW parameter_name;
  
  -- Show the values of all parameters
  postgresql=> SHOW ALL;
  ```

# 删除数据库集群参数组
<a name="USER_WorkingWithParamGroups.DeletingCluster"></a>

您可以使用 AWS 管理控制台、AWS CLI 或 RDS API 删除数据库集群参数组。仅当数据库集群参数组未与数据库集群关联时，才能将其删除。

## 控制台
<a name="USER_WorkingWithParamGroups.DeletingCluster.CON"></a>

**删除参数组**

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

1. 在导航窗格中，选择**参数组**。

   参数组显示在列表中。

1. 选择要删除的数据库集群参数组的名称。

1. 选择**操作**，然后选择**删除**。

1. 查看参数组名称，然后选择**删除**。

## AWS CLI
<a name="USER_WorkingWithParamGroups.DeletingCluster.CLI"></a>

要删除数据库集群参数组，请使用带以下必需参数的 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-cluster-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-cluster-parameter-group.html) 命令。
+ `--db-parameter-group-name`

**Example**  
以下示例删除了名为 *mydbparametergroup* 的数据库集群参数组。  

```
aws rds delete-db-cluster-parameter-group --db-parameter-group-name mydbparametergroup
```

## RDS API
<a name="USER_WorkingWithParamGroups.DeletingCluster.API"></a>

要删除数据库集群参数组，请使用带以下必需参数的 RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBClusterParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBClusterParameterGroup.html) 命令。
+ `DBParameterGroupName`

# 比较数据库参数组
<a name="USER_WorkingWithParamGroups.Comparing"></a>

您可以使用 AWS 管理控制台查看两个数据库参数组之间的区别。

指定的参数组必须都是数据库参数组，或者必须都是数据库集群参数组。甚至当数据库引擎和版本相同时，也是如此。例如，您无法比较 `aurora-mysql8.0`（Aurora MySQL 版本 3）数据库参数组和 `aurora-mysql8.0` 数据库集群参数组。

您可以比较 Aurora MySQL 和 RDS for MySQL 数据库参数组（即使是不同版本），但您无法不能比较 Aurora PostgreSQL 和 RDS for PostgreSQL 数据库参数组。

**比较两个数据库参数组**

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

1. 在导航窗格中，选择**参数组**。

1. 在此列表中，选择要比较的两个参数组。
**注意**  
要将默认参数组与自定义参数组进行比较，首先请在**默认**选项卡上选择默认参数组，然后在**自定义**选项卡上选择自定义参数组。

1. 从**操作**中选择**比较**。

# 指定数据库参数
<a name="USER_ParamValuesRef"></a>

数据库参数类型包括：
+ 整数
+ Boolean
+ String
+ 长整型
+ Double
+ Timestamp
+ 其他定义的数据类型的对象
+ 整数、布尔值、字符串、long、double、时间戳或对象类型的值的数组

您还可以使用表达式、公式和函数指定整数和布尔参数。

对于 Oracle 引擎，您可以使用 `DBInstanceClassHugePagesDefault` 公式变量指定布尔值数据库参数。请参阅 [数据库参数公式变量](#USER_FormulaVariables)。

对于 PostgreSQL 引擎，您可以使用表达式指定布尔值数据库参数。请参阅 [布尔值数据库参数表达式](#USER_ParamBooleanExpressions)。

**Contents**
+ [数据库参数公式](#USER_ParamFormulas)
  + [数据库参数公式变量](#USER_FormulaVariables)
  + [数据库参数公式运算符](#USER_FormulaOperators)
+ [数据库参数函数](#USER_ParamFunctions)
+ [布尔值数据库参数表达式](#USER_ParamBooleanExpressions)
+ [数据库参数日志表达式](#USER_ParamLogExpressions)
+ [数据库参数值示例](#USER_ParamValueExamples)

## 数据库参数公式
<a name="USER_ParamFormulas"></a>

数据库参数公式是一种可解析为整数值或布尔值的表达式。可以将表达式用大括号括起来：\$1\$1。可以为数据库参数值使用公式，也可以将公式用作数据库参数函数的参数。

**语法**  

```
{FormulaVariable}
{FormulaVariable*Integer}
{FormulaVariable*Integer/Integer}
{FormulaVariable/Integer}
```

### 数据库参数公式变量
<a name="USER_FormulaVariables"></a>

每个公式变量会返回一个整数或布尔值。变量的名称是区分大小写的。

*AllocatedStorage*  
返回一个整数，它表示数据卷的大小（以字节为单位）。

*DBInstanceClassHugePagesDefault*  
返回一个布尔值。当前，仅 Oracle 引擎支持它。  
有关更多信息，请参阅“[为 RDS for Oracle 实例开启大页](Oracle.Concepts.HugePages.md)”。

*DBInstanceClassMemory*  
该变量会返回一个整数，表示数据库进程可用的内存字节数。这个数字是以数据库实例类的内存总量开始在内部计算得出的。从此处，计算结果将减去为操作系统以及管理实例的 RDS 进程预留的内存。因此，该数字总是略低于 [数据库实例类](Concepts.DBInstanceClass.md) 中实例类表所示的内存数字。确切的值取决于多种因素的组合。其中包括实例类、数据库引擎，以及其适用于 RDS 实例还是适用于属于 Aurora 集群一部分的实例。

*DBInstanceVCPU*  
返回一个整数，它表示 Amazon RDS 用于管理实例的虚拟中央处理器 (vCPU) 的数量。

*EndPointPort*  
返回一个整数，它表示连接到数据库实例时使用的端口。

*TrueIfReplica*  
如果数据库实例是只读副本，返回 `1`，如果不是只读副本，则返回 `0`。这是 MySQL 中 `read_only` 参数的默认值。

### 数据库参数公式运算符
<a name="USER_FormulaOperators"></a>

数据库参数公式支持两个运算符：除法和乘法。

*除法运算符：/*  
用除数除以被除数，返回整数型商。商中的小数不四舍五入，直接截断。  
语法  

```
dividend / divisor
```
被除数和除数参数必须是整数型表达式。

*乘法运算符：\$1*  
将表达式乘以表达式，返回表达式的乘积。表达式中的小数不四舍五入，直接截断。  
语法  

```
expression * expression
```
两个表达式必须都是整数型。

## 数据库参数函数
<a name="USER_ParamFunctions"></a>

您可以将数据库参数函数的参数指定为整数或公式。每个函数必须具有至少一个参数。将多个参数指定为逗号分隔的列表。列表不能拥有任何空成员，如 *argument1*、*argument3*。函数名称区分大小写。

*IF*  
返回一个参数。  
当前，只有 Oracle 引擎支持它，并且唯一支持的第一个参数是 `{DBInstanceClassHugePagesDefault}`。有关更多信息，请参阅“[为 RDS for Oracle 实例开启大页](Oracle.Concepts.HugePages.md)”。  
语法  

```
IF(argument1, argument2, argument3)
```
如果第一个参数的计算结果为 true，则返回第二个参数。否则返回第三个参数。

*GREATEST*  
返回整数型或者参数公式列表中最大的值。  
语法  

```
GREATEST(argument1, argument2,...argumentn)
```
返回整数。

*LEAST*  
返回整数型或者参数公式列表中最小的值。  
语法  

```
LEAST(argument1, argument2,...argumentn)
```
返回整数。

*SUM*  
添加指定整数型或者参数公式的值。  
语法  

```
SUM(argument1, argument2,...argumentn)
```
返回整数。

## 布尔值数据库参数表达式
<a name="USER_ParamBooleanExpressions"></a>

布尔值数据库参数表达式解析为布尔值 1 或 0。引号中的内容是表达式。

**注意**  
仅 PostgreSQL 引擎支持布尔值数据库参数表达式。

**语法**  

```
"expression operator expression"
```
两个表达式都必须解析为整数。表达式可以是：  
+ 整型常量
+ 数据库参数公式
+ 数据库参数函数
+ 数据库参数变量

布尔值数据库参数表达式支持以下不等式运算符：

*大于运算符：>*  
语法  

```
"expression > expression"
```

*小于运算符：<*  
语法  

```
"expression < expression"
```

* 大于或等于运算符：>=、=>*  
语法  

```
"expression >= expression"
"expression => expression"
```

*小于或等于运算符:<=、=<*  
语法  

```
"expression <= expression"
"expression =< expression"
```

**Example 使用布尔值数据库参数表达式**  
以下布尔数据库参数表达式示例将参数公式的结果与整数进行比较。这样做是为了修改 PostgreSQL 数据库实例的布尔数据库参数 `wal_compression`。参数表达式将 vCPU 的数量与值 2 进行比较。如果 vCPU 的数量大于 2，`wal_compression` 数据库参数则会设置为 true。  

```
aws rds modify-db-parameter-group --db-parameter-group-name group-name \
--parameters "ParameterName=wal_compression,ParameterValue=\"{DBInstanceVCPU} > 2\" "
```

## 数据库参数日志表达式
<a name="USER_ParamLogExpressions"></a>

您可以为日志表达式设置整数数据库参数值。可以将表达式用大括号括起来：\$1\$1。例如：

```
{log(DBInstanceClassMemory/8187281418)*1000}
```

`log` 函数表示日志基数 2。此示例还使用了 `DBInstanceClassMemory` 公式变量。请参阅 [数据库参数公式变量](#USER_FormulaVariables)。

**注意**  
目前，您只能将 MySQL `innodb_log_file_size` 参数指定为一个整数。

## 数据库参数值示例
<a name="USER_ParamValueExamples"></a>

这些示例展示了如何使用公式、函数和表达式来表达数据库参数的值。

**警告**  
在数据库参数组内设置参数不当可能会产生意外的不利影响。可能包括性能下降和系统不稳定。修改数据库参数时应保持谨慎，且修改数据库参数组前要备份数据。将参数组更改应用到生产数据库实例前，请在使用时间点还原创建的测试数据库实例上试用这些参数组更改。

**Example 使用数据库参数函数 GREATEST**  
您可以指定 Oracle 进程参数中的 `GREATEST` 函数。使用它可以将用户进程数设置为 80 或 `DBInstanceClassMemory`/9868951 中的较大值。  

```
GREATEST({DBInstanceClassMemory/9868951},80)
```

**Example 使用数据库参数函数 LEAST**  
您可以指定 MySQL `LEAST` 参数值中的 `max_binlog_cache_size` 函数。使用它将事务可以在 MySQL 实例中使用的最大缓存大小设置为 1 MB 或`DBInstanceClass`/256 中的较小值。  

```
LEAST({DBInstanceClassMemory/256},10485760)
```

# 使用 Amazon RDS 数据库实例设置创建 Amazon ElastiCache 缓存
<a name="creating-elasticache-cluster-with-RDS-settings"></a>

ElastiCache 是一项完全托管式内存缓存服务，提供的微秒级读写延迟可支持灵活的实时使用案例。ElastiCache 可以帮助提高应用程序和数据库的性能。您可以将 ElastiCache 用作不需要数据持久性的使用案例的主要数据存储，例如游戏排行榜、流媒体和数据分析。ElastiCache 可以帮助消除与部署和管理分布式计算环境相关的复杂性。有关更多信息，请参阅适用于 Memcached 的 [Common ElastiCache Use Cases and How ElastiCache Can Help](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/elasticache-use-cases.html) 和适用于 Redis OSS 的 [Common ElastiCache Use Cases and How ElastiCache Can Help](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/elasticache-use-cases.html)。您可以使用 Amazon RDS 控制台创建 ElastiCache 缓存。

您可以通过两种方式来使用 Amazon ElastiCache。您可以从无服务器缓存开始入手，也可以选择设计自己的缓存群集。如果您选择设计自己的缓存集群，ElastiCache 将同时使用 Redis OSS 和 Memcached 引擎。如果您不确定要使用哪个引擎，请参阅 [Comparing Memcached and Redis OSS](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html)。有关 Amazon ElastiCache 的更多信息，请参阅 [Amazon ElastiCache 用户指南](https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/)。

**Topics**
+ [使用 RDS 数据库实例设置创建 ElastiCache 缓存的概述](#creating-elasticache-cluster-with-RDS-settings-overview)
+ [使用 RDS 数据库实例中的设置创建 ElastiCache 缓存](#creating-elasticache-cluster-with-RDS-settings-new-DB)

## 使用 RDS 数据库实例设置创建 ElastiCache 缓存的概述
<a name="creating-elasticache-cluster-with-RDS-settings-overview"></a>

您可以使用与新创建的或现有的 RDS 数据库实例相同的配置设置，从 Amazon RDS 创建 ElastiCache 缓存。

将 ElastiCache 缓存与您的数据库实例关联的一些使用案例：
+ 与单独在 RDS 上运行相比，将 ElastiCache 与 RDS 结合使用可以节省成本并提高性能。

  例如，将 ElastiCache 和 RDS for MySQL 结合使用，与单独使用 RDS for MySQL 相比，可以节省多达 55% 的成本并将读取性能提高多达 80 倍。
+ 您可以使用 ElastiCache 缓存作为不需要数据持久性的应用程序的主数据存储。使用 Redis OSS 或 Memcached 的应用程序几乎不需要任何修改就能使用 ElastiCache。

当您从 RDS 创建 ElastiCache 缓存时，ElastiCache 缓存会从关联的 RDS 数据库实例继承以下设置：
+ ElastiCache 连接设置
+ ElastiCache 安全设置

您也可以根据要求设置缓存配置设置。

### 在应用程序中设置 ElastiCache
<a name="creating-elasticache-cluster-with-RDS-settings-overview-SettingUpELC"></a>

您的应用程序必须设置为使用 ElastiCache 缓存。还可以根据要求将应用程序设置为使用缓存策略，从而优化和提高缓存性能。
+  要访问并开始使用 ElastiCache 缓存，请参阅 [Getting started with ElastiCache (Redis OSS)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/GettingStarted.html) 和 [Getting started with ElastiCache (Memcached)](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/GettingStarted.html)。
+  有关缓存策略的更多信息，请参阅适用于 Memcached 的 [Caching strategies and best practices](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/BestPractices.html) 和适用于 Redis 的 [Caching strategies and best practices](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/BestPractices.html)。
+  有关 ElastiCache（Redis OSS）集群中的高可用性的更多信息，请参阅 [High availability using replication groups](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/BestPractices.html)。
+  您可能会产生与备份存储、区域内或跨区域数据传输或使用 AWS Outposts 相关的成本。有关定价详细信息，请参阅 [Amazon ElastiCache 定价](https://aws.amazon.com/elasticache/pricing/)。

## 使用 RDS 数据库实例中的设置创建 ElastiCache 缓存
<a name="creating-elasticache-cluster-with-RDS-settings-new-DB"></a>

您可以使用继承自数据库实例的设置为 RDS 数据库实例创建 ElastiCache 缓存。

**使用数据库实例中的设置创建 ElastiCache 缓存**

1. 要创建数据库实例，请按照[创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)中的说明操作。

1. 创建 RDS 数据库实例后，控制台将显示**建议的插件**窗口。选择**使用您的数据库设置从 RDS 创建 ElastiCache 集群**。

   对于现有数据库，在**数据库**页面中，选择所需的数据库实例。在**操作**下拉菜单中，选择**创建 ElastiCache 集群**，以在 RDS 中创建与现有 RDS 数据库实例具有相同设置的 ElastiCache 缓存。

   在 **ElastiCache 配置部分**，**源数据库标识符**显示 ElastiCache 缓存从哪个数据库实例继承设置。

1. 选择要创建 Redis OSS 集群还是 Memcached 集群。有关更多信息，请参阅 [Comparing Memcached and Redis OSS](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html)。  
![\[选择集群类型和部署选项。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/EC-RDS-Config.png)

1. 之后，选择是要创建**无服务器缓存**还是**设计自己的缓存**。有关更多信息，请参阅[选择部署选项](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.deployment.html)。

   如果您选择**无服务器缓存**：

   1. 在**缓存设置**中，输入**名称**和**描述**的值。

   1. 在**查看默认设置**下，保留默认设置以在缓存和数据库实例之间建立连接。

   1. 您也可以通过选择**自定义默认设置**来编辑默认设置。选择 **ElastiCache 连接设置**、**ElastiCache 安全设置**和**最大使用限制**。

1. 如果您选择**设计自己的缓存**：

   1. 如果您选择 **Redis OSS 集群**，请选择要将集群模式保持为**启用**还是**禁用**。有关更多信息，请参阅 [Replication: Redis OSS (Cluster Mode Disabled) vs. Redis OSS (Cluster Mode Enabled)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.Redis-RedisCluster.html)。

   1. 输入**名称**、**描述**和**引擎版本**的值。

      对于**引擎版本**，建议的原定设置值是最新的引擎版本。您也可以为 ElastiCache 缓存选择最符合您要求的**引擎版本**。

   1. 在**节点类型**选项中选择节点类型。有关更多信息，请参阅[管理节点](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.html)。

      如果您选择在**集群模式**设置为**启用**的情况下创建 Redis OSS 集群，请在**分片数量**选项中输入分片数（分区/节点组）。

      在**副本数量**中输入每个分片的副本数量。
**注意**  
所选节点类型、分片数量和副本数量都会影响您的缓存性能和资源成本。确保这些设置符合您的数据库需求。有关定价信息，请参阅 [Amazon ElastiCache 定价](https://aws.amazon.com/elasticache/pricing/)。

   1. 选择 **ElastiCache 连接设置**和 **ElastiCache 安全设置**。您可以保留默认设置或根据需要自定义这些设置。

1. 验证 ElastiCache 缓存的默认设置和继承设置。某些设置在创建后无法更改。
**注意**  
RDS 可能会调整您的 ElastiCache 缓存的备份时段，以满足 60 分钟的最低时段要求。源数据库的备份时段保持不变。

1. 准备就绪后，请选择**创建 ElastiCache 缓存**。

控制台显示创建 ElastiCache 缓存的确认横幅。点击横幅中指向 ElastiCache 控制台的链接可查看缓存的详细信息。ElastiCache 控制台显示新创建的 ElastiCache 缓存。

# 使用 AWS Database Migration Service 将 EC2 数据库自动迁移到 Amazon RDS
<a name="USER_DMS_migration"></a>

您可以使用 RDS 控制台将 EC2 数据库迁移到 RDS。RDS 使用 AWS Database Migration Service（AWS DMS）迁移您的源 EC2 数据库。AWS DMS 允许您将关系数据库迁移到 AWS 云中。有关 AWS Database Migration Service 的更多信息，请参阅《AWS Database Migration Service 用户指南》**中的[什么是 AWS Database Migration Service？](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)。

要开始迁移，您必须创建等效的 RDS 数据库实例，以将数据迁移到其中。创建目标数据库后，您可以将 EC2 数据库导入其中。对于小于 1 TiB 的源数据库，此迁移操作可减少将数据迁移到 RDS 所需的时间和资源。

## 概述
<a name="USER_DMS_migration-overview"></a>

RDS 控制台允许您将 EC2 数据库迁移到等效的 RDS 数据库中。您必须创建 RDS 数据库，才能从控制台进行迁移。

您可以为以下数据库引擎迁移 EC2 数据库：
+ MySQL
+ MariaDB
+ PostgreSQL

该迁移过程涉及到以下步骤：
+ 在 RDS 中创建等效的数据库。为了使这些数据库具有等效性，它们必须具有相同的数据库引擎和兼容的引擎版本。它们还必须位于同一 VPC 中。有关创建数据库的说明，请参阅 [创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)。
+ 选择数据库的复制类型：
  + **完全加载迁移** – RDS 将完整的源数据库复制到目标数据库，并在必要时在目标中创建新表。
**注意**  
此选项会导致您的 RDS 数据库中断。
  + **完全加载和更改数据捕获（CDC）迁移** – 与完全加载迁移类似，使用此选项，RDS 会将完整的源数据库复制到目标数据库。但是，在完全加载迁移之后，RDS 会将源中捕获的任何更改应用于目标数据库。更改数据捕获通过使用数据库引擎的本机 API 来收集对数据库日志的更改。
**注意**  
此选项会导致您的 RDS 数据库中断。
  + **更改数据捕获（CDC）**– 使用此选项可使您的目标数据库在迁移过程中保持可用。RDS 会将源数据库中正在进行的更改迁移到目标数据库。
+ RDS 会创建必要的联网资源来促进迁移。RDS 在创建所需资源后，会通知您已创建的资源并允许您启动数据传输。

  完成迁移所需的时间取决于复制的类型和源数据库的大小。

## 先决条件
<a name="USER_DMS_migration-Prerequisites"></a>

### MySQL 和 MariaDB
<a name="USER_DMS_migration-Prerequisites.MySQL"></a>

在开始将 MySQL 或 MariaDB 数据库用作源数据库之前，请确保满足以下先决条件。这些先决条件适用于 AWS 托管的源。

您必须拥有具有复制管理员角色的 AWS DMS 的账户。该角色需要以下权限：
+ **REPLICATION CLIENT** – 仅 CDC 任务需要此权限。换而言之，full-load-only 任务不需要此权限。
+ **REPLICATION SLAVE** – 仅 CDC 任务需要此权限。换而言之，full-load-only 任务不需要此权限。

AWS DMS 用户还必须具有为复制指定的源表的 SELECT 权限。

如果您使用 MySQL 特定的迁移前评测功能，请授予以下权限。

```
grant select on mysql.user to <dms_user>;
grant select on mysql.db to <dms_user>;
grant select on mysql.tables_priv to <dms_user>;
grant select on mysql.role_edges to <dms_user>  #only for MySQL version 8.0.11 and higher
```

### PostgreSQL
<a name="USER_DMS_migration-Prerequisites.PostgreSQL"></a>

在从 AWS 托管的 PostgreSQL 源数据库迁移数据之前，请执行以下操作：
+ 我们建议您使用具有 PostgreSQL 数据库实例所需最低权限的 AWS 用户账户作为 AWS DMS 的 PostgreSQL 源端点的用户账户。建议不要使用主账户。该账户必须具有 `rds_superuser` 和 `rds_replication` 角色。`rds_replication` 角色可授予管理逻辑时隙和使用逻辑时隙流式处理数据的权限。

**注意**  
一些 AWS DMS 事务在被 DMS 引擎再次使用之前会空闲一段时间。在 PostgreSQL 版本 9.6 及更高版本中使用参数 `idle_in_transaction_session_timeout`，能够导致空闲事务超时并失败。

## 限制
<a name="USER_DMS_migration-Limitations"></a>

以下限制适用于自动迁移过程：
+ 您的目标数据库状态必须为**可用**才能开始源数据库迁移。
+ 当从 MySQL 源数据库迁移时，您的 RDS 账户必须具有复制管理员角色。您还必须为该角色应用适当的权限。
+ EC2 实例和目标数据库必须位于同一 VPC 中。
+ 使用**从 EC2 数据库迁移数据**操作时，您无法将 EC2 数据库迁移到以下目标数据库：
  + 作为集群成员的数据库
  + Oracle、SQL Server 和 Db2 数据库
  + MySQL 版本低于 5.7 的数据库
  + PostgreSQL 版本低于 10.4 的数据库
  + MariaDB 版本低于 10.2 的数据库

# 为同构迁移创建 IAM 资源
<a name="USER_DMS_migration-IAM"></a>

RDS 使用 AWS DMS 迁移数据。为了访问数据库并迁移数据，AWS DMS 会为同构数据迁移创建无服务器环境。在此环境中，AWS DMS 需要访问 VPC 对等连接、路由表、安全组和其他 AWS 资源。此外，AWS DMS 将每个数据迁移的日志、指标和进度存储在 Amazon CloudWatch 中。要创建数据迁移项目，AWS DMS 需要访问这些服务。

此外，AWS DMS 需要访问代表一组用户凭证的密钥，以验证源和目标连接的数据库连接。

**注意**  
通过使用**从 EC2 实例迁移数据**操作，您可以使用 RDS 控制台生成这些 IAM 资源。如果您使用控制台生成的 IAM 资源，则跳过此步骤。

此过程需要以下 IAM 资源：

**Topics**
+ [为同构数据迁移创建 IAM 策略](#USER_DMS_migration-IAM.iam-policy)
+ [为同构数据迁移创建 IAM 角色](#USER_DMS_migration-IAM.iam-role)
+ [创建密钥访问策略和角色](USER_DMS_migration-IAM.secret-iam-role-policy.md)
+ [为 AWS DMS 创建 IAM 角色以管理 Amazon VPC](USER_DMS_migration-IAM.dms-vpc-role.md)

## 为同构数据迁移创建 IAM 策略
<a name="USER_DMS_migration-IAM.iam-policy"></a>

在此步骤中，创建 IAM policy，向 AWS DMS 提供 Amazon EC2 和 CloudWatch 资源的访问权限。接下来，创建 IAM 角色并附加此策略。

**为数据迁移创建 IAM 策略**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 在**创建策略**页面中，选择 **JSON** 选项卡。

1. 将下面的 JSON 粘贴到编辑器中。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeRouteTables",
                   "ec2:DescribeSecurityGroups",
                   "ec2:DescribeVpcPeeringConnections",
                   "ec2:DescribeVpcs",
                   "ec2:DescribePrefixLists",
                   "logs:DescribeLogGroups"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "servicequotas:GetServiceQuota"
               ],
               "Resource": "arn:aws:servicequotas:*:*:vpc/L-0EA8095F"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:DescribeLogStreams"
               ],
               "Resource": "arn:aws:logs:*:*:log-group:dms-data-migration-*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents"
               ],
               "Resource": "arn:aws:logs:*:*:log-group:dms-data-migration-*:log-stream:dms-data-migration-*"
           },
           {
               "Effect": "Allow",
               "Action": "cloudwatch:PutMetricData",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateRoute",
                   "ec2:DeleteRoute"
               ],
               "Resource": "arn:aws:ec2:*:*:route-table/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateTags"
               ],
               "Resource": [
                   "arn:aws:ec2:*:*:security-group/*",
                   "arn:aws:ec2:*:*:security-group-rule/*",
                   "arn:aws:ec2:*:*:route-table/*",
                   "arn:aws:ec2:*:*:vpc-peering-connection/*",
                   "arn:aws:ec2:*:*:vpc/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:AuthorizeSecurityGroupEgress",
                   "ec2:AuthorizeSecurityGroupIngress"
               ],
               "Resource": "arn:aws:ec2:*:*:security-group-rule/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:AuthorizeSecurityGroupEgress",
                   "ec2:AuthorizeSecurityGroupIngress",
                   "ec2:RevokeSecurityGroupEgress",
                   "ec2:RevokeSecurityGroupIngress"
               ],
               "Resource": "arn:aws:ec2:*:*:security-group/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:AcceptVpcPeeringConnection",
                   "ec2:ModifyVpcPeeringConnectionOptions"
               ],
               "Resource": "arn:aws:ec2:*:*:vpc-peering-connection/*"
           },
           {
               "Effect": "Allow",
               "Action": "ec2:AcceptVpcPeeringConnection",
               "Resource": "arn:aws:ec2:*:*:vpc/*"
           }
       ]
   }
   ```

------

1. 选择**下一步：标签**和**下一步：审核**。

1. 在**名称\$1**中输入 **HomogeneousDataMigrationsPolicy**，然后选择**创建策略**。

## 为同构数据迁移创建 IAM 角色
<a name="USER_DMS_migration-IAM.iam-role"></a>

在此步骤中，您将创建 IAM 角色，该角色提供对 AWS Secrets Manager、Amazon EC2 和 CloudWatch 的访问权限。

**为数据迁移创建 IAM 角色**

1. 登录 AWS 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**角色**。

1. 选择**创建角色**。

1. 在**选择可信实体**页面中，在**可信实体类型**下选择 **AWS 服务**。对于**其他 AWS 服务的应用场景**，选择 **DMS**。

1. 选中 **DMS** 复选框，然后选择**下一步**。

1. 在**添加权限**页面上，选择之前创建的 **HomogeneousDataMigrationsPolicy**。选择**下一步**。

1. 在**命名、检查并创建**页面上，在**角色名称**中输入 **HomogeneousDataMigrationsRole**，然后选择**创建角色**。

1. 在**角色**页面上，在**角色名称**中输入 **HomogeneousDataMigrationsRole**。选择 **HomogeneousDataMigrationsRole**。

1. 在 **HomogeneousDataMigrationsRole** 页面上，选择**信任关系**选项卡。选择**编辑信任策略**。

1. 在**编辑信任策略**页面上，将以下 JSON 粘贴到编辑器中，替换现有文本。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "dms-data-migrations.amazonaws.com",
                       "dms.your_region.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   在以上示例中，请用您的 AWS 区域名称替换 *your\$1region*。

   上述基于资源的策略为 AWS DMS 服务主体提供了根据客户管理型 **HomogeneousDataMigrationsPolicy** 策略执行任务的权限。

1. 选择**更新策略**。

# 创建密钥访问策略和角色
<a name="USER_DMS_migration-IAM.secret-iam-role-policy"></a>

按照以下步骤创建您的密钥访问策略和角色，允许 DMS 访问源数据库和目标数据库的用户凭证。

**创建密钥访问策略和角色，以允许 Amazon RDS 访问 AWS Secrets Manager，从而访问相应的密钥**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 AWS Identity and Access Management（IAM）控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 选择**策略**，然后选择**创建策略**。

1. 选择 **JSON** 并输入以下策略，以启用对密钥的访问和解密。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:SecretName-ABCDEF"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:DescribeKey"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
           }
       ]
   }
   ```

------

   此处，`secret_arn` 是密钥的 ARN，您可以根据需要从任一 `SecretsManagerSecretId` 中获取，`kms_key_arn` 是您用于加密密钥的 AWS KMS 密钥的 ARN，如以下示例所示。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "arn:aws:secretsmanager:us-east-2:123456789012:secret:MySQLTestSecret-qeHamH"
           },
           {
                "Effect": "Allow",
                "Action": [
                           "kms:Decrypt",
                           "kms:DescribeKey"
                         ],
                "Resource": "arn:aws:kms:us-east-2:123456789012:key/761138dc-0542-4e58-947f-4a3a8458d0fd"
           }
        ]
   }
   ```

------
**注意**  
如果您使用 AWS Secrets Manager 创建的默认加密密钥，则无需为 `kms_key_arn` 指定 AWS KMS 权限。  
如果您希望策略提供对两个密钥的访问权限，只需为另一个 *secret\$1arn* 指定一个额外的 JSON 资源对象。

1. 查看并创建具友好名称和描述（可选）的策略。

1. 选择**角色**，然后选择**创建角色**。

1. 选择 **AWS 服务**作为可信实体的类型。

1. 从服务列表中选择 **DMS** 作为可信服务，然后选择**下一步：权限**。

1. 查找并附加您在步骤 4 中创建的策略，然后继续添加所有标签并查看角色。此刻，编辑角色的信任关系，以使用 Amazon RDS 区域服务主体作为可信实体。此主体采用以下格式。

   ```
   dms.region-name.amazonaws.com
   ```

   此处，*`region-name`* 是区域的名称，如 `us-east-1`。因此，此区域的 Amazon RDS 区域服务主体如下。

   ```
   dms.us-east-1.amazonaws.com
   dms-data-migrations.amazonaws.com
   ```

# 为 AWS DMS 创建 IAM 角色以管理 Amazon VPC
<a name="USER_DMS_migration-IAM.dms-vpc-role"></a>

您必须为 AWS DMS 创建 IAM 角色，才能管理资源的 VPC 设置。要成功迁移，此角色必须可用。

**为数据库迁移创建 `dms-vpc-role`**

1. 登录 AWS 管理控制台，然后打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在控制台的导航窗格中，选择 **Roles**，然后选择 **Create role**。

1. 对于**选择可信实体**选项，选择 **AWS 服务**选项。

   对于**使用案例**，选择 **DMS**。

1. 对于**添加权限**步骤，选择 `AmazonDMSVPCManagementRole` 并选择**下一步**。

1. 在**命名、查看和创建**页面中，将**角色名称**设置为 `dms-vpc-role`，并选择**创建角色**。

这样将为 DMS 创建角色来管理用于迁移的 VPC 设置。

# 为 EC2 数据库设置数据迁移
<a name="USER_DMS_migration-SetUp"></a>

要从 EC2 源数据库开始迁移数据，您必须创建一个等效的 RDS 数据库。有关创建数据库的说明，请参阅 [创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)。

创建目标数据库后，使用以下步骤设置数据迁移：

**设置数据迁移项目**

1. 在 RDS 控制台的**数据库**页面上选择目标数据库。

1. 选择**操作**下拉列表并选择**从 EC2 数据库迁移数据**选项。要查看支持的目标数据库，请参阅 [限制](USER_DMS_migration.md#USER_DMS_migration-Limitations)。

1. 在**选择源 EC2 数据库**部分下：

   1. 检查**引擎类型**并确保它与源数据库相同。

      另外，请检查引擎版本是否兼容。

   1. 对于 **EC2 实例**，请选择您的源数据库所驻留的 EC2 实例。

   1. 在**端口**中，输入源数据库允许流量的端口。

   1. 对于**密钥**，如果您没有现有密钥，请选择**创建和使用新密钥**。为您的源数据库输入**用户名**和**密码**。此外，选择要用于加密该密钥的 KMS 密钥。

      如果您有现有密钥，请选择**使用现有密钥**，然后从下拉列表中选择密钥。

   1. 对于**密钥的 IAM 角色**，如果您有现有的 IAM 角色，请选择**使用现有的 IAM 角色**，然后从下拉列表中选择一个可以访问上一步中的密钥 ID 的 IAM 角色。

      如果您没有现有的 IAM 角色，请选择**创建和使用新的 IAM 角色**。为 **IAM 角色名称输入您的角色的新名称。您可以在下面的链接中查看与此角色关联的权限。**

1. 在**查看目标 RDS 数据库**部分下：

   1. 在该部分顶部，确认目标数据库的设置。

   1. 对于**密钥**，如果您没有保存目标数据库凭证的现有密钥，请选择**创建和使用新密钥**。

      如果您有现有密钥，请从下拉列表中选择该密钥。

   1. 对于**密钥的 IAM 角色**，选择可以访问上一步中密钥的 IAM 角色。如果您没有现有 IAM 角色，还可以创建一个新 IAM 角色。

      如果下拉列表未填充 IAM 角色，请以 `arn:aws:iam:account_id:role/roleName` 格式指定 **IAM 角色 ARN**。

1. 在**配置数据迁移**部分下：

   1. 从**完全加载**、**完全加载和更改数据捕获（CDC）**或**更改数据捕获（CDC）**中选择数据迁移的类型。有关这些选项的详细信息，请参阅[概述](USER_DMS_migration.md#USER_DMS_migration-overview)。

      迁移开始后，您无法修改迁移类型。

   1. 对于**数据迁移的 IAM 角色**，如果您有现有的 IAM 角色，请选择**使用现有的 IAM 角色**，然后从下拉列表中选择一个 IAM 角色，该角色将授予 DMS 创建迁移所需资源的权限。如果您没有现有的 IAM 角色，请选择**创建和使用新的 IAM 角色**。

1. 确认**查看迁移设置**选项卡显示了成功设置数据迁移所需的设置。

1. 选择**迁移**以完成迁移设置。

完成这些步骤后，您可以通过在控制台的进度横幅中选择**查看详细信息**来查看正在为数据迁移设置的资源。设置好所需资源后，迁移将自动开始。如果您创建 

要将多个数据库迁移到目标数据库，请使用有关新 EC2 数据库的详细信息重新开始此过程。

# 管理数据迁移
<a name="USER_DMS_migration.Managing"></a>

从 RDS 控制台使用**从 EC2 数据库迁移数据**操作后，RDS 会自动启动迁移。

如果您使用 AWS DMS 控制台创建迁移资源，则可以启动迁移过程。

## 启动数据迁移
<a name="USER_DMS_migration.Managing.Start"></a>

请按照以下步骤启动数据迁移：

**启动数据迁移**

1. 在 RDS 控制台的**数据库**页面上选择目标数据库。

1. 在数据库详细信息页面上，选择**数据迁移**选项卡。

1. 在**数据迁移**选项卡下，**关联的数据迁移**列出了可用的数据迁移。

   设置所需资源后，使用 RDS 控制台设置的迁移会自动启动。

   使用 DMS 控制台设置的迁移将设置为**就绪**。

   要开始这些迁移，请选择**操作**下拉列表并选择**启动**。

1. 这样将开始 EC2 数据库的数据迁移。

## 停止数据迁移
<a name="USER_DMS_migration.Managing.Stop"></a>

对于复制类型为完全加载的数据迁移，停止迁移会导致迁移过程停止且无法恢复。停止迁移后，必须重新启动迁移。

对于复制类型设置为更改数据捕获（CDC）或完全加载和 CDC 的迁移，您可以停止持续复制过程，稍后再恢复该过程。

**停止数据迁移**

1. 在 RDS 控制台的**数据库**页面上选择目标数据库。

1. 在数据库详细信息页面上，选择**数据迁移**选项卡。

1. 在**数据迁移**选项卡下，**关联的数据迁移**列出了正在进行的数据迁移。

   要停止迁移，请选择数据迁移，然后在**操作**下拉列表中选择**停止**。

1. 这样将停止 EC2 数据库的数据迁移。

## 恢复数据迁移
<a name="USER_DMS_migration.Managing.Resuming"></a>

对于复制类型为完全加载和更改数据捕获（CDC）或更改数据捕获（CDC）迁移的数据迁移，您可以从最后一个停止点恢复 CDC 流程。

**恢复数据迁移**

1. 在 RDS 控制台的**数据库**页面上选择目标数据库。

1. 在数据库详细信息页面上，选择**数据迁移**选项卡。

1. 在**数据迁移**选项卡下，**关联的数据迁移**列出了已停止的数据迁移。

   要恢复迁移，请选择数据迁移，然后在**操作**下拉列表中选择**恢复处理**。

1. 这样将恢复 EC2 数据库的数据迁移。

## 删除数据迁移
<a name="USER_DMS_migration.Managing.Deleting"></a>

要删除关联的数据迁移，请使用以下说明：

**删除数据迁移**

1. 在 RDS 控制台的**数据库**页面上选择目标数据库。

1. 在数据库详细信息页面上，选择**数据迁移**选项卡。

1. 要删除迁移，请选择数据迁移，然后在**操作**下拉列表中选择**删除**。

1. 这样将删除相应的数据迁移。

删除正在进行的数据迁移不会影响已加载到目标数据库的任何数据。

## 重新启动数据迁移
<a name="USER_DMS_migration.Managing.Restarting"></a>

要从 CDC 起点重新启动关联的数据迁移，请按照以下说明进行操作。

**重新启动数据迁移**

1. 在 RDS 控制台的**数据库**页面上选择目标数据库。

1. 在数据库详细信息页面上，选择**数据迁移**选项卡。

1. 要重新启动迁移，请选择数据迁移，然后在**操作**下拉列表中选择**重新启动**。

1. 这样将从 CDC 起点重新启动数据迁移。

重新启动正在进行的数据迁移不会影响已加载到目标数据库的任何数据。

# 监控数据迁移
<a name="USER_DMS_migration.Monitoring"></a>

数据迁移开始后，您可以监控其状态和进度。大型数据集的数据迁移需要数小时才能完成。为了保持数据迁移的可靠性、可用性和高性能，请定期监控迁移进度。

**检查数据迁移的状态和进度**

1. 在 RDS 控制台的**数据库**页面上选择目标数据库。

1. 在数据库详细信息页面上，选择**数据迁移**选项卡。

1. **关联的数据迁移**部分列出了您的数据迁移。检查**状态**列。

1. 对于正在运行的数据迁移，**迁移过程**列显示了已迁移数据的百分比。

1. 要在 CloudWatch 中监控进程，请使用 **CloudWatch** 列中的链接。

## 迁移状态
<a name="USER_DMS_migration.Monitoring.status"></a>

对于您运行的每个数据迁移，RDS 控制台都会显示**状态**。以下列表包括状态：
+ `Ready`：数据迁移已准备好开始。
+ `Starting`：RDS 正在为您的数据迁移创建无服务器环境。
+ `Load running`：RDS 正在执行完全加载迁移。
+ `Load complete, replication ongoing`：RDS 已完成完全加载，现在复制正在进行的更改。此状态仅适用于完全加载和 CDC 类型的迁移。
+ `Replication ongoing`：RDS 正在复制正在进行的更改。此状态仅适用于 CDC 类型的迁移。
+ `Stopping`：RDS 正在停止数据迁移。当您从**操作**菜单中选择停止数据迁移时，此状态适用。
+ `Stopped`：RDS 已停止数据迁移。
+ `Failed`：数据迁移已失败。有关更多信息，请参阅日志文件。
+ `Restarting`：数据迁移已从 CDC 起点重新启动了正在进行的数据复制。

# 教程：使用自定义参数和新选项组创建 MySQL 数据库实例
<a name="tutorial-creating-custom-OPG"></a>

在本教程中，您将使用自定义参数和新选项组，来创建 MySQL 数据库实例。有关自定义参数和选项组的更多信息，请参阅 [Amazon RDS 的参数组](USER_WorkingWithParamGroups.md) 和[使用选项组](USER_WorkingWithOptionGroups.md)。

**重要**  
创建 AWS 账户并不会收费；但是，在完成本教程过程中使用 AWS 资源可能会产生费用。完成本教程后，如果不再需要这些资源，可以将其删除。

要使用自定义配置和设置创建数据库实例，您可以使用自定义参数和选项组。如果您使用多个数据库并希望为实例集统一配置设置，则自定义参数和新选项组特别有用。

通过完成这些步骤，您将学习：
+ 如何使用 Amazon RDS，通过自定义参数和新选项组创建 MySQL 数据库实例。
+ 如何为 MySQL 数据库实例使用特定的参数和选项。

要完成本教程，请执行以下任务：

1. 使用 MySQL 参数 `default_password_lifetime` 和 `disconnect_on_expired_password` 创建一个自定义参数组。

1. 使用 MySQL 选项功能 `MariaDB Audit Plugin` 创建新的选项组。有关创建选项组的步骤，请参阅[使用选项组](USER_WorkingWithOptionGroups.md)。

1. 使用您创建的自定义参数组和新选项组创建 MySQL 数据库实例。

**Topics**
+ [先决条件](#tutorial-creating-custom-OPG.Prerequisites)
+ [创建 Amazon RDS参数组](#tutorial-creating-custom-OPG.create-parameter-group)
+ [修改自定义参数组中的参数值](#tutorial-creating-custom-OPG.add-parameters)
+ [创建新的 Amazon RDS 选项组](#tutorial-creating-custom-OPG.create-option-group)
+ [将选项添加到新选项组](#tutorial-creating-custom-OPG.add-options)
+ [使用自定义参数和新选项组创建 MySQL 数据库实例](#tutorial-creating-custom-OPG.create-OPG)

## 先决条件
<a name="tutorial-creating-custom-OPG.Prerequisites"></a>

本教程要求您拥有一个 AWS 账户和一个具有管理权限的用户。如果您还没有设置这些内容，请完成以下各节中的步骤：
+ [注册 AWS 账户](CHAP_SettingUp.md#sign-up-for-aws)
+ [创建具有管理访问权限的用户](CHAP_SettingUp.md#create-an-admin)

## 创建 Amazon RDS参数组
<a name="tutorial-creating-custom-OPG.create-parameter-group"></a>

在本教程中，您将了解如何在控制台中为 MySQL 数据库实例创建一个具有 [default\$1password\$1lifetime](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_password_lifetime) 和 [disconnect\$1on\$1expired\$1password](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_disconnect_on_expired_password) 的自定义参数组。`default_password_lifetime` 参数控制客户端密码自动过期之前的天数。`disconnect_on_expired_password` 参数控制密码到期后 MySQL 数据库实例是否断开与客户端的连接。有关可用于 MySQL 数据库实例的其它参数的更多信息，请参阅 [MySQL 的参数](Appendix.MySQL.Parameters.md)。

**创建参数组**

1. 打开 Amazon RDS 控制台，然后选择**参数组**。

1. 对于**自定义参数组**，选择**创建参数组**。

1. 设置参数组详细信息。

   1. 输入参数组的名称。

   1. 输入参数组的描述。

   1. 对于**引擎类型**，选择 **MySQL 社区**。

   1. 对于**参数组系列**，选择 **MySQL 8.0。**

1. 选择**创建**。

新的参数组将显示在 Amazon RDS 控制台的**参数组**页面上。以下步骤说明如何修改参数值以自定义参数组。

## 修改自定义参数组中的参数值
<a name="tutorial-creating-custom-OPG.add-parameters"></a>

使用以下步骤修改您在[创建 Amazon RDS参数组](#tutorial-creating-custom-OPG.create-parameter-group)中创建的参数组中的参数值。

**修改参数组中的参数值**

1. 打开 Amazon RDS 控制台，然后选择**参数组**。

1. 对于**自定义参数组**，请选择您创建的参数组的名称。

1. 选择**编辑**。

1. 在**筛选参数**搜索框中，搜索自定义参数 `default_password_lifetime`。

1. 选中参数旁边的复选框，并输入要为此密码生命周期参数设置的天数值。

1. 选择**保存更改**。

1. 对参数 ` disconnect_on_expired_password` 重复相同的步骤。当您选择此参数时，系统会提示您从下拉菜单中选择 0 或 1 的值。选择 1 可在密码过期时断开连接。

自定义参数组现在可以与 Amazon RDS for MySQL 8.0 数据库实例相关联。接下来，为数据库实例创建新选项组。

## 创建新的 Amazon RDS 选项组
<a name="tutorial-creating-custom-OPG.create-option-group"></a>

使用 [MariaDB 审计插件](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html)选项创建新选项组。此插件记录服务器活动以确保安全性和合规性。有关可用于 MySQL 数据库实例的其它自定义选项的更多信息，请参阅[适用于 MySQL 数据库实例的选项](Appendix.MySQL.Options.md)。

**创建选项组**

1. 打开 Amazon RDS 控制台，然后选择**选项组**。

1. 对于**选项组**，选择**创建组**。

1. 设置选项组详细信息。
   + 输入选项组的名称。
   + 输入选项组的描述。
   + 对于**引擎**，选择 **mysql**。
   + 对于**主要引擎版本**，选择 **8.0**。

1. 选择**创建**。

新的选项组将显示在 Amazon RDS 控制台的**选项组**页面上。以下步骤显示了如何将选项添加到选项组。

## 将选项添加到新选项组
<a name="tutorial-creating-custom-OPG.add-options"></a>

使用以下步骤将选项添加到您在[创建新的 Amazon RDS 选项组](#tutorial-creating-custom-OPG.create-option-group)中创建的新选项组。

**将选项添加到选项组**

1. 打开 Amazon RDS 控制台，然后选择**选项组**。

1. 对于**选项组**，选择您创建的选项组的名称。

1. 在**选项**下，选择**添加选项**。

1. 设置选项组详细信息。
   + 对于**选项名称**，选择选项 MariaDB 审计插件 **MARIADB\$1AUDIT\$1PLUGIN**。
   + 对于**选项设置**，使所有默认选项保持选中状态。
   + 对于**立即应用**，选择**是**。

1. 选择**创建选项**。

现在，新选项组应可用于所有关联的数据库实例。接下来，使用自定义参数和新选项组创建一个 MySQL 数据库实例。

## 使用自定义参数和新选项组创建 MySQL 数据库实例
<a name="tutorial-creating-custom-OPG.create-OPG"></a>

最后，使用您在前面的步骤中创建的自定义参数和新选项组，创建 MySQL 数据库实例。以下步骤显示了如何使用自定义参数和新选项组创建 MySQL 数据库实例。

**使用自定义参数和新选项组创建数据库实例**

1. 打开 Amazon RDS 控制台并选择**数据库**。

1. 选择**创建数据库**。

1. 对于**选择数据库创建方法**，选择**标准创建**。

1. 对于**引擎选项**，选择 **MySQL**。

1. 对于**可用性和耐久性**，选择**单个数据库实例**。此步骤是支持自定义参数或新选项组所必需的。

1. 选择**其它配置**。
   + 对于**初始数据库名称**，为数据库实例选择名称。
   + 在**数据库参数组**下拉列表中，选择您之前创建的自定义参数组的名称。
   + 在**选项组**下拉列表下，选择您之前创建的新选项组的名称。

1. 对于本教程，可以保留任何其它数据库设置的默认设置，也可以根据需要对其进行修改。

1. 选择**创建数据库**。

RDS 使用自定义参数和新选项组创建新的 MySQL 数据库实例。要查看有关此数据库的更多信息，请参阅 Amazon RDS 控制台的**数据库**页面。

在本教程中，您使用自定义参数和新选项组，通过定制的设置配置了 MySQL 数据库实例。这个新创建的 MySQL 数据库实例使用 `default_password_lifetime` 参数来管理用户密码生命周期。此数据库实例还使用参数 `disconnect_on_expired_password` 断开使用过期密码进行连接的用户。还可以使用选项 `MariaDB Audit Plugin` 来保持跟踪服务器活动。要优化数据库，可以在自定义参数组中应用其它设置并添加选项。

 创建完自定义数据库实例后，应删除资源，以免产生不必要的费用。要删除数据库实例，请按照[删除数据库实例](USER_DeleteInstance.md)中的说明操作。