从cdb中unplug(pdb)
目录结构
一、说明
二、拔出的先决条件
三、实战操作
一、说明
1、拔出是指可插拔数据库不再与 cdb 关联。
2、connect to its CDB root or application root and use the ALTER PLUGGABLE DATABASE statement to specify an XML file or a .pdb file
3、xml 文件包含 pdb 的元数据,可用于在目标 cdb 中创建和插入 pdb
4、pdb 文件是一个压缩的 xml 文件,包含 pdb 的描述和数据文件,可以拷贝到新的位置在新的 cdb 中进行插入。
5、拔出 pdb 之前 pdb 必须 close
6、The PDB must be dropped from the CDB before it can be plugged back into the same CDB
7、拔出操作图示
二、拔出的先决条件
1、当前操作用户必须是 SYSDBA 权限或者是 SYSOPER 权限。
2、pdb 必须已经被打开至少一次。
三、实战操作
3.1、unplug为pdb文件
1、确定连接到根容器
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 MYPDB1 READ WRITE NO 4 MYPDB2 READ WRITE NO 5 YOUPDB READ WRITE NO
2、关闭目标容器
SQL> alter pluggable database youpdb close immediate; Pluggable database altered.
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 MYPDB1 READ WRITE NO 4 MYPDB2 READ WRITE NO 5 YOUPDB MOUNTED
3、进行unplug操作
SQL> alter pluggable database youpdb unplug into '/backup/youpdb.pdb'; Pluggable database altered.
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 MYPDB1 READ WRITE NO 4 MYPDB2 READ WRITE NO 5 YOUPDB MOUNTED
SQL> host ls -l /backup/
total 218748
-rw-r--r--. 1 root root 699018 Feb 15 19:38 full.sql
-rw-r--r-- 1 oracle oinstall 6911 May 23 16:53 ncdb.xml
-rw-r--r--. 1 root root 19929582 Feb 12 18:39 testdb1.sql
-rw-r--r--. 1 root root 19929725 Feb 12 18:38 testdb.sql
-rw-r--r-- 1 oracle oinstall 183424373 May 23 23:22 youpdb.pdb
3.2、unplug为xml文件
1、在 sqlplus 中确保登陆的容器是要操作 pdb 所在的 root 容器
2、关闭目标pdb
3、运行 alter pluggable database 目标 pdb unplug into ‘xml 文件路径和名字’;
4、执行 Drop the closed PDB and keep the data files.
drop pluggable database erppdb2 keep datafiles;
3.3、pdb文件的异机插入
注意:确保插入的容器是cdb根
1、拷贝pdb文件到异机
scp /backup/youpdb.pdb [email protected]:/backup/
[email protected]'s password:
youpdb.pdb 100% 175MB 87.4MB/s 00:02
2、在目标cdb中做兼容性检查
SET SERVEROUTPUT ON DECLARE compatible CONSTANT VARCHAR2(3) := CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY( pdb_descr_file => '/backup/youpdb.pdb', pdb_name => 'youpdb') WHEN TRUE THEN 'YES' ELSE 'NO' END; BEGIN DBMS_OUTPUT.PUT_LINE(compatible); END; /
3、在根容器中执行插入操作
SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT
SQL> create pluggable database youpdb using '/backup/youpdb.pdb' copy file_name_convert='/backup/','/opt/oracle/oradata/youcdb/youpdb/'); Pluggable database created.
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 YOUPDB MOUNTED
SQL> alter pluggable database youpdb open; Pluggable database altered.
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 YOUPDB READ WRITE NO
SQL> alter session set container=youpdb; Session altered.
SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /opt/oracle/oradata/youcdb/youpdb/system01.dbf /opt/oracle/oradata/youcdb/youpdb/sysaux01.dbf /opt/oracle/oradata/youcdb/youpdb/undotbs01.dbf /opt/oracle/oradata/youcdb/youpdb/users01.dbf