创建 CEV - Amazon Relational Database Service

创建 CEV

您可以使用 AWS Management Console 或 AWS CLI 创建 CEV。指定多租户或非多租户架构。有关更多信息,请参阅 多租户架构注意事项

通常,创建 CEV 需要大约两个小时。创建 CEV 后,您可以使用它来创建 RDS Custom 数据库实例。有关更多信息,请参阅 创建 RDS Custom for Oracle 数据库实例

请注意创建 CEV 的以下要求和限制:

  • 包含安装文件的 Amazon S3 存储桶必须与您的 CEV 在同一个 AWS 区域。否则,创建过程将失败。

  • CEV 名称的格式必须为 major-engine-version.customized_string,如 19.cdb_cev1 所示。

  • CEV 名称必须包含 1–50 个字母数字字符、下划线、短划线或句点。

  • CEV 名称不能包含连续的句点,如 19..cdb_cev1 所示。

要创建 CEV
  1. 登录 AWS 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. 引擎选项中,执行以下操作:

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

    2. 对于架构设置,(可选)选择多租户架构来创建使用引擎 custom-oracle-ee-cdbcustom-oracle-se2-cdb 的 Oracle 多租户 CEV。您只能使用多租户 CEV 创建 RDS Custom for Oracle CDB。如果您不选择此选项,CEV 将为非 CDB,它使用引擎 custom-oracle-eecustom-oracle-se2

      注意

      您选择的架构是 CEV 的永久特征。您以后无法修改您的 CEV 以使用其他架构。

    3. 请选择以下任一选项:

      • 创建新的 CEV – 从头开始创建 CEV。在这种情况下,必须指定 JSON 清单,其中指定了数据库二进制文件。

      • 从源创建 CEV – 在指定要复制的 CEV 中,选择要用作源 CEV 的现有 CEV。在这种情况下,您可以指定新的亚马逊机器映像(AMI),但不能指定不同的数据库二进制文件。

    4. 对于引擎版本,选择主要引擎版本。

  5. 版本详细信息中,执行以下操作:

    1. 自定义引擎版本名称中输入有效的名称。例如,您可以输入名称 19.cdb_cev1

    2. (可选)为 CEV 输入描述。

  6. 安装媒体中,执行以下操作:

    1. (可选)对于 AMI ID,将该字段留空,以使用提供最新服务的 AMI,或者输入您之前用于创建 CEV 的 AMI。要获取有效的 AMI ID,请使用下面的任一种方法:

      • 在控制台中,选择左侧导航窗格中的自定义引擎版本,然后选择 CEV 的名称。CEV 使用的 AMI ID 显示在配置选项卡中。

      • 在 AWS CLI 中,使用 describe-db-engine-versions 命令。在输出中搜索 ImageID

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

      注意

      您创建 CEV 的 AWS 区域必须与 S3 桶位于相同的区域。

    3. (仅限创建新 CEV)对于 CEV 清单,请输入您在创建 CEV 清单中创建的 JSON 清单。

  7. KMS 密钥部分中,选择输入密钥 ARN以列出可用的 AWS KMS 密钥。然后从列表中选择您的 KMS 密钥。

    RDS Custom 需要 AWS KMS 密钥。有关更多信息,请参阅 步骤 1:创建或重用对称加密 AWS KMS 密钥

  8. (可选)选择添加新标签以便为您的 CEV 创建键值对。

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

    如果 JSON 清单格式无效,则控制台将显示验证 CEV 清单时出错。修复问题并重试。

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

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

以下选项为必填:

  • --engine – 指定引擎类型。对于 CDB,请指定 custom-oracle-ee-cdbcustom-oracle-se2-cdb。对于非 CDB,请指定 custom-oracle-eecustom-oracle-se2。您只能从使用 custom-oracle-ee-cdbcustom-oracle-se2-cdb 创建的 CEV 创建 CDB。您只能从使用 custom-oracle-eecustom-oracle-se2 创建的 CEV 创建非 CDB。

  • --engine-version – 指定引擎版本。格式为 major-engine-version.customized_string。CEV 名称必须包含 1–50 个字母数字字符、下划线、短划线或句点。CEV 名称不能包含连续的句点,如 19..cdb_cev1 所示。

  • --kms-key-id – 指定一个 AWS KMS key。

  • --manifest – 指定 manifest_json_string--manifest file:file_namemanifest_json_string 中不允许使用换行符。确保在 JSON 代码中转义双引号 ("),方法是使用反斜杠 (\) 作为其前缀。

    以下示例展示来自 步骤 5:准备 CEV 清单 的 19c 的 manifest_json_string。该示例为 Oracle 根目录、Oracle 主目录以及 UNIX/Linux 用户和组的 ID 和名称设置了新值。如果您复制此字符串,请先移除所有换行符,然后再将其粘贴到命令中。

    "{\"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\", \ \"unixUname\":\"oracle\", \ \"oracleHome\":\"/home/oracle/oracle.19.0.0.0.ru-2020-04.rur-2020-04.r1.EE.1\", \ \"oracleBase\":\"/home/oracle/\"}}"

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

您还可以指定以下选项:

  • --description – 指定您的 CEV 的描述。

  • --database-installation-files-s3-prefix – 指定您在步骤 3:将安装文件上传到 Amazon S3中指定的文件夹名称。

  • --image-id – 指定要重复使用的 AMI ID。要查找有效的 ID,请运行 describe-db-engine-versions 命令,然后在输出中搜索 ImageID。原定设置情况下,RDS Custom for Oracle 使用最新的可用 AMI。

下面的示例创建一个名为 19.cdb_cev1 的 Oracle 多租户 CEV。该示例重用现有 AMI,而不是使用最新的可用 AMI。确保 CEV 的名称以主要引擎版本号开头。

对于 Linux、macOS 或 Unix:

aws rds create-custom-db-engine-version \ --engine custom-oracle-se2-cdb \ --engine-version 19.cdb_cev1 \ --database-installation-files-s3-bucket-name us-east-1-123456789012-custom-installation-files \ --database-installation-files-s3-prefix 123456789012/cev1 \ --kms-key-id my-kms-key \ --description "test cev" \ --manifest manifest_string \ --image-id ami-012a345678901bcde

对于 Windows:

aws rds create-custom-db-engine-version ^ --engine custom-oracle-se2-cdb ^ --engine-version 19.cdb_cev1 ^ --database-installation-files-s3-bucket-name us-east-1-123456789012-custom-installation-files ^ --database-installation-files-s3-prefix 123456789012/cev1 ^ --kms-key-id my-kms-key ^ --description "test cev" ^ --manifest manifest_string ^ --image-id ami-012a345678901bcde

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

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

以下不完整的示例输出显示了引擎、参数组、清单和其他信息。

{ "DBEngineVersions": [ { "Engine": "custom-oracle-se2-cdb", "EngineVersion": "19.cdb_cev1", "DBParameterGroupFamily": "custom-oracle-se2-cdb-19", "DBEngineDescription": "Containerized Database for Oracle Custom SE2", "DBEngineVersionDescription": "test cev", "Image": { "ImageId": "ami-012a345678901bcde", "Status": "active" }, "ValidUpgradeTarget": [], "SupportsLogExportsToCloudwatchLogs": false, "SupportsReadReplica": true, "SupportedFeatureNames": [], "Status": "available", "SupportsParallelQuery": false, "SupportsGlobalDatabases": false, "MajorEngineVersion": "19", "DatabaseInstallationFilesS3BucketName": "us-east-1-123456789012-custom-installation-files", "DatabaseInstallationFilesS3Prefix": "123456789012/cev1", "DBEngineVersionArn": "arn:aws:rds:us-east-1:123456789012:cev:custom-oracle-se2-cdb/19.cdb_cev1/abcd12e3-4f5g-67h8-i9j0-k1234l56m789", "KMSKeyId": "arn:aws:kms:us-east-1:732027699161:key/1ab2345c-6d78-9ef0-1gh2-3456i7j89k01", "CreateTime": "2023-03-07T19:47:58.131000+00:00", "TagList": [], "SupportsBabelfish": false, ...

创建 CEV 失败

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

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