如何在Oracle 12c中使用Non-CDB创建PDB

分类:编程技术 时间:2024-02-20 15:27 浏览:0 评论:0
0
本文与大家分享如何在Oracle 12c中使用Non-CDB创建PDB。小编觉得还是比较实用的,所以分享给大家学习一下。希望您读完本文后有所收获。没什么好说的。 ,下面就和小编一起来看看吧。

非 CDB 可以移动为 PDB。您可以使用以下方法来完成此任务:
。通过克隆 Non-CDB 创建 PDB。从 Oracle 12.1.0.2 开始,可以通过克隆非 CDB 来创建 PDB。此方法是创建 PDB 最简单的方法,但需要将文件从 Non-CDB 复制到新目录。

。使用 dbms_pdb 包生成 XML 元数据文件。 XML元数据文件用于描述Non-CDB数据文件,并可用于将其附加到CDB。此方法比克隆非 CDB 需要更多步骤,但它允许您在不移动非 CDB 文件的情况下创建 PDB。为了使用此技术,Non-CDB 必须是适用于 Oracle 12C 的 Non-CDB。如果当前Non-CDB使用Oracle 12C之前的版本,则必须将Non-CDB升级到Oracle 12C。

.使用Oracle Data Pump导出/导入
您可以使用Data Pump从Non-CDB导出数据,然后将其导入到PDB中。执行导入时,请在用户名后指定 PDB 连接标识符。例如,如果PDB的连接标识符为hrpdb,则执行导入后执行以下命令:
imdp username@hrpdb.... 如果Non-CDB的版本为11.2.0.3或更高版本,则可以使用完全传输导出/导入来移动数据。将Non-CDB版本11.2.0.3或更高版本的11g迁移到Oracle 12C时,导出时需要将版本参数设置为12.0.0.0.0或更高版本。如果Non-CDB的版本在11.2.0.3之前,您可以使用传输表空间来移动数据或执行全库导出\导入。

。使用goldengate复制
您可以使用goldengate将数据从Non-CDB复制到PDB。

执行dbms_pdb包N次on-CDB
您可以使用 dbms_pdb 包为非 CDB 生成 XML 元数据文件并将其附加到 CDB。使用dbms_pdb包将Non-CDB移动到PDB的操作如下:
1.如果CDB不存在,则先创建CDB

2.确保Non-CDB处于事务一致状态,并将其置于只读状态

[oracle@jytest1 ~]$ export ORACLE_SID=orcl1[oracle@jytest1 ~]$ sqlplus / as sysdbaSQL*加:12.2.0.1.0 版本于 2017 年 9 月 7 日星期四 00:38:31 发布,版权所有 (c) 1982, 2016,Oracle。保留所有权利。已连接到空闲实例。SQL>startup mountORACLE instance start ed。系统全局区域总计 4294967296 字节固定大小 8628936 字节可变大小 2583692600 字节数据库缓冲区 1694498816 字节重做缓冲区 8146944 字节数据库已安装。SQL> 更改数据库打开只读;数据库更改。[oracle@jytest2 ~]$ 导出 ORACLE_SID=orcl2[oracle@jy测试2 ~]$ sqlplus / as sysdbaSQL*Plus:周四发布 12.2.0.1.0 生产版本2017 年第 7 集 00:38:31 版权所有 (c) 1982, 2016,Oracle。保留所有权利。已连接到空闲实例。SQL> 启动 mountORACLE 实例已启动。总系统全局区域 4294967296 字节固定大小 8628936 字节可变大小 2583692600 字节数据库缓冲区 1694498816 字节重做缓冲区                     8146944 字节数据库已安装。SQL>更改数据库打开只读;数据库已更改。

3.连接到 Non-CDB 并执行 dbms_pdb.describe 进程以创建描述 Non-CDB 的 XML 元数据文件。执行此过程的用户必须具有 sysdba 权限。

SQL> exec dbms_pdb.describe(pdb_descr_file=>'/cdb_pdb/orcl.xml');PL/SQL 过程成功完成。[oracle@jytest2 cdb_pdb]$ ls -lrttotal 8-rw-r- -r-- 1 oracle asmadmin 6963 Sep 7 00:18 orcl.xml

4。执行dbms_pdb.check_plug_compatibility进程来确定Non-CDB是否与目标CDB兼容。执行此过程时设置以下参数:
-pdb_descr_file:设置XML 元数据文件的完整路径。
-pdb_name:指定新的PDB名称。如果省略此参数,将使用 XML 元数据文件中的 PDB 名称。

SQL> set serveroutput on 1 声明 2 兼容常量 varchar2(3) := 3 case dbms_pdb.check_plug_compatibility( 4 pdb_descr_file => '/cdb_pdb/orcl.xml', 5 pdb_name => 'orclpdb') 6 当为 true 时,则为“是” 7 否则为“否” 8 结束; 9 开始 10 dbms_output .put_line(兼容); 11结束; 12 /yesPL/SQL 过程成功完成。

如果输出为 yes,则非 CDB 兼容,您可以继续下一步。如果输出为 no,则 Non-CDB 与目标 CDB 不兼容,您可以检查 pdb_plug_in_violations 视图来检查不兼容的原因。在继续之前必须解决所有违规行为。例如,任何版本或补丁不匹配都可以通过执行升级或修补来解决。修复此违规后,再次执行 dbms_pdb.check_plug_compatibility 以确保非CDB 与目标 CDB 兼容。

5.关闭非CDB

[grid@jytest1 ~]$ srvctl stop database -db orcl

6.插入非 CDB

SQL> 使用 '/cdb_pdb/orcl.xml' 创建可插入数据库 orclpdb 2  copy 3 file_name_convert = ('+DATA/orcl/datafile/', '+data/jy/orclpdb/ ','+DATA/orcl/tempfile/','+data/jy/orclpdb/');已创建可插入数据库。SQL> select name,open_mode from v$pdbs;NAME                                         OPEN_MODE------------- --------------------------------------- ----------- --------------------------------------- ----------- ----------------------- ----------PDB$SEED                                                                        只读JYPDB                                                ORCLPDB                                              ; Sys NameDATAFILE UNPROT COARSE SEP 07 00:00:00 N usertbs01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/USERTBS.278.95403 1319DATAFILE UNPROT COARSE SEP 07 00:00:00 N 使用rs01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/USERS.302.954031321DATAFILE UNPROT COARSE SEP 07 00:00:00 N 和 otbs01.dbf => +DATA/jy/4D913A1436E25EE2E 053AB828A0AF7B8/DATAFILE/UNDOTBS1.273.954031321 临时文件未保护粗略九月07 00:00:00 N temp01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/TEMPFILE/TEMPTS1.315.954031465DATAFILE UNPROT COAR SE SEP 07 00:00:00 N system01.dbf => +DATA/jy/4D913A 1436E25EE2E053AB828A0AF7B8 /数据文件/ SYSTEM.303.954031321DATAFILE UNPROT COARSE SEP 07 00:00:00 N sysaux01​​.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/SYSAUX.295.954031321

如果此处没有错误,请勿打开新的现在是PDB。

7.执行 $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql 脚本。必须在第一次打开新的 PDB 之前执行此脚本。如果 PDB 不是从 Non-CDB 创建的,则无需执行此脚本。为了执行 noncdb_to_pdb.sql 脚本,请完成以下操作:
访问ss PDB,当前用户必须具有sysdba权限,并且该权限必须是公共或本地授予PDB的。最好使用 sysdba 进行连接。

b.执行noncdb_to_pdb.sql脚本:

SQL>@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

8.以读写模式打开新文件 PDB

SQL> alterpluggabledatabase orclpdb open read write;Pluggabledatabasealted.SQL> select name,open_mode from v$pdbs;NAME   ------- ------------------------------------------- ------- --------------------------- ----------PDB$SEED                                                                                                                                   bsp; READ ONLYJYPDB READ WRITEORCLPDB                                                    ​​​​​ READ WRITE

以上是在Oracle 12c中如何使用Non-CDB创建PDB。小编相信有些知识点在我们日常工作中可能会看到或者用到。希望您能从中学到更多文章。更多详情请关注行业资讯频道。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何在Oracle 12c中使用Non-CDB创建PDB

用户评论