将 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-cdb
或oracle-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 前,请考虑以下事项:
-
选项和参数组的注意事项与升级数据库引擎的注意事项相同。有关更多信息,请参阅 Oracle 数据库升级注意事项。
-
如果数据库实例安装了
OEMAGENT
选项,则最佳实践是在转换非 CDB 之前移除此选项。在非 CDB 转换为 CDB 之后,请重新安装该选项。有关更多信息,请参阅 适用于 Enterprise Manager Cloud Control 的 Oracle Management Agent。
将非 CDB 转换为 CDB
登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在 Amazon RDS 控制台的右上角,选择数据库实例所在的 AWS 区域。
-
在导航窗格中,选择数据库,然后选择要转换为 CDB 实例的非 CDB 实例。
-
选择修改。
-
对于架构设置,选择 Oracle 多租户架构。转换后,您的 CDB 将处于单租户配置。
-
(可选)对于数据库参数组,请为您的 CDB 实例选择一个新的参数组。转换数据库实例时和升级数据库实例时,适用的参数组注意事项相同。有关更多信息,请参阅 参数组注意事项。
-
(可选)对于选项组,为 CDB 实例选择一个新的选项组。转换数据库实例时和升级数据库实例时,适用的选项组注意事项相同。有关更多信息,请参阅 选项组注意事项。
-
当所有更改都达到您的要求时,选择继续并查看修改摘要。
-
(可选)选择立即应用以立即应用更改。选择此选项在某些情况下可能导致停机。有关更多信息,请参阅“计划修改设置”。
-
在确认页面上,检查您的更改。如果更改正确无误,请选择修改数据库实例。
也可以选择 Back (返回) 编辑您的更改,或选择 Cancel (取消) 取消更改。
要将数据库实例上的非 CDB 转换为采用单租户配置的 CDB,请在 AWS CLI 命令 modify-db-instance 中将 --engine
设置为 oracle-ee-cdb
或 oracle-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-namecustom-option-group
\ --db-parameter-group-namecustom-parameter-group
对于 Windows:
aws rds modify-db-instance ^ --db-instance-identifier
my-non-cdb
^ --engine oracle-ee-cdb ^ --option-group-namecustom-option-group
^ --db-parameter-group-namecustom-parameter-group
要将非 CDB 转换为 CDB,请在 RDS API 操作 ModifyDBInstance 中指定 Engine
。