

# 自定义 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": []
    }
```