同一个CDB中卸载PDB再加载PDB的操作过程

原创 2013年12月05日 16:27:32

plugging in an unplugged PDB  
unplugged PDB=XML file+all pdb files
可以使用DBMS_PDB.RECOVER过程通过PDB的data files 重新生成PDB XML file。  **

源CDB和目标CDB要求   (源cdb就是pdb以前在的cdb,目标cdb为将要plug到的cdb)
1 必须有相同的ENDIANNESS
2 必须安装有相同的数据库选项,所以以后安装cdb,还是要把所有组件都选上的。
3 字符集和国家字符集必须的兼容。


***Unplugging a PDB from a CDB  
unplugged pdb必须是mount模式

alter pluggable database salespdb unplug into '/u01/app/oracle/oradata/salespdb.xml';  --卸载pdb信息到文件

但是查询v$datafile 发现pdb的所有文件还在数据库中,故先需要drop pdb,将pdb彻底从cdb中脱离,操作命令:

 dropping a pdb 
官档中说明要删除的pdb必须处于mount模式,但是发现不能修改pdb的打开模式。
ALTER PLUGGABLE DATABASE salespdb close immediate; --这个语句不能执行,报如下错误:

ERROR at line 1:
ORA-65086: cannot open/close the pluggable database

直接删除试试:
DROP PLUGGABLE DATABASE salespdb KEEP DATAFILES;
执行成功。
查询v$datafile,salespdb的文件不再显示,说明pdb已经完全脱离了cdb。

 

plugging in an unplugged PDB  --将卸载下来的pdb重新plug到原cdb
1 sysdba,sysoper权限用户登录
2 检查unplugged pdb是否兼容目标CDB
SET SERVEROUTPUT ON
DECLARE
 compatible CONSTANT VARCHAR2(3) :=
  CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(pdb_descr_file => '/u01/app/oracle/oradata/salespdb.xml',pdb_name => 'SALESPDB')
   WHEN TRUE THEN 'YES'
   ELSE 'NO'
  END;
BEGIN
 DBMS_OUTPUT.PUT_LINE(compatible);
END;
/
返回信息:
YES

PL/SQL procedure successfully completed.

yes说明兼容

3 plug
CREATE PLUGGABLE DATABASE salespdb USING '/u01/app/oracle/oradata/salespdb.xml' NOCOPY TEMPFILE REUSE;
--成功
--nocopy指的是pdb的文件和xml文件中描述的相符,不需要再拷贝到新的目录。
检查v$PDBS,发现salespdb的状态为mounted。
dba_pdbs中的status为new

4 打开pdb
alter pluggable database salespdb open read write;
SQL> alter pluggable database salespdb open read write;

Pluggable database altered.

SQL> select * from v$pdbs;

    CON_ID       DBID    CON_UID GUID                             NAME                           OPEN_MODE  RES OPEN_TIME                        

                                  CREATE_SCN
---------- ---------- ---------- -------------------------------- ------------------------------ ---------- ---

--------------------------------------------------------------------------- ----------
TOTAL_SIZE
----------
         2 4075701576 4075701576 EC9E7999CC2D1BD1E043140BA8C062C8 PDB$SEED                       READ ONLY  NO  04-DEC-13 11.26.11.381 PM        

                                 227
 393216000

         3 2278220423 2278220423 ECC51D04E9A4592DE043140BA8C048CA SALESPDB                       READ WRITE NO  04-DEC-13 11.58.07.759 PM        

                                     1775312
 398458880


SQL>

--检查一下数据文件信息:

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/newcdb/system01.dbf
/u01/app/oracle/oradata/newcdb/pdbseed/system01.dbf
/u01/app/oracle/oradata/newcdb/sysaux01.dbf
/u01/app/oracle/oradata/newcdb/pdbseed/sysaux01.dbf
/u01/app/oracle/oradata/newcdb/undotbs01.dbf
/u01/app/oracle/oradata/newcdb/users01.dbf
/u01/app/oracle/oradata/newcdb/salespdb/system01.dbf
/u01/app/oracle/oradata/newcdb/salespdb/sysaux01.dbf
/u01/app/oracle/oradata/newcdb/salespdb/salespdb_users01.dbf

9 rows selected.

SQL>

--数据文件又回来了。

 

5 对新加的pdb进行备份。

after plugging in an unplugged PDB
涉及一些用户和temp表空间的东西。


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

OpenCV程序在Debug时出现「PDB文件无法加载」的一个解决方法

OpenCV 程序在调试的过程中可能会出现pdb文件无法加载的情况,这里给出了一种解决方法....

12c CDB和PDB启动和关闭操作

前言 CDB与PDB是Oracle 12C引入的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔...

oracle 12c卸载pdb

Dbca新选项 (不好意思,图片全挂了,只能用文字上了)  运行dbca,里边多了一个选项manager pluggable database Drill 选择unplug a pluggable d...

解决,未加载kernelbase.pdb,问题

最近在调试新电脑的时候,配置opencv感觉完全没有问题,为什么会出现这种情况,百思不得其解,又重新配置OpenCV,又是百度,又是github。搞了好长时间没弄好,不弄之后偶尔想到了一个原因,电脑显...

visual studio 调试时提示 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。

问题描述 “Win32Project3.exe”(Win32): 已加载“D:\software\VS2013\VS2013 文档\Win32Project3\Debug\Win32Project...

(项目名).exe”。已加载符号。 无法查找或打开 PDB 文件。

无法查找或打开 PDB 文 “wb.exe”(Win32):  已加载“D:\work\test\wb\x64\Debug\wb.exe”。已加载符号。 “wb.exe”(Win32):  已加载...

未加载mfc120ud.i386.pdb:VS2013调试MFC程序解决方法

刚使用VS2013时,想转入MFC库函数发现无法调试MFC代码。VS2013提示如下: 网上查了一下才得知,VS2013不像以前的VS版本一样自带MFC的pdb文件。但是微软提供了Microso...

visual studio 调试时提示 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。

问题描述 “Win32Project3.exe”(Win32): 已加载“D:\software\VS2013\VS2013 文档\Win32Project3\Debug\Win32Project...
  • acliyu
  • acliyu
  • 2017年12月13日 19:30
  • 12

VS2012调试符号设置(调试时自动加载符号表PDB)

用VS调试的时候,在输出框会输出xxx.dll查找不到PDB。。。导致我们调试的时候...
  • vLinker
  • vLinker
  • 2014年05月29日 20:00
  • 3066

(Win32): 已加载“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件。

(Win32): 已加载“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件。 解决办法:点击启用源服务支持: 点击Microsoft服务符号器:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:同一个CDB中卸载PDB再加载PDB的操作过程
举报原因:
原因补充:

(最多只允许输入30个字)