12c多租户管理七( 从 cdb 中拔出 pdb)

从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、拔出操作图示

image.png

二、拔出的先决条件 

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 容器

image.png

2、关闭目标pdb

image.png


3、运行 alter pluggable database 目标 pdb unplug into ‘xml 文件路径和名字’;


image.png


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


 







猜你喜欢

转载自blog.51cto.com/jiujian/2498005