Oracle 12c Non CDB 数据库切换成PDB
Oracle 12c 是一款非常强大的数据库管理系统,它支持非 CDB(Container Database) 和 PDB(Pluggable Database) 两种模式。在非 CDB 模式下,每个数据库是一个独立的实例,所有的数据库都是完全独立的。在 PDB 模式下,一个 CDB 可以包含多个 PDB,每个 PDB 都是一个这个 CDB 中的一个独立的数据库。在本文中,我们将介绍如何将一个非 CDB 数据库切换为 PDB 数据库。
1. 检查数据库是否可以切换为 PDB
在将现有的非 CDB 数据库切换为 PDB 数据库之前,首先需要检查数据库是否符合以下条件:
- 数据库版本必须为 12.1.0.2 或更高版本。
- 数据库需要为“已装箱模式”启用。
- 所有数据文件必须处于“已导出”状态。
如果您的数据库符合上述条件,您就可以继续下一步操作。
2. 创建一个 PDB 容器
在切换数据库之前,我们需要创建一个 PDB 容器。可以通过以下命令创建一个 PDB 容器:
CREATE PLUGGABLE DATABASE pdb_name FROM non_cdb_name;
这将为您创建一个新的 PDB,名称为 pdb_name,从非 CDB 数据库 non_cdb_name 中转换而来。
3. 配置新的 PDB
一旦您创建了 PDB 容器,就需要进行一些配置以使其正常运作。以下是一些必要的配置:
- 配置共享服务器参数:这项配置需要在 CDB 中进行,并将参数配置为适合您的环境。
- 配置 PDB 内部参数:您可以在 PDB 中运行此类操作,以根据您的需求选择适当的参数。这样可以确保 PDB 能够正常运行。
- 配置共享元数据(可选):如果您需要共享元数据,则必须在 CDB 中配置这些参数。
4. 创建 PDB 数据文件
一旦您完成了配置,就可以为 PDB 创建数据文件。您可以使用 CDB$ROOT 或 SYSTEM 用户在 PDB 中运行以下命令:
CREATE TABLESPACE pdb_ts
DATAFILE '/u02/oradata/pdb_name/pdb_ts01.dbf' SIZE 10M;
这将为您创建一个名为 pdb_ts 的表空间,并在“/u02/oradata/pdb_name”目录下创建一个名为“pdb_ts01.dbf”的数据文件。
5. 将非 CDB 数据文件导入到 PDB
如果您的非 CDB 数据库中有现成的数据文件,那么您可以将它们导入到 PDB 中。您可以使用以下命令将数据文件导入到 PDB 中:
ALTER DATABASE DATAFILE '/u01/oradata/data01.dbf'
OFFLINE IMMEDIATE;
在这里,我们使用了“ALTER DATABASE”命令来将数据文件“/u01/oradata/data01.dbf”调离离线,以便我们可以将它们导入到 PDB 中。
6. 打开 PDB 数据库
当您完成了以上所有步骤后,就可以打开 PDB 数据库了。您可以使用以下命令在 PDB 内部打开数据库:
ALTER PLUGGABLE DATABASE pdb_name OPEN;
这将为您打开 PDB 数据库,并允许您使用其中包含的数据。
总结:
切换非 CDB 数据库为 PDB 数据库需要您完成以上六个步骤。一旦您完成了这些步骤,您就可以在 PDB 数据库中使用您在非 CDB 数据库中创建的数据了。请注意,这只是完成 PDB 数据库的 步。您可能还需要进行其他配置和优化,以确保 PDB 数据库能够正常运行。
