亚马逊AWS官方博客

面向 Oracle 的 Amazon RDS 自定义 – 数据库环境中的新控制功能

在本地部署或 Amazon Elastic Compute Cloud (Amazon EC2) 等自我管理环境中管理数据库需要客户花费时间和资源来执行数据库管理任务,例如调配、扩缩、修补、备份和配置,以获得高可用性。因此,成千上万的 AWS 客户使用 Amazon Relational Database Service (Amazon RDS),因为它可以自动执行这些无差别的管理任务。

但是,有些旧式应用程序和打包应用程序需要客户对底层数据库和操作系统 (OS) 进行专门的自定义,例如面向医护和生命科学、电信、零售、银行和酒店业的 Oracle 行业专用应用程序。具有这类特定自定义需求的客户享受不到像 Amazon RDS 这样的完全托管式数据库服务,他们最终会在本地部署或 EC2 实例上部署数据库。

我很高兴地宣布正式推出面向 Oracle 的 Amazon RDS 自定义,数据库管理员可以使用这些新功能访问和自定义数据库环境和操作系统。借助面向 Oracle 的 RDS 自定义,您现在可以访问和自定义数据库服务器主机和操作系统,例如,通过应用特殊补丁和更改数据库软件设置来支持需要特权访问的第三方应用程序。

您可以轻松地将这些应用程序现有的自我管理数据库移动到 Amazon RDS,并自动执行耗时的数据库管理任务,例如软件安装、修补和备份。以下是 Amazon EC2、面向 Oracle 的 RDS 自定义与 RDS 之间在功能和责任方面的简单比较。

功能和作用 Amazon EC2 面向 Oracle 的 RDS 自定义 Amazon RDS
应用程序优化 客户 客户 客户
扩缩/高可用性 客户 共享 AWS
数据库备份 客户 共享 AWS
数据库软件维护 客户 共享 AWS
操作系统维护 客户 共享 AWS
服务器维护 AWS AWS AWS

与 RDS 相比,面向 Oracle 的 RDS 自定义的责任共担模型为您提供了更多控制权,但伴随着更多的责任,类似于 EC2。因此,如果您在一个数据库环境中要为自己所做的更改负责,且需要在该环境中拥有深度控制能力,而且您希望将常见的管理任务转移到 AWS,建议使用面向 Oracle 的 RDS 自定义作为部署选项,而不是 EC2 上的自我管理数据库。

开始使用面向 Oracle 的 Amazon RDS 自定义
要开始使用面向 Oracle 的 RDS 自定义,您需要创建自定义引擎版本 (CEV)、支持的 Oracle 数据库版本的数据库安装文件,然后将 CEV 上传到 Amazon Simple Storage Service (Amazon S3)。此次发布包括 Oracle Enterprise Edition,允许 Oracle 客户通过自带许可证 (BYOL) 使用自己获得许可的软件。

然后,只需在 AWS 管理控制台中单击几下,您就可以在几分钟内部署 Oracle 数据库实例。随后,您可以使用 SSH 或 AWS Systems Manager 连接到该实例。

在创建和连接数据库实例之前,请确保满足一些先决条件,例如使用 Amazon RDS 用户指南中预先创建的 AWS CloudFormation 模板配置 AWS Identity and Access Management (IAM) 角色和 Amazon Virtual Private Cloud (VPC)

面向 Oracle 的 RDS 自定义需要对称的 AWS Key Management Service (KMS) 密钥。如果您的账户中现在没有对称的 KMS 密钥,请按照 AWS KMS 开发人员指南中创建密钥部分的说明来创建 KMS 密钥。

Oracle 数据库安装文件补丁托管在 Oracle Software Delivery Cloud 上。如果要创建 CEV,请在 Linux x86/64 平台下搜索并下载您首选的版本,然后将其上传到 Amazon S3。

$ aws s3 cp install-or-patch-file.zip \ s3://my-oracle-db-files

要创建用于创建数据库实例的 CEV,您需要一份 CEV 清单,这是一个 JSON 文档,用于描述存储在 Amazon S3 中的 .zip 安装文件。面向 Oracle 的 RDS 自定义将按照使用此 CEV 创建实例时列出的顺序应用各个补丁。

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

要在 AWS 管理控制台中创建 CEV,请在 Custom engine version(自定义引擎版本)菜单中选择 Create custom engine version(创建自定义引擎版本)。

您可以将 Engine type(引擎类型)设置为 Oracle,选择您的首选数据库版本,然后输入 CEV 清单,即您指定的 S3 存储桶的位置。然后,选择 Create custom engine version(创建自定义引擎版本)。创建过程大约需要两小时。

要使用准备好的 CEV 创建数据库实例,请在 Databases(数据库)菜单中选择 Create database(创建数据库)。选择数据库创建方法时,请选择 Standard create(标准创建)。您可以将 Engine options(引擎选项)设置为 Oracle,然后在数据库管理类型中选择 Amazon RDS 自定义

Settings(设置)中,输入数据库实例标识符的唯一名称以及您的主用户名和密码。在原定设置中,新实例为主用户使用自动生成的密码。要了解其余设置中的更多信息,请参阅 Amazon RDS 用户指南中的数据库实例设置。选择 Create database(创建数据库)。

或者,您可以通过在 AWS Command Line Interface (AWS CLI) 中运行 create-custom-db-engine-version 命令来创建 CEV。

$ aws rds create-db-instances \
      --engine my-oracle-ee \
      --db-instance-identifier my-oracle-instance \ 
      --engine-version 19.my_cev1 \ 
      --allocated-storage 250 \ 
      --db-instance-class db.m5.xlarge \ 
      --db-subnet-group mydbsubnetgroup \ 
      --master-username masterawsuser \ 
      --master-user-password masteruserpassword \ 
      --backup-retention-period 3 \ 
      --no-multi-az \ 
              --port 8200 \
      --license-model bring-your-own-license \
      --kms-key-id my-kms-key

创建数据库实例后,您可以使用 SSH 客户端连接到此实例。该过程与连接到 Amazon EC2 实例的过程相同。要连接到数据库实例,您需要与实例关联的密钥对。面向 Oracle 的 RDS 自定义会代表您创建密钥对。密钥对名称使用前缀 do-not-delete-ssh-privatekey-db-AWS Secrets Manager 将您的私有密钥存储为密钥。

有关更多信息,请参阅 Amazon EC2 用户指南中的使用 SSH 连接到您的 Linux 实例

您还可以使用 AWS Systems Manager 会话管理器连接到 Linux 实例,该功能可以通过基于浏览器的外壳程序管理 EC2 实例。要了解更多信息,请参阅 Amazon RDS 用户指南中的使用 SSH 和 AWS Systems Manager 连接到 RDS 自定义数据库实例

注意事项
在管理数据库实例时,需要注意以下几点:

高可用性 (HA):要在不同可用区中的数据库实例之间配置复制,使其对可用区故障具有弹性,您可以为面向 Oracle 数据库实例的 RDS 自定义创建只读副本。只读副本的创建与 Amazon RDS 类似,但有一些区别。创建 RDS 自定义只读副本时,并非所有选项都受支持。要了解如何配置高可用性,请参阅 AWS 文档中的使用面向 Oracle 的 RDS 自定义只读副本

备份和恢复:与 Amazon RDS 一样,面向 Oracle 的 RDS 自定义会在数据库实例备份期间创建并保存自动备份。您还可以手动备份数据库实例。该过程与拍摄 Amazon RDS 数据库实例的快照相同。第一个快照包含完整数据库实例的数据,就像在 Amazon RDS 中一样。RDS 自定义还包括操作系统映像的快照以及包含数据库软件的 EBS 卷。后续快照逐渐加入。启用备份保留后,RDS 自定义还会将事务日志上传到您账户中的 S3 存储桶中,以便与 RDS 时间点恢复功能搭配使用。使用 AWS 管理控制台或 AWS CLI 还原数据库快照或将数据库实例还原到特定时间点。要了解更多信息,请参阅 Amazon RDS 用户指南中备份和还原面向 Oracle 数据库实例的 Amazon RDS 自定义

监控和日志记录:面向 Oracle 的 RDS 自定义提供称为支持边界的监控服务。此服务可确保您的数据库实例使用受支持的 AWS 基础设施、操作系统和数据库。此外,对底层操作系统的所有更改和自定义都会使用 Systems Manager 和 AWS CloudTrail 自动记录,以供审计之用。要了解更多信息,请参阅 Amazon RDS 用户指南中的对面向数据库实例的 Amazon RDS 自定义进行问题排查

现已推出
面向 Oracle 的 Amazon RDS 自定义现已在美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈)、欧洲(法兰克福)、欧洲(爱尔兰)、欧洲(斯德哥尔摩)、亚太地区(新加坡)、亚太地区(悉尼)和亚太地区(东京)等区域发布。

要了解详情,请查看面向 Oracle 的 Amazon RDS 自定义的产品页面文档。请通过 Amazon RDS 的 AWS 论坛或您常用的 AWS Support 联系方式向我们发送反馈。

Channy