

# 使用 Amazon CloudFormation 部署 RDS Custom for Oracle
<a name="custom-oracle-multiaz-deployment"></a>

使用提供的 Amazon CloudFormation 模板自动进行 RDS Custom for Oracle 部署。在部署资源之前，请满足以下先决条件。

## 先决条件
<a name="custom-oracle-prerequisites"></a><a name="custom-oracle-required-files"></a>

**下载必需的 Oracle 文件**

在创建 Amazon CloudFormation 模板之前，您需要特定的 Oracle 安装文件。在部署之前下载这些文件。

1. 导航到 [Oracle Database 19c (19.3)](https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html)

1. 找到并下载文件 `LINUX.X64_193000_db_home.zip`

1. 将该文件重命名为 `V982063-01.zip`

1. 下载其余补丁，同时为**平台或语言**选择 `Linux x86-64`

### 最新的 OPatch 实用程序
<a name="custom-oracle-opatch"></a>

[Patch 6880880](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=6880880)

### 2023 年 1 月 PSU 补丁
<a name="custom-oracle-jan-2023-patches"></a>

**数据库 PSU 和 RU 补丁**
+ [Patch 34765931](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=34765931)
+ [Patch 34786990](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=34786990)

**其它必需的补丁**
+ [Patch 35099667](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35099667)
+ [Patch 35099674](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35099674)
+ [Patch 28730253](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=28730253)
+ [Patch 29213893](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=29213893)
+ [Patch 35012866](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35012866)

### 2023 年 4 月 PSU 补丁
<a name="custom-oracle-apr-2023-patches"></a>

**数据库 PSU 和 RU 补丁**
+ [Patch 35042068](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35042068)
+ [Patch 35050341](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35050341)

**其它必需的补丁**
+ [Patch 28730253](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=28730253)
+ [Patch 29213893](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=29213893)
+ [Patch 33125873](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=33125873)
+ [Patch 35220732](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35220732)
+ [Patch 35239280](https://updates.oracle.com/Orion/PatchDetails/process_form?patch_num=35239280)

### Amazon S3 存储桶设置
<a name="custom-oracle-s3-setup"></a>

1. 在您的 Amazon Web Services 账户中创建 Amazon S3 存储桶，或者选择现有的存储桶。

1. 在存储桶中创建类似于以下示例的文件夹结构。

   ```
   <bucket-name>/
   └── oracle_cev/
       ├── V982063-01.zip
       ├── p6880880_190000_Linux-x86-64.zip
       ├── p34765931_190000_Linux-x86-64.zip
       ├── p34786990_190000_Linux-x86-64.zip
       ├── p35099667_190000_Linux-x86-64.zip
       ├── p35099674_190000_Generic.zip
       ├── p28730253_190000_Linux-x86-64.zip
       ├── p29213893_1918000DBRU_Generic.zip
       ├── p35012866_1918000DBRU_Linux-x86-64.zip
       ├── p35042068_190000_Linux-x86-64.zip
       ├── p35050341_190000_Linux-x86-64.zip
       ├── p29213893_1919000DBRU_Generic.zip
       ├── p33125873_1919000DBRU_Linux-x86-64.zip
       ├── p35220732_190000_Linux-x86-64.zip
       └── p35239280_190000_Generic.zip
   ```

1. 将之前下载的所有 Oracle 文件上传到相应的文件夹。

## 使用 Amazon CloudFormation 部署 RDS Custom for Oracle
<a name="custom-oracle-deployment-steps"></a>

### 步骤 1：准备 Amazon CloudFormation 模板
<a name="custom-oracle-step1-prereqs"></a>

在部署 RDS Custom for Oracle 之前，您需要下载并配置 Amazon CloudFormation 模板，该模板用于创建必要的先决条件。

**复制并保存模板**

1. 转到 [Deploying RDS Custom for Oracle with single and multiple Availability Zones](https://docs.amazonaws.cn/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance--examples--Deploying_RDS_Custom_for_Oracle_with_single_and_multiple_Availability_Zones)

1. 以您首选的格式（YAML 或 JSON）复制模板

1. 以 YAML 或 JSON 格式保存此文件。例如，`rds-custom-oracle-prereqs.yaml`

**在 Amazon 管理控制台中启动堆栈**

1. 打开 Amazon 管理控制台并导航到 Amazon CloudFormation

1. 选择**创建堆栈** > **使用新资源（标准）**

1. 选择**选择现有模板** 

1. 选择**上传模板文件** > **选择文件**

1. 选择您之前下载的模板文件

1. 保留默认参数值

1. 选择**下一步**以创建堆栈

**备选方案：使用 Amazon CLI**

除了使用控制台，还可以使用 Amazon CLI 来创建堆栈：

```
aws cloudformation create-stack \
  --stack-name rds-custom-oracle \
  --template-body file://rds-custom-oracle-prereqs.yaml \
  --capabilities CAPABILITY_NAMED_IAM
```

### 步骤 2：创建自定义引擎版本（CEV）和 Amazon RDS 实例
<a name="custom-oracle-step2-cev-rds"></a>

**复制并保存模板**

1. 转到 [Deploying RDS Custom for Oracle with single and multiple Availability Zones](https://docs.amazonaws.cn/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance--examples--Deploying_RDS_Custom_for_Oracle_with_single_and_multiple_Availability_Zones)

1. 以您首选的格式（YAML 或 JSON）复制模板

1. 如果需要，请更新模板中的以下参数：
   + `BucketName`
   + `CEVS3Prefix`
   + 数据库主密码（替换 \$1\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1）

1. 以 YAML 或 JSON 格式保存此文件

### 步骤 3：使用 Amazon 管理控制台进行部署
<a name="custom-oracle-step3-console-deploy"></a>

1. 打开 Amazon 管理控制台并导航到 Amazon CloudFormation

1. 选择**创建堆栈** > **使用新资源（标准）**

1. 选择**选择现有模板** 

1. 选择**上传模板文件** > **选择文件**

1. 选择您之前下载的模板文件

1. 将参数保留为默认值

1. 填入参数，如下所示：

   ```
   BucketName: rds-custom-id
   CEVS3Prefix: oracle_cev
   CEVCreation: Yes
   ```

1. 查看配置并选择**下一步**以创建堆栈

**可选：使用 Amazon CLI 进行部署**

```
aws cloudformation create-stack \
  --stack-name rds-custom-oracle \
  --template-body file://rds-custom-oracle.yaml \
  --parameters \
    ParameterKey=BucketName,ParameterValue=rds-custom-id \
    ParameterKey=CEVS3Prefix,ParameterValue=oracle_cev \
    ParameterKey=CEVCreation,ParameterValue=Yes \
  --capabilities CAPABILITY_NAMED_IAM
```

## 创建了部署资源
<a name="custom-oracle-deployment-resources"></a>

 模板创建以下资源：
+ 具有公有和私有子网的 Amazon VPC
+ 安全组
+ Amazon VPC 端点
+ IAM 角色和策略
+ 用于加密的 Amazon KMS 密钥
+ 自定义引擎版本（CEV）
+ 同时适用于单可用区和多可用区配置的 RDS Custom for Oracle 实例

## 监控部署进度
<a name="custom-oracle-monitoring-deployment"></a>

创建 Amazon CloudFormation 堆栈后，监控其进度以确保成功部署。部署过程包括创建自定义引擎版本（CEV）和 RDS 实例。

要监控部署进度：

1. 打开 Amazon CloudFormation 控制台。

1. 选择堆栈名称。

1. 选择**事件**选项卡以查看进度并确定任何错误。

**注意**  
创建 CEV 通常需要 2-3 个小时。成功完成 CEV 创建后，Amazon RDS 将自动开始创建 Amazon RDS 实例。

## 部署后
<a name="custom-oracle-post-deployment"></a>

堆栈创建过程完成后，执行以下部署后验证和配置步骤：

1. 从 Amazon RDS 控制台页面上，导航到**自定义引擎版本**以验证 CEV 创建。

1. 确认 Amazon RDS 实例已创建并可用

1. 测试与 Amazon RDS 实例的连接

1. 根据需要设置监控和备份策略

## 清理
<a name="custom-oracle-cleanup"></a>

要移除所有资源，请运行以下 Amazon CLI 命令：

```
aws cloudformation delete-stack --stack-name rds-custom-oracle
```

## 问题排查
<a name="custom-oracle-troubleshooting"></a>

如果您在部署过程中遇到问题，请使用以下解决方案来解决常见问题。

CEV 创建失败  
+ 验证所有必需的补丁是否已上传到 Amazon S3
+ 检查 IAM 权限
+ 验证补丁版本是否正确；有关所需补丁的列表，请参阅[先决条件](#custom-oracle-prerequisites)。

创建 Amazon RDS 实例失败  
+ 检查 VPC/子网配置
+ 验证安全组规则
+ 确认 CEV 可用