使用 Amazon RDS Custom for Oracle 的自定义引擎版本 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 Amazon RDS Custom for Oracle 的自定义引擎版本

Amazon RDS Custom for Oracle 的一个自定义引擎版本 (CEV)是数据库引擎和特定 Amazon Machine Image (AMI) 的二进制卷快照。您将数据库安装文件存储在 Amazon S3 中。RDS Custom 将使用此安装文件为您创建 CEV。

为创建 CEV 做准备

要创建 CEV,请访问存储在 Amazon S3 存储桶中的 Oracle 数据库 19c 企业版的安装文件和补丁。例如,您可以使用 2021 年 4 月的 RU/RUR,也可以使用安装文件和补丁的任何有效组合。

从 Oracle 下载数据库安装文件和补丁

Oracle 数据库安装文件和补丁托管在 Oracle 软件传输云上。

要下载数据库安装文件

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

  2. 在框中输入 Oracle Database Enterprise Edition,然后选择 Search(搜索)。

  3. 选择 DLP: Oracle Database Enterprise Edition 19.3.0.0.0 ( Oracle Database Enterprise Edition )(DLP:Oracle 数据库企业版 19.3.0.0.0(Oracle 数据库企业版))。

  4. 选择 Continue (继续)

  5. 清除 Download Queue(下载队列)。

  6. 选择 Oracle Database 19.3.0.0.0 - Long Term Release(Oracle Database 19.3.0.0.0 - 长期版本)。

  7. Platform/Languages(平台/语言)中选择 Linux x86-64

  8. 选择 Continue(继续),然后签署弃权。

  9. 选择 V982063-01.zip,然后保存文件。

    注意

    SHA-256 哈希值为 BA8329C757133DA313ED3B6D7F86C5AC42CD9970A28BF2E6233F3235233AA8D8

  10. 单击下表中的链接以下载 Oracle 补丁。所有 URL 均是用于 updates.oracle.comsupport.oracle.com

    文件 描述
    p6880880_190000_Linux-x86-64.zip 此版本的 Oracle 的 OPatch
    p32126828_190000_Linux-x86-64.zip 补丁 32126828 - COMBO OF OJVM RU COMPONENT 19.10.0.0.210119 + DB RU 19.10.0.0.210119
    p29213893_1910000DBRU_Generic.zip 补丁 29213893:收集用户表的统计数据时,DBMS_STATS 失败并出现错误 ORA-01422
    p29782284_1910000DBRU_Generic.zip 补丁 29782284:ORA-06508: "MDSYS.MDPRVT_IDX" WHILE UPGRADING DATABASE TO 18.3
    p28730253_190000_Linux-x86-64.zip 补丁 28730253:支持日本帝国历的新年号“令和”
    p29374604_1910000DBRU_Linux-x86-64.zip 补丁 29374604:Golden Gate Integrated Extract 未启动18C/19c 标准版
    p28852325_190000_Linux-x86-64.zip DST 文件 - RDBMS - DSTV33 UPDATE - TZDATA2018G - 补丁 28852325
    p29997937_190000_Linux-x86-64.zip DST 文件 - RDBMS - DSTV34 UPDATE - TZDATA2019B - 补丁 29997937
    p31335037_190000_Linux-x86-64.zip DST 文件 - RDBMS - DSTV35 UPDATE - TZDATA2020A - 补丁 31335037
    p31335142_190000_Generic.zip DST 文件 - DSTV35 UPDATE - TZDATA2020A - NEED OJVM FIX - 补丁 31335142

将安装文件上传到 Amazon S3

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

请选择以下任一选项:

  • 使用 aws s3 cp 上载单个 .zip 文件。

    分别上载每个安装 .zip 文件。不要将 .zip 文件合并为单个 .zip 文件。

  • 使用 aws s3 sync 上传目录。

使用 Amazon Web Services Management Console 或 Amazon CLI 列出您的安装文件。

本节中的示例使用以下占位符:

  • install-or-patch-file.zip – Oracle 安装媒体文件。例如,p32126828_190000_Linux-x86-64.zip 是一个补丁。

  • my-custom-installation-files – 您为上载的安装文件指定的 Amazon S3 存储桶。

  • 123456789012/cev1 – Amazon S3 存储桶中的可选前缀。

  • source-bucket – 您可以选择将文件暂存到的 Amazon S3 存储桶。

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

对于 Linux、macOS 或 Unix:

aws s3 cp install-or-patch-file.zip \ s3://my-custom-installation-files/123456789012/cev1/

对于 Windows:

aws s3 cp install-or-patch-file.zip ^ s3://my-custom-installation-files/123456789012/cev1/

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

aws s3 get-bucket-location --bucket my-custom-installation-files

如下所示列出 RDS Custom Amazon S3 存储桶中的文件。

aws s3 ls \ s3://my-custom-installation-files/123456789012/cev1/

以下示例将您本地 cev1 文件中的文件上传到您的 Amazon S3 存储桶中的 123456789012/cev1 文件夹。

对于 Linux、macOS 或 Unix:

aws s3 sync cev1 \ s3://my-custom-installation-files/123456789012/cev1/

对于 Windows:

aws s3 sync cev1 ^ s3://my-custom-installation-files/123456789012/cev1/

以下示例将 source-bucket 中的所有文件上传到您的 Amazon S3 存储桶中的 123456789012/cev1 文件夹。

对于 Linux、macOS 或 Unix:

aws s3 sync s3://source-bucket/ \ s3://my-custom-installation-files/123456789012/cev1/

对于 Windows:

aws s3 sync s3://source-bucket/ ^ s3://my-custom-installation-files/123456789012/cev1/

创建 CEV 清单

CEV 清单是描述 Amazon S3 中存储的安装 .zip 文件的 JSON 文档。

或将 CEV 清单另存为文件,或在使用控制台创建 CEV 时编辑模板。

以下 CEV 清单列出了您上传到 Amazon S3 的文件。RDS Custom 将按它们的列出顺序应用补丁。在以下示例中,RDS Custom 先应用 p32126828,然后应用 p29213893、p29782284,依此类推。

{ "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" ] }

下表描述了这些 JSON 字段。

JSON 字段 描述 有效值
MediaImportTemplateVersion

CEV 清单的版本。日期的格式为 YYYY-MM-DD

2020-08-14

databaseInstallationFileNames

数据库安装文件的有序列表。

V982063-01.zip

opatchFileNames

用于 Oracle 数据库引擎的 OPatch 安装程序的有序列表。只有一个值有效。

p6880880_190000_Linux-x86-64.zip

注意

如果您包括 psuRuPatchFileNamesOtherPatchFileNames 部分(或此两者),则 opatchFileNames 部分为必填项。

opatchFileNames 的值必须以 p6880880_ 开头。

psuRuPatchFileNames

此数据库的 PSU 和 RU 补丁程序。

p32126828_190000_Linux-x86-64.zip

OtherPatchFileNames

不在 PSU 和 RU 补丁列表中的补丁。RDS Custom 在应用 PSU 和 RU 补丁后应用这些补丁。

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

如果您包含 JSON 字段,该字段不能为空。例如,以下清单无效,因为 otherPatchFileNames 为空。

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

创建 CEV 清单

或者,通过运行 json.tool Python 脚本验证清单是有效的 JSON 文件。

例如,如果您更改到包含名为 manifest.json 的 CEV 清单的目录,请运行以下命令。

python -m json.tool < manifest.json

添加必要的 IAM 权限

创建 CEV 的 IAM 主体必须具有以下策略之一:

  • AdministratorAccess 策略

  • 具有以下其他权限的 AmazonRDSFullAccess 策略:

    • mediaimport 操作

    • 获取并列出对包含安装文件的 Amazon S3 存储桶的访问权限

以下 JSON 示例授予对 mediaimport 和 Amazon S3 的访问权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToS3MediaBucket", "Effect": "Allow", "Action": [ "s3:GetObjectAcl", "s3:GetObject", "s3:GetObjectTagging", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-custom-installation-files", "arn:aws:s3:::my-custom-installation-files/*" ] }, { "Sid": "PermissionForByom", "Effect": "Allow", "Action": [ "mediaimport:*" ], "Resource": "*" } ] }

您还可以使用 S3 存储桶策略向调用者的账户授予 Amazon S3 的类似权限。

创建 CEV

您可以使用 Amazon Web Services Management Console 或 Amazon CLI 创建 CEV。通常,创建时间约为两个小时。

然后,您可以使用 CEV 创建 RDS Custom 实例。包含安装文件的 Amazon S3 存储桶必须与您的 CEV 在同一个 Amazon 区域。否则,创建将失败。

有关更多信息,请参阅 创建 RDS Custom for Oracle 数据库实例

要创建 CEV

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Custom engine versions(自定义引擎版本)。

    Custom engine versions(自定义引擎版本)页面显示了当前存在的所有 CEV。如果您尚未创建任何 CEV,则该页面为空。

  3. 选择 Create custom engine version(创建自定义引擎版本)。

  4. 对于 Engine type(引擎类型),选择 Oracle

  5. 对于 Edition(版本),选择 Oracle Enterprise Edition(Oracle 企业版)。Oracle 企业版(Oracle RAC 选项)不受支持。

  6. 对于 Major version(主要版本),请选择 Oracle 19c

  7. Version details(版本详细信息)中,在 Custom engine version name(自定义引擎版本名称)中输入有效的名称。

    名称格式为 19.customized_string。您可以使用 1–50 位字母数字字符、下划线、短划线和句点。例如,您可以输入名称 19.my_cev1

    或者,选择输入 CEV 的描述。

  8. 对于 S3 location of manifest files(清单文件的 S3 位置),输入您在 将安装文件上传到 Amazon S3 中指定的 Amazon S3 存储桶的位置。例如,输入 s3://my-custom-installation-files/806242271698/cev1/

  9. RDS Custom encryption(RDS Custom 加密)部分,选择 Enter a key ARN(输入密钥 ARN)以列出可用的 Amazon KMS 密钥。

    然后从列表中选择您的 KMS 密钥。RDS Custom 需要 Amazon KMS 密钥。有关更多信息,请参阅 请确保您有对称的 Amazon KMS 密钥

  10. 选择 Create custom engine version(创建自定义引擎版本)。

    如果 CEV 清单具有无效表单,则控制台将显示 Error validating the CEV manifest(验证 CEV 清单时出错)。修复问题并重试。

Custom engine versions(自定义引擎版本)页面显示。您的 CEV 显示状态 Creating(正在创建)。创建大约需要两个小时。

要使用 Amazon CLI 创建 CEV,请运行 create-custom-db-engine-version 命令。

以下选项为必填:

  • --engine custom-oracle-ee

  • --engine-version cev,其中 cev 是自定义引擎版本的名称

  • --kms-key-id

  • --manifest manifest_string

    不允许在 manifest_string 中使用换行符。如果复制以下字符串,请先删除所有换行符,然后再将其粘贴到命令中。

    manifest_string 字符串如下:

    "{\"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\"]}"

  • --database-installation-files-s3-bucket-name s3-bucket-name,其中 s3-bucket-name 是您在 将安装文件上传到 Amazon S3 中指定的存储桶名称。您运行 create-custom-db-engine-version 所在的 Amazon 区域必须与存储桶位于相同的 Amazon 区域。

您还可以指定以下选项:

  • --description my-cev-description

  • database-installation-files-s3-prefix prefix,其中 prefix 是您在 将安装文件上传到 Amazon S3 中指定的文件夹名称。

下面的示例创建了一个名为 19.my_cev1 的 CEV。

对于 Linux、macOS 或 Unix:

aws rds create-custom-db-engine-version \ --engine custom-oracle-ee \ --engine-version 19.my_cev1 \ --database-installation-files-s3-bucket-name my-custom-installation-files \ --database-installation-files-s3-prefix 123456789012/cev1 \ --kms-key-id my-kms-key \ --description "some text" \ --manifest manifest_string

对于 Windows:

aws rds create-custom-db-engine-version ^ --engine custom-oracle-ee ^ --engine-version 19.my_cev1 ^ --database-installation-files-s3-bucket-name s3://my-custom-installation-files ^ --database-installation-files-s3-prefix 123456789012/cev1 ^ --kms-key-id my-kms-key ^ --description "some text" ^ --manifest manifest_string

使用 describe-db-engine-versions 命令以获取有关您的 CEV 的详细信息。

aws rds describe-db-engine-versions \ --engine custom-oracle-ee \ --include-all

以下部分输出显示了引擎、参数组和其他信息。

"DBEngineVersions": [ { "Engine": "custom-oracle-ee", "Status": "available", "DBParameterGroupFamily": "custom-oracle-ee-19", "DBEngineVersionArn": "arn:aws:rds:us-west-2:<my-account-id>:cev:custom-oracle-ee/19.my_cev1/0a123b45-6c78-901d-23e4-5678f901fg23", "MajorEngineVersion": "19", "SupportsReadReplica": false, "SupportsLogExportsToCloudwatchLogs": false, "EngineVersion": "19.my_cev1", "DatabaseInstallationFilesS3BucketName": "my-custom-installation-files", "DBEngineDescription": "Oracle Database server EE for RDS Custom", "SupportedFeatureNames": [], "KMSKeyId": "arn:aws:kms:us-east-2:<your-account-id>:key/<my-kms-key-id>", "SupportsGlobalDatabases": false, "SupportsParallelQuery": false, "DatabaseInstallationFilesS3Prefix": "123456789012/cev1", "DBEngineVersionDescription": "some text", "ValidUpgradeTarget": [], "CreateTime": "2021-06-23T20:00:34.782Z" } ]

CEV 创建失败

如果 CEV 创建失败,RDS Custom 将发布带有消息 Creation failed for custom engine version 19.cev_nameRDS-EVENT-0196,并包含有关失败的详细信息。例如,事件会打印丢失的文件。

您无法修改失败的 CEV。您只能删除它,然后在修复失败的原因之后再次尝试创建 CEV。有关排查 CEV 创建失败原因的信息,请参阅 为 RDS Custom for Oracle 排除自定义引擎版本创建的故障

修改 CEV 状态

您可以使用 Amazon Web Services Management Console 或 Amazon CLI 修改 CEV。您可以修改 CEV 描述或其可用性状态。您的 CEV 具有以下状态值之一:

  • available – 您可以使用此 CEV 创建新的 RDS Custom 数据库实例或升级数据库实例。这是新创建的 CEV 的原定设置状态。

  • inactive – 您无法使用此 CEV 创建或升级 RDS Custom 实例。使用此 CEV,您无法还原数据库快照以创建新的 RDS Custom 数据库实例。

您可以将 CEV 从任何受支持状态更改为任何其他受支持状态。您可以更改状态以防止意外使用 CEV 或使已停止的 CEV 有资格再次使用。例如,您可以将 CEV 的状态从 available 更改为 inactive,并从 inactive 更改回 available

要修改 CEV

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Custom engine versions(自定义引擎版本)。

  3. 选择要修改其描述或状态的 CEV。

  4. 对于 Actions (操作),选择 Modify (修改)

  5. 进行以下任何更改:

    • 对于 CEV status settings(CEV 状态设置),选择新的可用状态。

    • 对于 Version description(版本描述),输入新的描述。

  6. 选择 Modify CEV(修改 CEV)。

    如果 CEV 正在使用中,控制台将显示 You can't modify the CEV status(您不能修改 CEV 状态)。修复问题并重试。

Custom engine versions(自定义引擎版本)页面显示。

要通过使用 Amazon CLI 修改 CEV,请运行 modify-custom-db-engine-version 命令。您可以通过运行 describe-db-engine-versions 命令查找要修改的 CEV。

以下选项为必填:

  • --engine custom-oracle-ee

  • --engine-version cev,其中 cev 是要修改的自定义引擎版本的名称

  • --status status,其中 status 是您希望分配给 CEV 的可用状态。

以下示例将名为 19.my_cev1 的 CEV 从当前状态更改为 inactive

对于 Linux、macOS 或 Unix:

aws rds modify-custom-db-engine-version \ --engine custom-oracle-ee \ --engine-version 19.my_cev1 \ --status inactive

对于 Windows:

aws rds modify-custom-db-engine-version ^ --engine custom-oracle-ee ^ --engine-version 19.my_cev1 ^ --status inactive

删除 CEV

您可以使用 Amazon Web Services Management Console 或 Amazon CLI 删除 CEV。删除通常需要花费几分钟的时间。

要删除 CEV,它不能被以下任何一项使用:

  • RDS Custom 数据库实例

  • RDS Custom 数据库实例的快照

  • RDS Custom 数据库实例的自动备份

要删除 CEV

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Custom engine versions(自定义引擎版本)。

  3. 选择要删除其描述或状态的 CEV。

  4. 对于 Actions (操作),选择 Delete (删除)

    Delete cev_name?(删除 cev_name?)对话框显示。

  5. 输入 delete me,然后选择删除

    Custom engine versions(自定义引擎版本)页面中,横幅显示您的 CEV 正在被删除。

要通过使用 Amazon CLI 删除 CEV,请运行 delete-custom-db-engine-version 命令。

以下选项为必填:

  • --engine custom-oracle-ee

  • --engine-version cev ,其中 cev 是要删除的自定义引擎版本的名称

以下示例会删除名为 19.my_cev1 的 CEV。

对于 Linux、macOS 或 Unix:

aws rds delete-custom-db-engine-version \ --engine custom-oracle-ee \ --engine-version 19.my_cev1

对于 Windows:

aws rds delete-custom-db-engine-version ^ --engine custom-oracle-ee ^ --engine-version 19.my_cev1