为创建 CEV 做准备
要创建 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。
主题
步骤 1(可选):下载清单模板
CEV 清单是一个 JSON 文档,其中包含 CEV 的数据库安装 .zip 文件的列表。要创建 CEV,请执行以下操作:
-
确定要包含在 CEV 中的 Oracle 数据库安装文件。
-
下载安装文件。
-
创建列出安装文件的 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 下载到本地磁盘,然后使用文件存档应用程序将其打开。有关更多信息,请参阅 步骤 5:准备 CEV 清单。
步骤 2:从 Oracle 软件传输云下载数据库安装文件和补丁
确定了要用于 CEV 的安装文件后,将这些文件下载到本地系统。Oracle 数据库安装文件和补丁托管在 Oracle 软件传输云上。每个 CEV 都需要一个基础版本 [例如 Oracle Database 19c 或 Oracle Database 12c 第 2 版(12.2)] 以及可选补丁列表。
下载 Oracle Database 的数据库安装文件
-
请转到 https://edelivery.oracle.com/
然后登录。 -
在搜索框中,输入
Oracle Database Enterprise Edition
或Oracle Database Standard Edition 2
,然后选择搜索。 -
请选择以下基础版本之一:
数据库版本 Enterprise Edition Standard Edition 2 Oracle Database 19c DLP:Oracle Database 19c Enterprise Edition 19.3.0.0.0(Oracle Database Enterprise Edition) DLP:Oracle Database 19c Standard Edition 2 19.3.0.0.0(Oracle Database Standard Edition 2) Oracle Database 18c DLP:Oracle Database 18c Enterprise Edition 18.0.0.0.0(Oracle Database Enterprise Edition) DLP:Oracle Database Standard Edition 2 18.0.0.0.0(Oracle Database Standard Edition 2) Oracle Database 12c 第 2 版 (12.2.0.1) DLP:Oracle Database 12c Enterprise Edition 12.2.0.1.0(Oracle Database Enterprise Edition) DLP:Oracle Database Standard Edition 2 12.2.0.1.0(Oracle Database Standard Edition 2) Oracle Database 12c 第 1 版 (12.1.0.2) DLP:Oracle Database 12c Enterprise Edition 12.1.0.2.0(Oracle Database Enterprise Edition) DLP:Oracle Database Standard Edition 2 12.1.0.2.0(Oracle Database Standard Edition 2) -
选择继续。
-
清除 Download Queue(下载队列)复选框。
-
选择与基础版本相对应的选项:
-
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。
-
-
在 Platform/Languages(平台/语言)中选择 Linux x86-64。
-
选择继续,然后签署 Oracle 许可协议。
-
选择与您的数据库版本对应的 .zip 文件:
数据库发行版和版本 zip 文件 SHA-256 哈希 19c EE 和 SE2 V982063-01.zip BA8329C757133DA313ED3B6D7F86C5AC42CD9970A28BF2E6233F3235233AA8D8
18c EE 和 SE2 V978967-01.zip C96A4FD768787AF98272008833FE10B172691CF84E42816B138C12D4DE63AB96
12.2.0.1 EE 和 SE2 V839960-01.zip 96ED97D21F15C1AC0CCE3749DA6C3DAC7059BB60672D76B008103FC754D22DDE
12.1.0.2 EE V46095-01_1of2.zip V46095-01_2of2.zip 31FDC2AF41687B4E547A3A18F796424D8C1AF36406D2160F65B0AF6A9CD47355
对应于 V46095-01_1of2.zip03DA14F5E875304B28F0F3BB02AF0EC33227885B99C9865DF70749D1E220ACCD
对应于 V46095-01_2of2.zip12.1.0.2 SE2 V77388-01_1of2.zip V77388-01_2of2.zip 73873369753230F5A0921F95ACEADB591388CB06ED72A7F3AEA7BCBCEA2403BC
对应于 V77388-01_1of2.zip2492E1BE1E3E3531DA83D0843C09C08E435AC8CEFD9A00C0DF56BE4F15CEEBF3
对应于 V77388-01_2of2.zip -
将所需的 Oracle 补丁从
updates.oracle.com
或support.oracle.com
下载到本地系统。您可以在以下位置找到补丁的 URL:-
您在步骤 1(可选):下载清单模板中下载的 .zip 文件中的自述文件
-
适用于 Oracle 的 Amazon Relational Database Service(Amazon RDS)发布说明的每个版本更新(RU)中列出的补丁
-
步骤 3:将安装文件上传到 Amazon S3
使用 AWS CLI 将您的 Oracle 安装和补丁文件上载到 Amazon S3。包含安装文件的 S3 存储桶必须与您的 CEV 在同一个 AWS 区域。
本节中的示例使用以下占位符:
-
– Oracle 安装媒体文件。例如,p32126828_190000_Linux-x86-64.zip 是一个补丁。install-or-patch-file.zip
-
– 您为上载的安装文件指定的 Amazon S3 存储桶。amzn-s3-demo-destination-bucket
-
– Amazon S3 存储桶中的可选前缀。123456789012/cev1
-
– 您可以选择将文件暂存到的 Amazon S3 存储桶。amzn-s3-demo-source-bucket
步骤 3a:验证您的 S3 桶是否位于正确的 AWS 区域
验证 S3 存储桶是否位于您计划运行 create-custom-db-engine-version
命令所在的 AWS 区域。
aws s3api get-bucket-location --bucket
amzn-s3-demo-destination-bucket
步骤 3b:确保您的 S3 桶策略具有正确的权限
您可以从头开始或者从源 CEV 创建 CEV。如果您计划从源 CEV 创建新的 CEV,请确保您的 S3 桶策略具有正确的权限:
-
标识 RDS Custom 预留的 S3 桶。桶名称的格式为
do-not-delete-rds-custom-
。例如,桶名称可能为account
-region
-string
do-not-delete-rds-custom-
。123456789012
-us-east-1
-abc123EXAMPLE
-
确保将以下权限附加到您的 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 或同步命令上传文件
请选择以下任一选项:
-
使用
aws s3 cp
上载单个 .zip 文件。分别上载每个安装 .zip 文件。不要将 .zip 文件合并为单个 .zip 文件。
-
使用
aws s3 sync
上传目录。
以下示例将
上传到 RDS Custom Amazon S3 存储桶中的 install-or-patch-file.zip
文件夹。为您想要上传的每个 .zip 运行单独的 123456789012/cev1
aws s3
命令。
对于 Linux、macOS 或 Unix:
aws s3 cp
install-or-patch-file.zip
\ s3://amzn-s3-demo-destination-bucket
/123456789012/cev1
/
对于 Windows:
aws s3 cp
install-or-patch-file.zip
^ s3://amzn-s3-demo-destination-bucket
/123456789012/cev1
/
以下示例将您本地 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
/
以下示例将
中的所有文件上传到您的 Amazon S3 存储桶中的 amzn-s3-demo-source-bucket
文件夹。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 桶中的文件
以下示例使用 s3 ls
命令列出 RDS Custom Amazon S3 桶中的文件。
aws s3 ls \ s3://
amzn-s3-demo-destination-bucket
/123456789012/cev1
/
步骤 4(可选):在 S3 中跨 AWS 账户共享您的安装媒体
就本部分的目的而言,包含您上载的 Oracle 安装文件的 Amazon S3 桶是您的媒体桶。您的组织可能会在 AWS 区域中使用多个 AWS 账户。如果是这样,您可能需要使用一个 AWS 账户来填充媒体桶,并使用另一个 AWS 账户来创建 CEV。如果您不打算共享媒体桶,请跳至下一部分。
此部分假设如下:
-
您可以访问创建媒体桶的账户和您打算在其中创建 CEV 的另一个账户。
-
您打算只在一个 AWS 区域中创建 CEV。如果您打算使用多个区域,请在每个区域中创建一个媒体桶。
-
您使用的是 CLI。如果您使用 Amazon S3 控制台,请调整以下步骤。
将您的媒体桶配置为跨 AWS 账户进行共享
-
登录到 AWS 账户,其中包含您上载了安装媒体的 S3 桶。
-
从空白 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
-
按如下方式编辑媒体桶权限:
-
在模板的
Resource
元素中,指定您将 Oracle 数据库安装文件上载到的 S3 桶。 -
在
Principal
元素中,指定您打算用于创建 CEV 的所有 AWS 账户的 ARN。您可以将根、用户或角色添加到 S3 桶允许列表中。有关更多信息,请参阅 AWS Identity and Access Management 用户指南 中的 IAM 标识符。
{ "Version": "2008-10-17", "Statement": [ { "Sid": "GrantAccountsAccess", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
account-1
:root", "arn:aws:iam::account-2
:user/user-name-with-path
", "arn:aws:iam::account-3
: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
/*" ] } ] } -
-
将此策略附加到您的媒体桶。
在以下示例中,
amzn-s3-demo-bucket
是包含安装文件的 S3 存储桶的名称,而my-policy.json
是 JSON 文件的名称。aws s3api put-bucket-policy \ --bucket
amzn-s3-demo-bucket
\ --policy file://my-policy.json
-
登录到您打算在其中创建 CEV 的 AWS 账户。
-
验证此账户是否可以访问 AWS 账户(此账户创建了媒体桶)中的媒体桶。
aws s3 ls --query "Buckets[].Name"
有关更多信息,请参阅《AWS CLI 命令参考》中的 aws s3 ls。
-
请按照创建 CEV中的步骤创建 CEV。
步骤 5:准备 CEV 清单
CEV 清单是包含以下内容的 JSON 文档:
-
(必需)您上载到 Amazon S3 的安装 .zip 文件的列表。RDS Custom 将按它们在清单中列出的顺序应用补丁。
-
(可选)为 Oracle 根目录、Oracle 主目录以及 UNIX/Linux 用户和组的 ID 和名称设置非原定设置值的安装参数。请注意,您无法修改现有 CEV 或现有数据库实例的安装参数。当安装参数具有不同的设置时,您也无法从一个 CEV 升级到另一个 CEV。
有关示例 CEV 清单,请参阅您在步骤 1(可选):下载清单模板中下载的 JSON 模板。此外,您还可以在CEV 清单示例中查看示例。
CEV 清单中的 JSON 字段
下表介绍了清单中的 JSON 字段。
JSON 字段 | 描述 |
---|---|
|
CEV 清单的版本。日期的格式为 |
|
数据库安装文件的有序列表。 |
|
用于 Oracle 数据库引擎的 OPatch 安装程序的有序列表。只有一个值有效。 |
|
此数据库的 PSU 和 RU 补丁程序。 重要如果包含 |
|
不在 PSU 和 RU 补丁列表中的补丁。RDS Custom 在应用 PSU 和 RU 补丁后应用这些补丁。 重要如果包含 |
|
Oracle 根目录、Oracle 主目录以及 UNIX/Linux 用户和组的 ID 和名称的非原定设置。您可以设置以下参数:
|
每个 Oracle 数据库版本都有不同的受支持安装文件的列表。在创建 CEV 清单时,请确保仅指定 RDS Custom for Oracle 支持的文件。否则,CEV 创建将失败并出现错误。支持适用于 Oracle 的 Amazon Relational Database Service(Amazon RDS)发布说明中列出的所有补丁。
创建 CEV 清单
创建 CEV 清单
-
按您计划应用安装文件的顺序,列出您计划应用的所有安装文件。
-
将安装文件与CEV 清单中的 JSON 字段中描述的 JSON 字段关联起来。
-
请执行以下任一操作:
-
将 CEV 清单创建为 JSON 文本文件。
-
在控制台中创建 CEV 时编辑 CEV 清单模板。有关更多信息,请参阅 创建 CEV。
-
CEV 清单示例
以下示例显示了不同 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": [ ] }
主题
例 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" } }
例 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" } }
例 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/" } }
例 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 清单
或者,通过运行 json.tool
Python 脚本验证清单是有效的 JSON 文件。例如,如果您更改到包含名为 manifest.json
的 CEV 清单的目录,请运行以下命令。
python -m json.tool < manifest.json
步骤 7:添加必要的 IAM 权限
确保创建 CEV 的 IAM 主体具有中所述的必要策略 步骤 5:为您的 IAM 用户或角色授予所需的权限。