将 RDS for Oracle 非 CDB 转换为 CDB - Amazon Relational Database Service

将 RDS for Oracle 非 CDB 转换为 CDB

您可以使用 modify-db-instance 命令将 Oracle 数据库的架构从非 CDB 架构更改为 Oracle 多租户架构,也称为 CDB 架构。在大多数情况下,这种方法比创建新的 CDB 并导入数据更可取。转换操作会导致停机。

升级数据库引擎版本时,不能在同一操作中更改数据库架构。因此,要将 Oracle Database 19c 非 CDB 升级到 Oracle Database 21c CDB,您首先需要执行一个步骤来将非 CDB 转换为 CDB,然后再执行一个步骤来将 19c CDB 升级到 21c CDB。

非 CDB 转换操作有以下要求:

  • 必须为数据库引擎类型指定 oracle-ee-cdboracle-se2-cdb。只支持这两个值。

  • 您的数据库引擎必须使用具有 2021 年 4 月或更高版本的版本更新(RU)的 Oracle Database 19c。

该操作具有以下限制:

  • 您无法将 CDB 转换为非 CDB。您只能将非 CDB 转换为 CDB。

  • 您无法通过单次 modify-db-instance 调用将非 CDB 转换为多租户配置。将非 CDB 转换为 CDB 后,您的 CDB 将处于单租户配置。要将单租户配置转换为多租户配置,请再次运行 modify-db-instance。有关更多信息,请参阅 将单租户配置转换为多租户配置

  • 您无法转换启用了 Oracle Data Guard 的主数据库或副本数据库。要转换具有只读副本的非 CDB,请先删除所有只读副本。

  • 您无法在同一操作中升级数据库引擎版本,并将非 CDB 转换为 CDB。

转换非 CDB 前,请考虑以下事项:

将非 CDB 转换为 CDB
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在 Amazon RDS 控制台的右上角,选择数据库实例所在的 AWS 区域。

  3. 在导航窗格中,选择数据库,然后选择要转换为 CDB 实例的非 CDB 实例。

  4. 选择修改

  5. 对于架构设置,选择 Oracle 多租户架构。转换后,您的 CDB 将处于单租户配置。

  6. (可选)对于数据库参数组,请为您的 CDB 实例选择一个新的参数组。转换数据库实例时和升级数据库实例时,适用的参数组注意事项相同。有关更多信息,请参阅 参数组注意事项

  7. (可选)对于选项组,为 CDB 实例选择一个新的选项组。转换数据库实例时和升级数据库实例时,适用的选项组注意事项相同。有关更多信息,请参阅 选项组注意事项

  8. 当所有更改都达到您的要求时,选择继续并查看修改摘要。

  9. (可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致停机。有关更多信息,请参阅“计划修改设置”。

  10. 在确认页面上,检查您的更改。如果更改正确无误,请选择修改数据库实例

    也可以选择 Back (返回) 编辑您的更改,或选择 Cancel (取消) 取消更改。

要将数据库实例上的非 CDB 转换为采用单租户配置的 CDB,请在 AWS CLI 命令 modify-db-instance 中将 --engine 设置为 oracle-ee-cdboracle-se2-cdb。有关更多信息,请参阅 数据库实例的设置

以下示例转换名为 my-non-cdb 的数据库实例,并指定自定义选项组和参数组。

对于 Linux、macOS 或 Unix:

aws rds modify-db-instance \ --db-instance-identifier my-non-cdb \ --engine oracle-ee-cdb \ --option-group-name custom-option-group \ --db-parameter-group-name custom-parameter-group

对于 Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-non-cdb ^ --engine oracle-ee-cdb ^ --option-group-name custom-option-group ^ --db-parameter-group-name custom-parameter-group

要将非 CDB 转换为 CDB,请在 RDS API 操作 ModifyDBInstance 中指定 Engine