

# 使用选项组
<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`