

# 管理 Amazon RDS Custom for Oracle 数据库实例
<a name="custom-managing"></a>

Amazon RDS Custom 支持 Amazon RDS 数据库实例的常见管理任务子集。在下文中，您可以找到使用 AWS 管理控制台和 AWS CLI 的受支持的 RDS Custom for Oracle 管理任务的说明。

**Topics**
+ [在 RDS Custom for Oracle 中使用容器数据库（CDB）](custom-managing.multitenant.md)
+ [使用 RDS Custom for Oracle 的高可用性特征](custom-managing.ha.md)
+ [自定义 RDS Custom 环境](custom-managing.customizing-env.md)
+ [修改 RDS Custom for Oracle 数据库实例](custom-managing.modifying.md)
+ [更改 RDS Custom for Oracle 数据库实例的字符集](custom-managing.character-set.md)
+ [在 RDS Custom for Oracle 中设置 NLS\$1LANG 值](custom-managing.nlslang.md)
+ [支持透明数据加密](#custom-managing.tde)
+ [为 RDS Custom for Oracle 资源添加标签](custom-managing.tagging.md)
+ [删除 RDS Custom for Oracle 数据库实例](custom-managing.deleting.md)

# 在 RDS Custom for Oracle 中使用容器数据库（CDB）
<a name="custom-managing.multitenant"></a>

您可以使用 Oracle 多租户架构（`custom-oracle-ee-cdb` 或 `custom-oracle-se2-cdb` 引擎类型）或传统的非 CDB 架构（`custom-oracle-ee` 或 `custom-oracle-se2` 引擎类型）创建 RDS Custom for Oracle 数据库实例。创建容器数据库（CDB）时，它包含一个可插拔数据库（PDB）和一个 PDB 种子。您可以使用 Oracle SQL 手动创建其他 PDB。

## PDB 和 CDB 名称
<a name="custom-managing.pdb-names"></a>

创建 RDS Custom for Oracle CDB 实例时，您需要为初始 PDB 指定名称。默认情况下，初始 PDB 命名为 `ORCL`。您可以选择其他名称。

默认情况下，您的 CDB 命名为 `RDSCDB`。您可以选择其他名称。CDB 名称也是您的 Oracle 系统标识符（SID）的名称，它唯一标识管理 CDB 的内存和进程。有关 Oracle SID 的更多信息，请参阅《Oracle 数据库概念》**中的 [Oracle 系统标识符（SID）](https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/oracle-database-instance.html#GUID-8BB8140D-63ED-454E-AAC3-1964F80D102D)。

您无法使用 Amazon RDS API 重命名现有 PDB。您也无法使用 `modify-db-instance` 命令重命名 CDB。

## PDB 管理
<a name="custom-managing.pdb-creation"></a>

在 RDS Custom for Oracle 责任共担模式下，您负责管理 PDB 和创建任何其他 PDB。RDS Custom 不限制 PDB 的数量。您可以通过连接到 CDB 根目录并运行 SQL 语句来手动创建、修改和删除 PDB。在 Amazon EBS 数据卷上创建 PDB，以防止数据库实例超出支持边界。

要修改 CDB 或 PDB，请完成以下步骤：

1. 暂停自动化以防止干扰 RDS Custom 操作。

1. 修改您的 CDB 或 PDB。

1. 备份任何修改过的 PDB。

1. 恢复 RDS Custom 自动化。

## CDB 根目录的自动恢复
<a name="custom-managing.cdb-root"></a>

RDS Custom 保持 CDB 根目录处于打开状态的方式与保持非 CDB 打开的方式相同。如果 CDB 根目录的状态发生变化，监控和恢复自动化会尝试将 CDB 根目录恢复到所需状态。与非 CDB 架构类似，当根 CDB 关闭（`RDS-EVENT-0004`）或重新启动（`RDS-EVENT-0006`）时，您会收到 RDS 事件通知。RDS Custom 尝试在数据库实例启动时以 `READ WRITE` 模式打开所有 PDB。如果某些 PDB 无法打开，RDS Custom 会发布以下事件：`tenant database shutdown`。

# 使用 RDS Custom for Oracle 的高可用性特征
<a name="custom-managing.ha"></a>

RDS Custom for Oracle 通过多可用区部署提供内置的高可用性。或者，您可以根据自己的使用案例将 Oracle Data Guard 用作客户自主管理型选项。

## 多可用区部署（完全托管式）
<a name="rds-custom-oracle-multiaz-deployments"></a>

借助 RDS Custom for Oracle 的多可用区部署，Amazon RDS 自动在不同的可用区（AZ）中预置和维护一个同步备用副本。主数据库实例可以跨可用区同步复制到备用副本，以实现数据冗余。企业版和标准版 2 都支持多可用区部署。有关详细信息，请参阅 [管理 RDS Custom for Oracle 的多可用区部署](custom-oracle-multiaz.md)。

## Oracle Data Guard（客户自主管理型）
<a name="rds-custom-oracle-data-guard"></a>

或者，您可以通过手动配置 Oracle Data Guard 以便在 RDS Custom for Oracle 数据库实例之间复制数据，从而实现高可用性。主数据库实例会自动将数据同步到备用实例。Oracle Data Guard 仅在企业版中受支持。

您可以通过以下方式配置高可用性环境：
+ 在不同可用区中配置备用实例，以应对可用区故障。
+ 将备用数据库置于挂载模式或只读模式。只读模式需要 Oracle Active Data Guard 许可证。
+ 故障转移或从主数据库切换到备用数据库，而不会丢失数据。
+ 通过为本地实例配置高可用性，然后失效转移或切换到 RDS Custom for Oracle 备用数据库来迁移数据。

要了解如何配置 Oracle Data Guard 来实现高可用性，请参阅 AWS 博客 [Build high availability for RDS Custom for Oracle using read replicas](https://aws.amazon.com/blogs/database/build-high-availability-for-amazon-rds-custom-for-oracle-using-read-replicas/)。您可以执行以下任务：
+ 使用虚拟专用网络 (VPN) 隧道为您的高可用性实例进行传输中的数据加密。RDS Custom for Oracle 不会自动配置传输中加密。
+ 配置 Oracle 快速故障转移观察器 (FSFO) 以监控您的高可用性实例。
+ 在满足必要条件时，允许观察期执行自动故障转移。

# 自定义 RDS Custom 环境
<a name="custom-managing.customizing-env"></a>

RDS Custom for Oracle 包含内置特征，允许您在不暂停自动化的情况下自定义数据库实例环境。例如，您可以使用 RDS API 自定义您的环境，如下所示：
+ 创建和还原数据库快照以创建克隆环境。
+ 创建只读副本。
+ 修改存储设置。
+ 更改 CEV 以应用版本更新

对于某些自定义，例如更改字符集，您不能使用 RDS API。在这些情况下，您需要通过以根用户身份访问 Amazon EC2 实例或以 `SYSDBA` 身份登录 Oracle 数据库来手动更改环境。

要手动自定义您的实例，您必须暂停并恢复 RDS Custom 自动化。这一暂停可确保您的自定义项不会干扰 RDS Custom 自动化。通过这种方式，您可以避免突破支持边界，这会将实例置于 `unsupported-configuration` 状态，直到您修复底层问题为止。修改 RDS Custom for Oracle 数据库实例时，暂停和恢复是唯一受支持的自动化任务。

## 自定义 RDS Custom 环境的一般步骤
<a name="custom-managing.pausing.general-steps"></a>

要自定义 RDS Custom 数据库实例，请完成以下步骤：

1. 使用控制台或 CLI 在指定的时间内暂停 RDS Custom 自动化 

1. 识别您的底层 Amazon EC2 实例。

1. 通过使用 SSH 密钥或 AWS Systems Manager 连接到底层 Amazon EC2 实例。

1. 在数据库或操作系统层验证您的当前配置设置。

   您可以通过将初始配置与更改的配置进行比较来验证您的更改。根据自定义类型，使用操作系统工具或数据库查询。

1. 根据需要自定义 RDS Custom for Oracle 数据库实例。

1. 如果需要，重启您的实例或数据库。
**注意**  
在本地 Oracle CDB 中，您可以使用内置命令或在启动触发器之后为 PDB 保留指定的打开模式。当 CDB 重新启动时，此机制使 PDB 进入指定状态。打开 CDB 时，RDS Custom 自动化会丢弃任何用户指定的保留状态，并尝试打开所有 PDB。如果 RDS Custom 无法打开所有 PDB，则会发出以下事件：`The following PDBs failed to open: list-of-PDBs`。

1. 通过将您的新配置设置与以前的设置进行比较，对其进行验证。

1. 通过以下任一方式恢复 RDS Custom 自动化：
   + 手动恢复自动化。
   + 等待暂停期结束。在这种情况下，RDS Custom 会自动恢复监控和实例恢复。

1. 验证 RDS Custom 自动化框架

   如果您正确执行了上述步骤，RDS Custom 将启动自动备份。控制台中实例的状态显示为**可用**。

有关最佳实践和分步说明，请参阅 AWS 博客文章[对 Amazon RDS Custom for Oracle 实例进行配置更改：第 1 部分](https://aws.amazon.com/blogs/database/part-1-make-configuration-changes-to-an-amazon-rds-custom-for-oracle-instance/)和[重新创建 Amazon RDS Custom for Oracle 数据库：第 2 部分](https://aws.amazon.com/blogs/database/part-2-recreate-an-amazon-rds-custom-for-oracle-database/)。

## 暂停和恢复 RDS Custom 数据库实例
<a name="custom-managing.pausing"></a>

您可以使用控制台或 CLI 暂停和恢复数据库实例的自动化。

### 控制台
<a name="custom-managing.pausing.console"></a>

**要暂停或恢复 RDS Custom 自动化**

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

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

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

1. 对于 **RDS Custom automation mode**（RDS Custom 自动化模式），请选择以下选项之一：
   + **Paused**（已暂停）将暂停 RDS Custom 数据库实例的监控和实例恢复。为 **Automation mode duration**（自动化模式持续时间）输入您想要的暂停持续时间。最小值为 60 分钟（默认值）。最大值为 1440 分钟。
   + **Full automation**（完全自动化）将恢复自动化。

1. 请选择 **Continue**（继续），以查看修改摘要。

   将显示一条消息，表示 RDS Custom 将立即应用更改。

1. 如果更改正确无误，请选择 **Modify DB Instance**（修改数据库实例）。也可以选择 **Back (返回)** 编辑您的更改，或选择 **Cancel (取消)** 取消更改。

   在 RDS 控制台上，将显示修改的详细信息。如果您暂停了自动化，RDS Custom 数据库实例的 **Status**（状态）将指示 **Automation paused**（自动化已暂停）。

1. （可选）在导航窗格中，选择 **Databases (数据库)**，然后选择 RDS Custom 数据库实例。

   在 **Summary**（摘要）窗格中，**RDS Custom automation mode**（RDS Custom 自动化模式）表示自动化状态。如果自动化已暂停，则值为 **Paused（已暂停）。自动化将在 *num* 分钟内恢复**。

### AWS CLI
<a name="custom-managing.pausing.CLI"></a>

要暂停或恢复 RDS Custom 自动化，请使用 `modify-db-instance` AWS CLI 命令。使用必需的参数 `--db-instance-identifier` 识别数据库实例。使用以下参数控制自动化模式：
+ `--automation-mode` 指定数据库实例的暂停状态。有效值为 `all-paused`，它将暂停自动化，以及 `full`，它将恢复自动化。
+ `--resume-full-automation-mode-minutes` 指定暂停的持续时间。默认值为 60 分钟。

**注意**  
无论您是指定 `--no-apply-immediately` 还是 `--apply-immediately`，RDS Custom 都会尽快地异步应用修改。

在命令响应中，`ResumeFullAutomationModeTime` 以 UTC 时间戳表示恢复时间。当自动化模式为 `all-paused` 时，您可以使用 `modify-db-instance` 恢复自动化模式或延长暂停时间。不支持其他 `modify-db-instance` 选项。

以下示例将 `my-custom-instance` 的自动化暂停 90 分钟。

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

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode all-paused \
    --resume-full-automation-mode-minutes 90
```
对于：Windows  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode all-paused ^
    --resume-full-automation-mode-minutes 90
```

以下示例将暂停持续时间再延长 30 分钟。在 `ResumeFullAutomationModeTime` 中显示的原始时间中增加 30 分钟。

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

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode all-paused \
    --resume-full-automation-mode-minutes 30
```
对于：Windows  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode all-paused ^
    --resume-full-automation-mode-minutes 30
```

以下示例恢复 `my-custom-instance` 的完全自动化。

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

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode full \
```
对于：Windows  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode full
```
在以下部分示例输出中，待处理 `AutomationMode` 值为 `full`。  

```
{
    "DBInstance": {
        "PubliclyAccessible": true,
        "MasterUsername": "admin",
        "MonitoringInterval": 0,
        "LicenseModel": "bring-your-own-license",
        "VpcSecurityGroups": [
            {
                "Status": "active",
                "VpcSecurityGroupId": "0123456789abcdefg"
            }
        ],
        "InstanceCreateTime": "2020-11-07T19:50:06.193Z",
        "CopyTagsToSnapshot": false,
        "OptionGroupMemberships": [
            {
                "Status": "in-sync",
                "OptionGroupName": "default:custom-oracle-ee-19"
            }
        ],
        "PendingModifiedValues": {
            "AutomationMode": "full"
        },
        "Engine": "custom-oracle-ee",
        "MultiAZ": false,
        "DBSecurityGroups": [],
        "DBParameterGroups": [
            {
                "DBParameterGroupName": "default.custom-oracle-ee-19",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        ...
        "ReadReplicaDBInstanceIdentifiers": [],
        "AllocatedStorage": 250,
        "DBInstanceArn": "arn:aws:rds:us-west-2:012345678912:db:my-custom-instance",
        "BackupRetentionPeriod": 3,
        "DBName": "ORCL",
        "PreferredMaintenanceWindow": "fri:10:56-fri:11:26",
        "Endpoint": {
            "HostedZoneId": "ABCDEFGHIJKLMNO",
            "Port": 8200,
            "Address": "my-custom-instance.abcdefghijk.us-west-2.rds.amazonaws.com"
        },
        "DBInstanceStatus": "automation-paused",
        "IAMDatabaseAuthenticationEnabled": false,
        "AutomationMode": "all-paused",
        "EngineVersion": "19.my_cev1",
        "DeletionProtection": false,
        "AvailabilityZone": "us-west-2a",
        "DomainMemberships": [],
        "StorageType": "gp2",
        "DbiResourceId": "db-ABCDEFGHIJKLMNOPQRSTUVW",
        "ResumeFullAutomationModeTime": "2020-11-07T20:56:50.565Z",
        "KmsKeyId": "arn:aws:kms:us-west-2:012345678912:key/aa111a11-111a-11a1-1a11-1111a11a1a1a",
        "StorageEncrypted": false,
        "AssociatedRoles": [],
        "DBInstanceClass": "db.m5.xlarge",
        "DbInstancePort": 0,
        "DBInstanceIdentifier": "my-custom-instance",
        "TagList": []
    }
```

# 修改 RDS Custom for Oracle 数据库实例
<a name="custom-managing.modifying"></a>

修改 RDS Custom for Oracle 数据库实例与修改 Amazon RDS 数据库实例类似。您可以更改如下设置：
+ 数据库实例类
+ 存储分配和类型
+ 备份保留期
+ 删除保护
+ 选项组
+ CEV（请参阅[升级 RDS Custom for Oracle 数据库实例](custom-upgrading-modify.md)）
+ 端口

**Topics**
+ [修改数据库实例存储时的要求和限制](#custom-managing.storage-modify)
+ [修改数据库实例类时的要求和限制](#custom-managing.instance-class-reqs)
+ [修改实例类时 RDS Custom 如何创建数据库实例](#custom-managing.instance-class-resources)
+ [修改 RDS Custom for Oracle 数据库实例](#custom-managing.modifying.procedure)

## 修改数据库实例存储时的要求和限制
<a name="custom-managing.storage-modify"></a>

当您修改 RDS Custom for Oracle 数据库实例的存储时，应考虑以下要求和限制：
+ RDS Custom for Oracle 的最低分配存储空间为 40GiB，最大值为 64TiB。
+ 与 Amazon RDS 一样，您无法减少分配的存储。这是对 Amazon EBS 卷的限制。
+ RDS Custom 数据库实例不支持存储弹性伸缩。
+ 手动附加到 RDS Custom 数据库实例的任何存储卷都在支持外围之外。

  有关更多信息，请参阅 [RDS Custom 支持外围](custom-concept.md#custom-troubleshooting.support-perimeter)。
+ RDS Custom 不支持磁性（标准）Amazon EBS 存储。只能选择 io1、io2、gp2 或 gp3 SSD 存储类型。

有关 Amazon EBS 存储的更多信息，请参阅[Amazon RDS 数据库实例存储](CHAP_Storage.md)。有关存储修改的一般信息，请参阅[使用 Amazon RDS 数据库实例的存储](USER_PIOPS.StorageTypes.md)。

## 修改数据库实例类时的要求和限制
<a name="custom-managing.instance-class-reqs"></a>

当您修改 RDS Custom for Oracle 数据库实例的实例类时，应考虑以下要求和限制：
+ 数据库实例必须处于 `available` 状态。
+ 您的数据库实例在根卷、数据卷和二进制卷上必须至少有 100 MiB 的可用空间。
+ 使用默认弹性网络接口（ENI）时，您只能为 RDS Custom for Oracle 数据库实例分配单个弹性 IP（EIP）。如果您将多个 ENI 连接到数据库实例，修改操作将失败。
+ 所有 RDS Custom for Oracle 标签都必须存在。
+ 如果您使用 RDS Custom for Oracle 复制，请注意以下要求和限制：
  + 对于主数据库实例和只读副本，您一次只能更改一个数据库实例的实例类。
  + 如果您的 RDS Custom for Oracle 数据库实例具有本地主数据库或副本数据库，请确保在修改完成后手动更新本地数据库实例上的私有 IP 地址。此操作是保留 Oracle DataGuard 功能所必需的。修改成功后，RDS Custom for Oracle 会发布事件。
  + 当主数据库实例或只读副本数据库实例配置了 FSFO（快速启动失效转移）时，您无法修改 RDS Custom for Oracle 数据库实例类。

## 修改实例类时 RDS Custom 如何创建数据库实例
<a name="custom-managing.instance-class-resources"></a>

当您修改实例类时，RDS Custom 将按如下方式创建数据库实例：
+ 创建 Amazon EC2 实例。
+ 从最新的数据库快照创建根卷。RDS Custom for Oracle 不保留在最新数据库快照之后添加到根卷的信息。
+ 创建 Amazon CloudWatch 告警。
+ 如果删除了原始密钥对，则创建 Amazon EC2 SSH 密钥对。否则，RDS Custom for Oracle 保留原始密钥对。
+ 使用启动修改时附加到数据库实例的标签创建新资源。当新资源直接附加到底层资源时，RDS Custom 不会将标签传输到新资源。
+ 将包含最新修改的二进制和数据卷传输到新数据库实例。
+ 传输弹性 IP 地址（EIP）。如果数据库实例可公开访问，则在传输 EIP 之前，RDS Custom 会临时将公有 IP 地址附加到新的数据库实例。如果数据库实例不可供公开访问，则 RDS Custom 不创建公有 IP 地址。

## 修改 RDS Custom for Oracle 数据库实例
<a name="custom-managing.modifying.procedure"></a>

您可以使用控制台、AWS CLI 或 RDS API 修改数据库实例类或存储。

### 控制台
<a name="custom-managing.modifying.procedure.CON"></a>

**修改 RDS Custom for Oracle 数据库实例**

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

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

1. 选择要修改的数据库实例。

1. 选择**修改**。

1. （可选）在**实例配置**中，为**数据库实例类**选择一个值。有关支持的类，请参阅 [RDS Custom for Oracle 的数据库实例类支持](custom-oracle-feature-support.md#custom-reqs-limits.instances)。

1. （可选）在**存储**中，根据需要进行以下更改：

   1. 为 **Allocated Storage (分配的存储)** 输入新值。它必须大于当前值，且范围从 40GiB 到 64TiB。

   1. 将**存储类型**的值更改为**通用型 SSD（gp2）**、**通用型 SSD（gp3）**、**预调配 IOPS（io1）**或**预调配 IOPS（io2）**。

   1. 如果您指定的存储类型不是**通用型 SSD（gp2）**，则可以更改**预调配 IOPS** 值。

1. （可选）对于**其它配置**，根据需要执行以下更改：

   1. 对于**选项组**，选择新的选项组。有关更多信息，请参阅 [使用 RDS Custom for Oracle 中的选项组](custom-oracle-option-groups.md)。

1. 选择 **Continue (继续)**。

1. 选择 **Apply immediately**（立即应用）或 **Apply during the next scheduled maintenance window**（在下一个计划的维护时段内应用）。

1. 选择**修改数据库实例**。

### AWS CLI
<a name="custom-managing.modifying.procedure.CLI"></a>

要修改 RDS Custom for Oracle 数据库实例的存储，请使用 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI 命令。根据需要设置以下参数：
+ `--db-instance-class` – 一个新的实例类。有关支持的类，请参阅 [RDS Custom for Oracle 的数据库实例类支持](custom-oracle-feature-support.md#custom-reqs-limits.instances)。
+ `--allocated-storage` – 要为数据库实例分配的存储量（以 GiB 为单位）。它必须大于当前值，并且范围从 40 到 65536GiB。
+ `--storage-type` – 存储类型：gp2、gp3、io1 或 io2。
+ `--iops` – 如果使用 io1、io2 或 gp3 存储类型，则为数据库实例的预调配 IOPS。
+ `--apply-immediately` – 使用 `--apply-immediately` 可立即应用存储更改。

  或使用 `--no-apply-immediately`（默认设置）以在下一个维护时段内应用更改。

以下示例将 `my-cfo-instance` 的数据库实例类更改为 `db.m5.16xlarge`。该命令还将存储大小更改为 `1024`（1 TiB），将存储类型更改为 `io2`，将预调配 IOPS 更改为 `3000`，并将选项组更改为 `cfo-ee-19-mt`。

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

```
aws rds modify-db-instance \
    --db-instance-identifier my-cfo-instance \
    --db-instance-class db.m5.16xlarge \
    --storage-type io2 \
    --iops 3000 \
    --allocated-storage 1024 \
    --option-group cfo-ee-19-mt \
    --apply-immediately
```
对于：Windows  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-cfo-instance ^
    --db-instance-class db.m5.16xlarge ^
    --storage-type io2 ^
    --iops 3000 ^
    --allocated-storage 1024 ^
    --option-group cfo-ee-19-mt ^
    --apply-immediately
```

# 更改 RDS Custom for Oracle 数据库实例的字符集
<a name="custom-managing.character-set"></a>

RDS Custom for Oracle 默认使用字符集 US7ASCII。您可能需要指定不同的字符集以满足语言或多字节字符要求。使用 RDS Custom for Oracle 时，可以暂停自动化，然后手动更改数据库的字符集。

更改 RDS Custom for Oracle 数据库实例的字符集具有以下要求：
+ 您只能更改新预调配的 RDS 自定义实例上的字符，该实例具有空数据库或初学者数据库，其中没有应用程序数据。对于所有其他情况，请使用 DMU（Unicode 的数据库迁移助手）更改字符集。
+ 您只能更改为 RDS for Oracle 支持的字符集。有关更多信息，请参阅 [支持的数据库字符集](Appendix.OracleCharacterSets.md#Appendix.OracleCharacterSets.db-character-set.supported)。

**更改 RDS Custom for Oracle 数据库实例的字符集**

1. 暂停 RDS Custom 自动化。有关更多信息，请参阅 [暂停和恢复 RDS Custom 数据库实例](custom-managing.customizing-env.md#custom-managing.pausing)。

1. 以具有 `SYSDBA` 权限的用户身份登录数据库。

1. 在受限模式下重新启动数据库，更改字符集，然后以正常模式重新启动数据库。

   在 SQL 客户端中运行以下脚本：

   ```
   SHUTDOWN IMMEDIATE;
   STARTUP RESTRICT;
   ALTER DATABASE CHARACTER SET INTERNAL_CONVERT AL32UTF8;
   SHUTDOWN IMMEDIATE;
   STARTUP;
   SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';
   ```

   验证输出是否显示了正确的字符集：

   ```
   VALUE
   --------
   AL32UTF8
   ```

1. 恢复 RDS Custom 自动化。有关更多信息，请参阅 [暂停和恢复 RDS Custom 数据库实例](custom-managing.customizing-env.md#custom-managing.pausing)。

# 在 RDS Custom for Oracle 中设置 NLS\$1LANG 值
<a name="custom-managing.nlslang"></a>

*区域设置* 是一组满足语言和文化要求的信息，这些信息对应于给定的语言和国家/地区。要指定 Oracle 软件的区域设置行为，请在客户端主机上设置 `NLS_LANG` 环境变量。此变量设置客户端应用程序在数据库会话中使用的语言、区域和字符集。

对于 RDS Custom for Oracle，在 `NLS_LANG` 变量中只能设置语言：区域和字符使用默认值。语言用于 Oracle 数据库消息、排序规则、日期名称和月份名称。每种支持的语言都有一个唯一名称，例如美语、法语或德语。如果未指定语言，则值默认为美语。

创建 RDS Custom for Oracle 数据库后，可以在客户端主机上将 `NLS_LANG` 设置为英语以外的其他语言。要查看 Oracle 数据库支持的语言列表，请登录 RDS Custom for Oracle 数据库并运行以下查询：

```
SELECT VALUE FROM V$NLS_VALID_VALUES WHERE PARAMETER='LANGUAGE' ORDER BY VALUE;
```

可以在主机命令行上设置 `NLS_LANG`。以下示例使用 Linux 上的 Z Shell 将客户端应用程序的语言设置为德语。

```
export NLS_LANG=German
```

您的应用程序在启动时读取 `NLS_LANG` 值，然后在连接时将其传送给数据库。

有关更多信息，请参阅《Oracle 数据库全球化支持指南》**中的[使用 NLS\$1LANG 环境变量选择区域设置](https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/setting-up-globalization-support-environment.html#GUID-86A29834-AE29-4BA5-8A78-E19C168B690A)。

## 支持透明数据加密
<a name="custom-managing.tde"></a>

RDS Custom 支持 RDS Custom for Oracle 数据库实例的透明数据加密 (TDE)。

但是，您不能像在 RDS for Oracle 中那样使用自定义选项组中的选项启用 TDE。您可以手动打开 TDE。有关使用 Oracle 透明数据加密的信息，请参阅 Oracle 文档中的[使用透明数据加密保护存储数据安全](http://docs.oracle.com/cd/E11882_01/network.112/e40393/asotrans.htm#BABFGJAG)。

# 为 RDS Custom for Oracle 资源添加标签
<a name="custom-managing.tagging"></a>

您可以将 RDS Custom 资源与 Amazon RDS 资源一样标记，但有一些重要的区别：
+ 不要创建或修改 RDS Custom 自动化所需的 `AWSRDSCustom` 标签。如果您这样做，可能会破坏自动化。
+ `Name` 标签将添加到 RDS Custom 资源，前缀值为 `do-not-delete-rds-custom` 或 `rds-custom!oracle-do-not-delete`。任何客户传递的键值都将被覆盖。
+ 在创建过程中添加到 RDS Custom 数据库实例的标签将传播到所有其他相关 RDS Custom 资源。
+ 当您在创建数据库实例后将标签添加到 RDS Custom 资源时，标签不会传播。

有关资源标记的一般信息，请参阅[为 Amazon RDS 资源添加标签](USER_Tagging.md)。

# 删除 RDS Custom for Oracle 数据库实例
<a name="custom-managing.deleting"></a>

**警告**  
删除数据库实例是一项永久性操作。除非您有备份或快照，否则无法在删除数据库实例后恢复该实例。  
当您删除 RDS Custom 数据库实例时，AWS 会自动删除底层 Amazon EC2 实例和 EBS 卷。在通过 Amazon RDS 删除数据库实例之前，请勿手动终止 Amazon EC2 实例或删除 EBS 卷。手动删除这些资源会导致数据库实例删除和最终快照创建失败，从而无法进行恢复。

要删除 RDS Custom 数据库实例，请执行以下操作：
+ 提供数据库实例的名称。
+ 清除拍摄数据库实例的最终数据库快照的选项。
+ 选择或清除保留自动备份的选项。

您可以使用控制台或 CLI 删除 RDS Custom 数据库实例。删除数据库实例所需的时间可能会根据备份保留期（也即，要删除的备份数）以及删除的数据量而有所不同。

## 控制台
<a name="custom-managing.deleting.console"></a>

**要删除 RDS Custom 数据库实例**

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

1. 在导航窗格中，选择 **Databases (数据库)**，然后选择要删除的 RDS Custom 数据库实例。RDS Custom 数据库实例显示角色 **Instance (RDS Custom)**（实例 (RDS Custom)）。

1. 对于**操作**，选择**删除**。

1. 要保留自动备份，请选择 **Retain automated backups (保留自动备份)**。

1. 在框中输入 **delete me**。

1. 选择 **Delete**。

## AWS CLI
<a name="custom-managing.deleting.CLI"></a>

您可以通过使用 [delete-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-instance.html) AWS CLI 命令删除 RDS Custom 数据库实例。使用必需的参数 `--db-instance-identifier` 识别数据库实例。其余参数与 Amazon RDS 数据库实例的参数相同，但以下各项除外：
+ `--skip-final-snapshot` 是必需的。
+ `--no-skip-final-snapshot` 不受支持。
+ `--final-db-snapshot-identifier` 不受支持。

以下示例删除名为 `my-custom-instance` 的 RDS Custom 数据库实例，并保留自动备份。

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

```
aws rds delete-db-instance \
    --db-instance-identifier my-custom-instance \
    --skip-final-snapshot \
    --no-delete-automated-backups
```
对于：Windows  

```
aws rds delete-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --skip-final-snapshot ^
    --no-delete-automated-backups
```