

# 升级 RDS Custom for Oracle 数据库实例


要升级您的 RDS Custom for Oracle 数据库实例，请将其修改为使用新的 CEV。此 CEV 可以包含新的数据库二进制文件或新的 AMI。例如，要将 Oracle Linux 7.9 数据库实例升级到 Oracle Linux 8，请指定使用 Oracle Linux 8 的最新 AMI。如果要升级数据库和操作系统，则必须分别执行两次升级。

**注意**  
如果升级数据库，RDS Custom 会在升级主数据库实例后自动升级只读副本。如果升级操作系统，则必须手动升级副本。

开始之前，请查看 [RDS Custom for Oracle 升级的要求](custom-upgrading.md#custom-upgrading-reqs)和 [RDS Custom for Oracle 数据库升级注意事项](custom-upgrading-considerations.md)。

## 控制台


**升级 RDS Custom for Oracle 数据库实例**

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

1. 在导航窗格中，选择**数据库**，然后选择要升级的 RDS Custom for Oracle 数据库实例。

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

1. 对于**数据库引擎版本**，请选择新的 CEV。执行以下操作：
   + 如果您要修补数据库，请确保 CEV 指定的数据库二进制文件与数据库实例所用的二进制文件不同，并且不指定与数据库实例当前所用 AMI 不同的 AMI。
   + 如果您要修补操作系统，请确保 CEV 指定的 AMI 与数据库实例当前所用的 AMI 不同，并且不指定不同的数据库二进制文件。
**警告**  
修补操作系统时，会丢失根卷数据和任何现有的操作系统自定义项。

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

   请选择 **Apply immediately**（立即应用）以立即应用更改。

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

## Amazon CLI


以下示例显示了可能的升级方案。这些示例假设您创建了具有以下特征的 RDS Custom for Oracle 数据库实例：
+ 数据库实例名为 `my-custom-instance`
+ CEV 名为 `19.my_cev1`
+ 使用非 CDB 架构的 Oracle Database 19c
+ 使用 AMI `ami-1234` 的 Oracle Linux 8

提供最新服务的 AMI 是 `ami-2345`。您可以通过运行 CLI 命令 `describe-db-engine-versions` 找到您的 AMI：

**Topics**
+ [

### 升级操作系统
](#custom-upgrading-modify.CLI.os)
+ [

### 升级数据库
](#custom-upgrading-modify.CLI.db)

### 升级操作系统


在本示例中，您要将 `ami-1234` 升级到 `ami-2345`，即提供最新服务的 AMI。由于这是操作系统升级，所以 `ami-1234` 和 `ami-2345` 的数据库二进制文件必须相同。您可以基于 `19.my_cev1` 创建一个名为 `19.my_cev2` 的新 CEV。

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

```
aws rds create-custom-db-engine-version \
    --engine custom-oracle-ee \
    --engine-version 19.my_cev2 \
    --description "Non-CDB CEV based on ami-2345" \
    --kms-key-id key-name \
    --source-custom-db-engine-version-identifer arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12345678-ab12-1234-cde1-abcde123456789 \
    --image-id ami-2345
```
对于 Windows：  

```
aws rds create-custom-db-engine-version ^
    --engine custom-oracle-ee ^
    --engine-version 19.my_cev2 ^
    --description "Non-CDB CEV based on ami-2345" ^
    --kms-key-id key-name ^
    --source-custom-db-engine-version-identifer arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12345678-ab12-1234-cde1-abcde123456789 ^
    --image-id ami-2345
```

要升级 RDS Custom 数据库实例，请使用带有下列参数的 [modify-db-instance](https://docs.amazonaws.cn/cli/latest/reference/rds/modify-db-instance.html) Amazon CLI 命令：
+ `--db-instance-identifier` – 指定要升级的 RDS Custom for Oracle 数据库实例。
+ `--engine-version` – 指定具有新 AMI 的 CEV。
+ `--no-apply-immediately` \$1 `--apply-immediately` – 指定是立即执行升级还是等到计划的维护时段

以下示例将 `my-custom-instance` 升级到版本 `19.my_cev2`。只升级了操作系统。

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

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --engine-version 19.my_cev2 \
    --apply-immediately
```
对于 Windows：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --engine-version 19.my_cev2 ^
    --apply-immediately
```

### 升级数据库


在此示例中，您希望将 Oracle 补丁 p35042068 应用到 RDS for Oracle 数据库实例。由于您在[升级操作系统](#custom-upgrading-modify.CLI.os)中升级了操作系统，因此您的数据库实例当前正在使用 `19.my_cev2`，其基于 `ami-2345`。您创建了一个名为 `19.my_cev3` 的新 CEV，该 CEV 也使用 `ami-2345`，但您在 `$MANIFEST` 环境变量中指定一个新的 JSON 清单。因此，只有新 CEV 中的数据库二进制文件与您的实例当前所用的 CEV 不同。

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

```
aws rds create-custom-db-engine-version \
    --engine custom-oracle-ee \
    --engine-version 19.my_cev3 \
    --description "Non-CDB CEV with p35042068 based on ami-2345" \
    --kms-key-id key-name \
    --image-id ami-2345 \
    --manifest $MANIFEST
```
对于 Windows：  

```
aws rds create-custom-db-engine-version ^
    --engine custom-oracle-ee ^
    --engine-version 19.my_cev3 ^
    --description "Non-CDB CEV with p35042068 based on ami-2345" ^
    --kms-key-id key-name ^
    --image-id ami-2345 ^
    --manifest $MANIFEST
```

以下示例将 `my-custom-instance` 升级到引擎版本 `19.my_cev3`。只升级了数据库。

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

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --engine-version 19.my_cev3 \
    --apply-immediately
```
对于 Windows：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --engine-version 19.my_cev3 ^
    --apply-immediately
```