欢迎访问宙启技术站
智能推送

Oracle 12c Non CDB 数据库切换成PDB

发布时间:2023-05-18 18:39:03

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 数据库能够正常运行。