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


 







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章