RDS for Oracle CDB 概述 - Amazon Relational Database Service

RDS for Oracle CDB 概述

运行 Oracle Database 19c 或更高版本时,您可以将 RDS for Oracle 数据库实例创建为容器数据库(CDB)。从 Oracle Database 21c 开始,所有数据库都是 CDB。CDB 不同于非 CDB,因为 CDB 可以包含可插拔数据库(PDB),在 RDS for Oracle 中称为租户数据库。PDB 是模式和对象的可移植集合,在应用程序看来是单独的数据库。

在创建 CDB 实例时创建初始租户数据库(PDB)。在 RDS for Oracle 中,您的客户端应用程序与 PDB 交互,而不是与 CDB 交互。使用 PDB 的体验基本上与使用非 CDB 的体验相同。

CDB 架构的多租户配置

RDS for Oracle 支持 Oracle 多租户架构(也称为 CDB 架构)的多租户配置。在此配置中,您的 RDS for Oracle CDB 实例可以包含 1-30 个租户数据库,具体取决于数据库版本和任何所需的选项许可证。在 Oracle 数据库中,租户数据库是 PDB。您的数据库实例必须使用 Oracle 数据库版本 19.0.0.0.ru-2022-01.rur-2022.r1 或更高版本。

注意

Amazon RDS 功能之所以被称为“多-租户”而不是“多租户”,是因为它是 RDS 平台的一项功能,而不仅仅是 Oracle 数据库引擎的功能。“Oracle 多租户”一词仅指 Oracle 数据库架构,该架构与本地部署和 RDS 部署均兼容。

您可以配置以下设置:

  • 租户数据库名称

  • 租户数据库主用户名

  • 租户数据库主密码

  • 租户数据库字符集

  • 租户数据库国家字符集

租户数据库字符集可以不同于 CDB 字符集。这同样适用于国家字符集。创建初始租户数据库后,您可以使用 RDS API 创建、修改或删除租户数据库。CDB 名称原定设置为 RDSCDB 且无法更改。有关更多信息,请参阅数据库实例的设置修改 RDS for Oracle 租户数据库

CDB 架构的单租户配置

RDS for Oracle 支持 Oracle 多租户架构的旧配置,即单租户配置。在此配置中,RDS for Oracle CDB 实例只能包含一个租户(PDB)。之后无法创建更多 PDB。

CDB 的创建和转换选项

Oracle Database 21c 仅支持 CDB,而 Oracle Database 19c 同时支持 CDB 和非 CDB。所有 RDS for Oracle CDB 实例都支持多租户和单租户配置。

Oracle 数据库架构的创建、转换和升级选项

下表显示了用于创建和升级 RDS for Oracle 数据库的不同架构选项。

发布版本 数据库创建选项 架构转换选项 主要版本升级目标
Oracle Database 21c 仅限 CDB 架构 不适用 不适用
Oracle Database 19c CDB 或非 CDB 架构 非 CDB 至 CDB 架构(2021 年 4 月 RU 或更高版本) Oracle Database 21c CDB

如上表所示,在新的主要数据库版本中,您不能直接将非 CDB 升级到 CDB。但您可以将 Oracle Database 19c 非 CDB 转换为 Oracle Database 19c CDB,然后将 Oracle Database 19c CDB 升级为 Oracle Database 21c CDB。有关更多信息,请参阅 将 RDS for Oracle 非 CDB 转换为 CDB

CDB 架构配置的转换选项

下表显示了用于转换 RDS for Oracle 数据库实例架构配置的不同选项。

当前架构和配置 转换为 CDB 架构的单租户配置 转换为 CDB 架构的多租户配置 转换为非 CDB 架构
非 CDB 支持 支持* 不适用
使用单租户配置的 CDB 不适用 支持 不支持
使用多租户配置的 CDB 不支持 不适用 不支持

* 您无法在单个操作中将非 CDB 转换为多租户配置。将非 CDB 转换为 CDB 后,CDB 将处于单租户配置。然后,您可以通过另一个操作将单租户配置转换为多租户配置。

CDB 中的用户账户和权限

在 Oracle 多租户架构中,所有用户账户都是普通用户本地用户。CDB 普通用户是指在 CDB 根目录和每个现有和将来的 PDB 中已知单个身份和密码的数据库用户。相比之下,本地用户只存在于单个 PDB 中。

RDS 主用户是 PDB 中的本地用户账户,这是您在创建数据库实例时命名的。如果您创建新的用户账户,这些用户也将成为位于 PDB 中的本地用户。您不能使用任何用户账户创建新的 PDB 或修改现有 PDB 的状态。

rdsadmin 用户是普通用户账户。您可以运行此账户中存在的 RDS for Oracle 软件包,但无法以 rdsadmin 的身份登录。有关详细信息,请参阅 Oracle 文档中的关于普通用户和本地用户

CDB 中的参数组系列

CDB 有其自己的参数类系列和原定设置参数值。CDB 参数组系列如下所示:

  • oracle-ee-cdb-21

  • oracle-se2-cdb-21

  • oracle-ee-cdb-19

  • oracle-se2-cdb-19

RDS for Oracle CDB 的限制

RDS for Oracle 支持本地 CDB 中提供的一部分功能。

CDB 的限制

以下限制在 CDB 级别适用于 RDS for Oracle:

  • 您无法连接到 CDB。您始终连接到租户数据库(PDB),而不是 CDB。就像为非 CDB 指定终端节点一样,应为 PDB 指定终端节点。唯一的区别是您指定 pdb_name 作为数据库名称,其中 pdb_name 是为 PDB 选择的名称。

  • 您无法将使用多租户配置的 CDB 转换为使用单租户配置的 CDB。转换为多租户配置是单向不可逆的操作。

  • 如果您的数据库实例使用低于 19.0.0.0.ru-2022-01.rur-2022.r1 的 Oracle 数据库版本,则您无法启用或者转换为多租户配置。

  • 您不能将 RDS for Oracle CDB 与 ORDS 22 及更高版本结合使用。作为一种变通方法,您可以使用较低版本的 ORDS,也可以使用 Oracle Database 19c 非 CDB。

  • 您可以从 CDB$ROOT 内启用审计。您必须在每个 PDB 中单独启用审计。

对以下功能的支持取决于架构配置。

功能 在单租户中支持 在多租户中支持

Oracle Data Guard

不支持

Oracle Label Security

Oracle Enterprise Manager(OEM)

OEM Agent

Database Activity Streams

不支持

租户数据库(PDB)限制

以下限制适用于 RDS for Oracle 多租户配置中的租户数据库:

  • 您不能将租户数据库操作推迟到维护时段。所有更改都会立即生效。

  • 您无法将租户数据库添加到使用单租户配置的 CDB。

  • 您不能在单个操作中添加或修改多个租户数据库。一次只能添加或修改一个。

  • 您不能将租户数据库名称修改为 CDB$ROOTPDB$SEED

  • 如果租户数据库是 CDB 中唯一的租户,则无法将其删除。

  • 并非所有数据库实例类类型都有足够的资源来支持 RDS for Oracle CDB 实例中的多个 PDB。PDB 数量的增加会影响较小实例类的性能和稳定性,并会增加大多数实例级操作(例如数据库升级)的时间。

  • 不能使用多个 AWS 账户在同一 CDB 中创建 PDB。PDB 必须归托管 PDB 的数据库实例的账户所有。

  • CDB 中的所有 PDB 都使用相同的终端节点和数据库侦听器。

  • PDB 级别不支持以下操作,但 CDB 级别支持以下操作:

    • 备份和恢复

    • 数据库升级

    • 维护操作

  • PDB 级别不支持以下功能,但 CDB 级别支持以下功能:

    • 选项组(选项安装在您 CDB 实例上的所有 PDB 上)

    • 参数组(所有参数均来自与您的 CDB 实例关联的参数组)

  • 本地 CDB 架构支持但 RDS for Oracle CDB 不支持的 PDB 级操作包括以下内容:

    注意

    以下列表并非详尽内容。

    • 应用程序 PDB

    • 代理 PDB

    • 启动和停止 PDB

    • PDB 的拔出和插入

      要将数据移入或移出 CDB,请使用与非 CDB 相同的方法。有关迁移数据的更多信息,请参阅将数据导入到 Amazon RDS 上的 Oracle

    • PDB 级别的设置选项

      PDB 将继承 CDB 选项组中的选项设置。有关设置选项的更多信息,请参阅Amazon RDS 的参数组。有关最佳实践,请参阅使用数据库参数组

    • 在 PDB 中配置参数

      PDB 继承 CDB 的参数设置。有关设置选项的更多信息,请参阅向 Oracle 数据库实例添加选项

    • 为同一 CDB 中的 PDB 配置不同的侦听器

    • Oracle 闪回功能