

# 为创建 CEV 做准备
<a name="custom-cev.preparing"></a>

要创建 CEV，请访问存储在 Amazon S3 桶中的以下任意版本的安装文件和补丁：
+ Oracle Database 19c
+ Oracle Database 18c
+ Oracle Database 12c 第 2 版 (12.2)
+ Oracle Database 12c 第 1 版 (12.1)

例如，您可以将 2021 年 4 月的 RU/RUR 用于 Oracle Database 19c，也可以使用安装文件和补丁的任何有效组合。有关 RDS Custom for Oracle 支持的版本和区域的更多信息，请参阅[适用于 RDS for Oracle 的 RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.html#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.ora)。

**Topics**
+ [步骤 1（可选）：下载清单模板](#custom-cev.preparing.templates)
+ [步骤 2：从 Oracle 软件传输云下载数据库安装文件和补丁](#custom-cev.preparing.download)
+ [步骤 3：将安装文件上传到 Amazon S3](#custom-cev.preparing.s3)
+ [步骤 4（可选)：在 S3 中跨 AWS 账户共享您的安装媒体](#custom-cev.preparing.accounts)
+ [步骤 5：准备 CEV 清单](#custom-cev.preparing.manifest)
+ [步骤 6（可选）：验证 CEV 清单](#custom-cev.preparing.validating)
+ [步骤 7：添加必要的 IAM 权限](#custom-cev.preparing.iam)

## 步骤 1（可选）：下载清单模板
<a name="custom-cev.preparing.templates"></a>

*CEV 清单*是一个 JSON 文档，其中包含 CEV 的数据库安装 .zip 文件的列表。要创建 CEV，请执行以下操作：

1. 确定要包含在 CEV 中的 Oracle 数据库安装文件。

1. 下载安装文件。

1. 创建列出安装文件的 JSON 清单。

RDS Custom for Oracle 为每个受支持的 Oracle Database 版本提供 JSON 清单模板以及我们推荐的 .zip 文件。例如，以下模板适用于 19.17.0.0.0 RU。

```
{
    "mediaImportTemplateVersion": "2020-08-14",
    "databaseInstallationFileNames": [
        "V982063-01.zip"
    ],
    "opatchFileNames": [
        "p6880880_190000_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames": [
        "p34419443_190000_Linux-x86-64.zip",
        "p34411846_190000_Linux-x86-64.zip"
    ],
    "otherPatchFileNames": [
        "p28852325_190000_Linux-x86-64.zip",
        "p29997937_190000_Linux-x86-64.zip",
        "p31335037_190000_Linux-x86-64.zip",
        "p32327201_190000_Linux-x86-64.zip",
        "p33613829_190000_Linux-x86-64.zip",
        "p34006614_190000_Linux-x86-64.zip",
        "p34533061_190000_Linux-x86-64.zip",
        "p34533150_190000_Generic.zip",
        "p28730253_190000_Linux-x86-64.zip",
        "p29213893_1917000DBRU_Generic.zip",
        "p33125873_1917000DBRU_Linux-x86-64.zip",
        "p34446152_1917000DBRU_Linux-x86-64.zip"
    ]
}
```

每个模板都有关联的自述文件，其中包括有关下载补丁、.zip 文件的 URL 和文件校验和的说明。您可以按原样使用这些模板，也可以使用自己的补丁对这些模板进行修改。要查看模板，请将 [custom-oracle-manifest.zip](samples/custom-oracle-manifest.zip) 下载到本地磁盘，然后使用文件存档应用程序将其打开。有关更多信息，请参阅 [步骤 5：准备 CEV 清单](#custom-cev.preparing.manifest)。

## 步骤 2：从 Oracle 软件传输云下载数据库安装文件和补丁
<a name="custom-cev.preparing.download"></a>

确定了要用于 CEV 的安装文件后，将这些文件下载到本地系统。Oracle 数据库安装文件和补丁托管在 Oracle 软件传输云上。每个 CEV 都需要一个基础版本 [例如 Oracle Database 19c 或 Oracle Database 12c 第 2 版（12.2）] 以及可选补丁列表。

**下载 Oracle Database 的数据库安装文件**

1. 请转到 [https://edelivery.oracle.com/](https://edelivery.oracle.com/) 然后登录。

1. 在搜索框中，输入 **Oracle Database Enterprise Edition** 或 **Oracle Database Standard Edition 2**，然后选择**搜索**。

1. 请选择以下基础版本之一：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/custom-cev.preparing.html)

1. 选择**继续**。

1. 清除 **Download Queue**（下载队列）复选框。

1. 选择与基础版本相对应的选项：
   + **Oracle Database 19.3.0.0.0 - 长期版本**。
   + **Oracle Database 18.0.0.0.0**
   + **Oracle Database 12.2.0.1.0**。
   + **Oracle Database 12.1.0.2.0**。

1. 在 **Platform/Languages**（平台/语言）中选择 **Linux x86-64**。

1. 选择**继续**，然后签署 Oracle 许可协议。

1. 选择与您的数据库版本对应的 .zip 文件：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/custom-cev.preparing.html)

1. 将所需的 Oracle 补丁从 `updates.oracle.com` 或 `support.oracle.com` 下载到本地系统。您可以在以下位置找到补丁的 URL：
   + 您在[步骤 1（可选）：下载清单模板](#custom-cev.preparing.templates)中下载的 .zip 文件中的自述文件
   + [适用于 Oracle 的 Amazon Relational Database Service（Amazon RDS）发布说明](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes)的每个版本更新（RU）中列出的补丁

## 步骤 3：将安装文件上传到 Amazon S3
<a name="custom-cev.preparing.s3"></a>

使用 AWS CLI 将您的 Oracle 安装和补丁文件上载到 Amazon S3。包含安装文件的 S3 存储桶必须与您的 CEV 在同一个 AWS 区域。

本节中的示例使用以下占位符：
+ `install-or-patch-file.zip` – Oracle 安装媒体文件。例如，p32126828\$1190000\$1Linux-x86-64.zip 是一个补丁。
+ `amzn-s3-demo-destination-bucket` – 您为上载的安装文件指定的 Amazon S3 存储桶。
+ `123456789012/cev1` – Amazon S3 存储桶中的可选前缀。
+ `amzn-s3-demo-source-bucket` – 您可以选择将文件暂存到的 Amazon S3 存储桶。

**Topics**
+ [步骤 3a：验证您的 S3 桶是否位于正确的 AWS 区域](#custom-cev.preparing.s3.verify-region)
+ [步骤 3b：确保您的 S3 桶策略具有正确的权限](#custom-cev.preparing.s3.verify-policy)
+ [步骤 3c：使用 cp 或同步命令上传文件](#custom-cev.preparing.s3.upload)
+ [步骤 3d：列出 S3 桶中的文件](#custom-cev.preparing.s3.list)

### 步骤 3a：验证您的 S3 桶是否位于正确的 AWS 区域
<a name="custom-cev.preparing.s3.verify-region"></a>

验证 S3 存储桶是否位于您计划运行 `create-custom-db-engine-version` 命令所在的 AWS 区域。

```
aws s3api get-bucket-location --bucket amzn-s3-demo-destination-bucket
```

### 步骤 3b：确保您的 S3 桶策略具有正确的权限
<a name="custom-cev.preparing.s3.verify-policy"></a>

您可以从头开始或者从源 CEV 创建 CEV。如果您计划从源 CEV 创建新的 CEV，请确保您的 S3 桶策略具有正确的权限：

1. 标识 RDS Custom 预留的 S3 桶。桶名称的格式为 `do-not-delete-rds-custom-account-region-string`。例如，桶名称可能为 `do-not-delete-rds-custom-123456789012-us-east-1-abc123EXAMPLE`。

1. 确保将以下权限附加到您的 S3 桶策略中。将 `do-not-delete-rds-custom-123456789012-us-east-1-abc123EXAMPLE` 替换为您的存储桶的名称。

   ```
   {
       "Sid": "AWSRDSCustomForOracleCustomEngineVersionGetObject",
       "Effect": "Allow",
       "Principal": {
           "Service": "custom.rds.amazonaws.com"
       },
       "Action": [
           "s3:GetObject",
           "s3:GetObjectTagging"
       ],
       "Resource": "arn:aws:s3:::do-not-delete-rds-custom-123456789012-us-east-1-abc123EXAMPLE/CustomEngineVersions/*"
   }, ...
   ```

### 步骤 3c：使用 cp 或同步命令上传文件
<a name="custom-cev.preparing.s3.upload"></a>

请选择以下任一选项：
+ 使用 `aws s3 cp` 上载单个 .zip 文件。

  分别上载每个安装 .zip 文件。不要将 .zip 文件合并为单个 .zip 文件。
+ 使用 `aws s3 sync` 上传目录。

**Example**  
以下示例将 `install-or-patch-file.zip` 上传到 RDS Custom Amazon S3 存储桶中的 `123456789012/cev1` 文件夹。为您想要上传的每个 .zip 运行单独的 `aws s3` 命令。  
对于 Linux、macOS 或 Unix：  

```
1. aws s3 cp install-or-patch-file.zip \
2.     s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```
对于：Windows  

```
1. aws s3 cp install-or-patch-file.zip ^
2.     s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```

**Example**  
以下示例将您本地 *cev1* 文件中的文件上传到您的 Amazon S3 存储桶中的 *123456789012/cev1* 文件夹。  
对于 Linux、macOS 或 Unix：  

```
aws s3 sync cev1 \
    s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```
对于：Windows  

```
aws s3 sync cev1 ^
    s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```

**Example**  
以下示例将 `amzn-s3-demo-source-bucket` 中的所有文件上传到您的 Amazon S3 存储桶中的 **`123456789012/cev1`** 文件夹。  
对于 Linux、macOS 或 Unix：  

```
aws s3 sync s3://amzn-s3-demo-source-bucket/ \
    s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```
对于：Windows  

```
aws s3 sync s3://amzn-s3-demo-source-bucket/ ^
    s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```

### 步骤 3d：列出 S3 桶中的文件
<a name="custom-cev.preparing.s3.list"></a>

以下示例使用 `s3 ls` 命令列出 RDS Custom Amazon S3 桶中的文件。

```
aws s3 ls \
    s3://amzn-s3-demo-destination-bucket/123456789012/cev1/
```

## 步骤 4（可选)：在 S3 中跨 AWS 账户共享您的安装媒体
<a name="custom-cev.preparing.accounts"></a>

就本部分的目的而言，包含您上载的 Oracle 安装文件的 Amazon S3 桶是您的*媒体桶*。您的组织可能会在 AWS 区域中使用多个 AWS 账户。如果是这样，您可能需要使用一个 AWS 账户来填充媒体桶，并使用另一个 AWS 账户来创建 CEV。如果您不打算共享媒体桶，请跳至下一部分。

此部分假设如下：
+ 您可以访问创建媒体桶的账户和您打算在其中创建 CEV 的另一个账户。
+ 您打算只在一个 AWS 区域中创建 CEV。如果您打算使用多个区域，请在每个区域中创建一个媒体桶。
+ 您使用的是 CLI。如果您使用 Amazon S3 控制台，请调整以下步骤。

**将您的媒体桶配置为跨 AWS 账户进行共享**

1. 登录到 AWS 账户，其中包含您上载了安装媒体的 S3 桶。

1. 从空白 JSON 策略模板或您可以调整的现有策略开始。

   以下命令检索现有策略并将其另存为 *my-policy.json*。在此示例中，包含安装文件的 S3 存储桶命名为 *amzn-s3-demo-bucket*。

   ```
   aws s3api get-bucket-policy \ 
       --bucket amzn-s3-demo-bucket \
       --query Policy \
       --output text > my-policy.json
   ```

1. 按如下方式编辑媒体桶权限：
   + 在模板的 `Resource` 元素中，指定您将 Oracle 数据库安装文件上载到的 S3 桶。
   + 在 `Principal` 元素中，指定您打算用于创建 CEV 的所有 AWS 账户的 ARN。您可以将根、用户或角色添加到 S3 桶允许列表中。有关更多信息，请参阅 *AWS Identity and Access Management 用户指南* 中的 [IAM 标识符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "GrantAccountsAccess",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:root",
                       "arn:aws:iam::444455556666:user/user-name-with-path",
                       "arn:aws:iam::123456789012:role/role-name-with-path"
                   ]
               },
               "Action": [
                   "s3:GetObject",
                   "s3:GetObjectAcl",
                   "s3:GetObjectTagging",
                   "s3:ListBucket",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           }
       ]
   }
   ```

------

1. 将此策略附加到您的媒体桶。

   在以下示例中，*amzn-s3-demo-bucket* 是包含安装文件的 S3 存储桶的名称，而 *my-policy.json* 是 JSON 文件的名称。

   ```
   aws s3api put-bucket-policy \
       --bucket amzn-s3-demo-bucket \
       --policy file://my-policy.json
   ```

1. 登录到您打算在其中创建 CEV 的 AWS 账户。

1. 验证此账户是否可以访问 AWS 账户（此账户创建了媒体桶）中的媒体桶。

   ```
   aws s3 ls --query "Buckets[].Name"
   ```

   有关更多信息，请参阅《AWS CLI 命令参考》**中的 [aws s3 ls](https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html)。

1. 请按照[创建 CEV](custom-cev.create.md)中的步骤创建 CEV。

## 步骤 5：准备 CEV 清单
<a name="custom-cev.preparing.manifest"></a>

CEV 清单是包含以下内容的 JSON 文档：
+ （必需）您上载到 Amazon S3 的安装 .zip 文件的列表。RDS Custom 将按它们在清单中列出的顺序应用补丁。
+ （可选）为 Oracle 根目录、Oracle 主目录以及 UNIX/Linux 用户和组的 ID 和名称设置非原定设置值的安装参数。请注意，您无法修改现有 CEV 或现有数据库实例的安装参数。当安装参数具有不同的设置时，您也无法从一个 CEV 升级到另一个 CEV。

有关示例 CEV 清单，请参阅您在[步骤 1（可选）：下载清单模板](#custom-cev.preparing.templates)中下载的 JSON 模板。此外，您还可以在[CEV 清单示例](#custom-cev.preparing.manifest.examples)中查看示例。

**Topics**
+ [CEV 清单中的 JSON 字段](#custom-cev.preparing.manifest.fields)
+ [创建 CEV 清单](#custom-cev.preparing.manifest.creating)
+ [CEV 清单示例](#custom-cev.preparing.manifest.examples)

### CEV 清单中的 JSON 字段
<a name="custom-cev.preparing.manifest.fields"></a>

下表介绍了清单中的 JSON 字段。


| JSON 字段 | 说明 | 
| --- | --- | 
|  `MediaImportTemplateVersion`  |  CEV 清单的版本。日期的格式为 `YYYY-MM-DD`。  | 
|  `databaseInstallationFileNames`  |  数据库安装文件的有序列表。  | 
|  `opatchFileNames`  |  用于 Oracle 数据库引擎的 OPatch 安装程序的有序列表。只有一个值有效。`opatchFileNames` 的值必须以 `p6880880_` 开头。  | 
|  `psuRuPatchFileNames`  |  此数据库的 PSU 和 RU 补丁程序。  如果包含 `psuRuPatchFileNames`，则 `opatchFileNames` 为必需的。`opatchFileNames` 的值必须以 `p6880880_` 开头。   | 
|  `OtherPatchFileNames`  |  不在 PSU 和 RU 补丁列表中的补丁。RDS Custom 在应用 PSU 和 RU 补丁后应用这些补丁。  如果包含 `OtherPatchFileNames`，则 `opatchFileNames` 为必需的。`opatchFileNames` 的值必须以 `p6880880_` 开头。   | 
|  `installationParameters`  |  Oracle 根目录、Oracle 主目录以及 UNIX/Linux 用户和组的 ID 和名称的非原定设置。您可以设置以下参数： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/custom-cev.preparing.html)  | 

每个 Oracle 数据库版本都有不同的受支持安装文件的列表。在创建 CEV 清单时，请确保仅指定 RDS Custom for Oracle 支持的文件。否则，CEV 创建将失败并出现错误。支持[适用于 Oracle 的 Amazon Relational Database Service（Amazon RDS）发布说明](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes)中列出的所有补丁。

### 创建 CEV 清单
<a name="custom-cev.preparing.manifest.creating"></a>

**创建 CEV 清单**

1. 按您计划应用安装文件的顺序，列出您计划应用的所有安装文件。

1. 将安装文件与[CEV 清单中的 JSON 字段](#custom-cev.preparing.manifest.fields)中描述的 JSON 字段关联起来。

1. 请执行以下任一操作：
   + 将 CEV 清单创建为 JSON 文本文件。
   + 在控制台中创建 CEV 时编辑 CEV 清单模板。有关更多信息，请参阅 [创建 CEV](custom-cev.create.md)。

### CEV 清单示例
<a name="custom-cev.preparing.manifest.examples"></a>

以下示例显示了不同 Oracle Database 版本的 CEV 清单文件。如果您在清单中包含 JSON 字段，请确保该字段不为空。例如，以下 CEV 清单无效，因为 `otherPatchFileNames` 为空。

```
{
    "mediaImportTemplateVersion": "2020-08-14",
    "databaseInstallationFileNames": [
        "V982063-01.zip"
    ],
    "opatchFileNames": [
        "p6880880_190000_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames": [
        "p32126828_190000_Linux-x86-64.zip"
    ],
    "otherPatchFileNames": [
    ]
}
```

**主题**
+ [Sample CEV manifest for Oracle Database 12c Release 1 (12.1)](#oracle-cev-manifest-12.1)
+ [Sample CEV manifest for Oracle Database 12c Release 2 (12.2)](#oracle-cev-manifest-12.2)
+ [Sample CEV manifest for Oracle Database 18c](#oracle-cev-manifest-18c)
+ [Sample CEV manifest for Oracle Database 19c](#oracle-cev-manifest-19c)

**Example Oracle Database 12c 第 1 版（12.1）的 CEV 清单示例**  
在以下示例中，对用于 Oracle Database 12c 第 1 版（12.1）的 2021 年 7 月 PSU，RDS Custom 将按指定的顺序应用补丁。因此，RDS Custom 依次应用 p32768233、p32876425、p18759211，以此类推。该示例为 UNIX 用户和组以及 Oracle 主目录和 Oracle 根目录设置新值。  

```
{
    "mediaImportTemplateVersion":"2020-08-14",
    "databaseInstallationFileNames":[
        "V46095-01_1of2.zip",
        "V46095-01_2of2.zip"
    ],
    "opatchFileNames":[
        "p6880880_121010_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames":[
        "p32768233_121020_Linux-x86-64.zip"
    ],
    "otherPatchFileNames":[
        "p32876425_121020_Linux-x86-64.zip",
        "p18759211_121020_Linux-x86-64.zip",
        "p19396455_121020_Linux-x86-64.zip",
        "p20875898_121020_Linux-x86-64.zip",
        "p22037014_121020_Linux-x86-64.zip",
        "p22873635_121020_Linux-x86-64.zip",
        "p23614158_121020_Linux-x86-64.zip",
        "p24701840_121020_Linux-x86-64.zip",
        "p25881255_121020_Linux-x86-64.zip",
        "p27015449_121020_Linux-x86-64.zip",
        "p28125601_121020_Linux-x86-64.zip",
        "p28852325_121020_Linux-x86-64.zip",
        "p29997937_121020_Linux-x86-64.zip",
        "p31335037_121020_Linux-x86-64.zip",
        "p32327201_121020_Linux-x86-64.zip",
        "p32327208_121020_Generic.zip",
        "p17969866_12102210119_Linux-x86-64.zip",
        "p20394750_12102210119_Linux-x86-64.zip",
        "p24835919_121020_Linux-x86-64.zip",
        "p23262847_12102201020_Linux-x86-64.zip",
        "p21171382_12102201020_Generic.zip",
        "p21091901_12102210720_Linux-x86-64.zip",
        "p33013352_12102210720_Linux-x86-64.zip",
        "p25031502_12102210720_Linux-x86-64.zip",
        "p23711335_12102191015_Generic.zip",
        "p19504946_121020_Linux-x86-64.zip"
    ],
    "installationParameters": {
        "unixGroupName": "dba",
        "unixGroupId": 12345,
        "unixUname": "oracle",
        "unixUid": 12345,
        "oracleHome": "/home/oracle/oracle.12.1.0.2",
        "oracleBase": "/home/oracle"
    }
}
```

**Example Oracle Database 12c 第 2 版（12.2）的 CEV 清单示例**  
在以下示例中，对用于 Oracle Database 12c 第 2 版（12.2）的 2021 年 10 月 PSU，RDS Custom 将依次应用 p33261817、p33192662、p29213893，以此类推。该示例为 UNIX 用户和组以及 Oracle 主目录和 Oracle 根目录设置新值。  

```
{
    "mediaImportTemplateVersion":"2020-08-14",
    "databaseInstallationFileNames":[
        "V839960-01.zip"
    ],
    "opatchFileNames":[
        "p6880880_122010_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames":[
        "p33261817_122010_Linux-x86-64.zip"
    ],
    "otherPatchFileNames":[
        "p33192662_122010_Linux-x86-64.zip",
        "p29213893_122010_Generic.zip",
        "p28730253_122010_Linux-x86-64.zip",
        "p26352615_12201211019DBOCT2021RU_Linux-x86-64.zip",
        "p23614158_122010_Linux-x86-64.zip",
        "p24701840_122010_Linux-x86-64.zip",
        "p25173124_122010_Linux-x86-64.zip",
        "p25881255_122010_Linux-x86-64.zip",
        "p27015449_122010_Linux-x86-64.zip",
        "p28125601_122010_Linux-x86-64.zip",
        "p28852325_122010_Linux-x86-64.zip",
        "p29997937_122010_Linux-x86-64.zip",
        "p31335037_122010_Linux-x86-64.zip",
        "p32327201_122010_Linux-x86-64.zip",
        "p32327208_122010_Generic.zip"
    ],
    "installationParameters": {
        "unixGroupName": "dba",
        "unixGroupId": 12345,
        "unixUname": "oracle",
        "unixUid": 12345,
        "oracleHome": "/home/oracle/oracle.12.2.0.1",
        "oracleBase": "/home/oracle"
    }
}
```

**Example Oracle Database 18c 的 CEV 清单示例**  
在以下示例中，对用于 Oracle Database 18c 的 2021 年 10 月 PSU，RDS Custom 将依次应用 p32126855、p28730253、p27539475，以此类推。该示例为 UNIX 用户和组以及 Oracle 主目录和 Oracle 根目录设置新值。  

```
{
    "mediaImportTemplateVersion":"2020-08-14",
    "databaseInstallationFileNames":[
        "V978967-01.zip"
    ],
    "opatchFileNames":[
        "p6880880_180000_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames":[
        "p32126855_180000_Linux-x86-64.zip"
    ],
    "otherPatchFileNames":[
        "p28730253_180000_Linux-x86-64.zip",
        "p27539475_1813000DBRU_Linux-x86-64.zip",
        "p29213893_180000_Generic.zip",
        "p29374604_1813000DBRU_Linux-x86-64.zip",
        "p29782284_180000_Generic.zip",
        "p28125601_180000_Linux-x86-64.zip",
        "p28852325_180000_Linux-x86-64.zip",
        "p29997937_180000_Linux-x86-64.zip",
        "p31335037_180000_Linux-x86-64.zip",
        "p31335142_180000_Generic.zip"
    ]
    "installationParameters": {
        "unixGroupName": "dba",
        "unixGroupId": 12345,
        "unixUname": "oracle",
        "unixUid": 12345,
        "oracleHome": "/home/oracle/18.0.0.0.ru-2020-10.rur-2020-10.r1",
        "oracleBase": "/home/oracle/"
    }
}
```

**Example Oracle Database 19c 的 CEV 清单示例**  
在以下示例中，对 Oracle Database 19c，RDS Custom 依次应用 p32126828、p29213893、p29782284，以此类推。该示例为 UNIX 用户和组以及 Oracle 主目录和 Oracle 根目录设置新值。  

```
{
    "mediaImportTemplateVersion": "2020-08-14",
    "databaseInstallationFileNames": [
        "V982063-01.zip"
    ],
    "opatchFileNames": [
        "p6880880_190000_Linux-x86-64.zip"
    ],
    "psuRuPatchFileNames": [
        "p32126828_190000_Linux-x86-64.zip"
    ],
    "otherPatchFileNames": [
        "p29213893_1910000DBRU_Generic.zip",
        "p29782284_1910000DBRU_Generic.zip",
        "p28730253_190000_Linux-x86-64.zip",
        "p29374604_1910000DBRU_Linux-x86-64.zip",
        "p28852325_190000_Linux-x86-64.zip",
        "p29997937_190000_Linux-x86-64.zip",
        "p31335037_190000_Linux-x86-64.zip",
        "p31335142_190000_Generic.zip"
    ],
    "installationParameters": {
        "unixGroupName": "dba",
        "unixGroupId": 12345,
        "unixUname": "oracle",
        "unixUid": 12345,
        "oracleHome": "/home/oracle/oracle.19.0.0.0.ru-2020-04.rur-2020-04.r1.EE.1",
        "oracleBase": "/home/oracle"
    }
}
```

## 步骤 6（可选）：验证 CEV 清单
<a name="custom-cev.preparing.validating"></a>

或者，通过运行 `json.tool` Python 脚本验证清单是有效的 JSON 文件。例如，如果您更改到包含名为 `manifest.json` 的 CEV 清单的目录，请运行以下命令。

```
python -m json.tool < manifest.json
```

## 步骤 7：添加必要的 IAM 权限
<a name="custom-cev.preparing.iam"></a>

确保创建 CEV 的 IAM 主体具有中所述的必要策略 [步骤 5：为您的 IAM 用户或角色授予所需的权限](custom-setup-orcl.md#custom-setup-orcl.iam-user)。