12c多租戶管理六(通過本地pdb創建新的pdb)

通過克隆本地現有 pdb 創建新的 pdb


目錄結構

一、創建說明

二、創建選項

三、新pdb創建語句

四、執行創建過程

五、指定NO DATA子句,克隆時不復制數據。


一、創建說明

     1、執行創建的用戶必須具有CREATE PLUGGABLE DATABASE 系統權限

   2、源pdb不能被關閉

   3、如果cdb不是 local undo 模式, 則源pdb必須啓動到read-only 狀態

   4、如果cdb非歸檔, 則源pdb必須啓動到read-only 狀態 

   

二、創建選項

    1、如果STORAGE UNLIMITED被設定,或者沒有存儲選項被設定,則pdb沒有存儲限制。常用設置如下:

          STORAGE (MAXSIZE 2G)  STORAGE (MAXSIZE UNLIMITED) storage(MAX_AUDIT_SIZE xxx) storage(MAX_DIAG_SIZE)

   2、通過 DEFAULT TABLESPACE子句 指定pdb的默認表空間

   3、通過FILE_NAME_CONVERT 指定pdb被創建時,數據文件的存放位置

          用法1 FILE_NAME_CONVERT = ('/oracle/dbs/', '/oracle/pdb5/')

          用法2 'string1' , 'string2' , 'string3' , 'string4' , ...  string2路徑替換string1路徑,string4路徑替換string3路徑

   4、如果FILE_NAME_CONVERT和CREATE_FILE_DEST同時被指定,則FILE_NAME_CONVERT指定pdb被創建時文件的位置,CREATE_FILE_DEST指定pdb創建後,新建數據文件的路徑。

     5、指定NO DATA子句,克隆時不復制數據。



三、新pdb創建語句

  1、登陸源pdb查詢數據文件路徑

SQL> alter session set container=mypdb1;


Session altered.


SQL> select name from v$datafile;

NAME

------------------------------------------------------------

/opt/oracle/oradata/mycdb/mypdb1/system01.dbf

/opt/oracle/oradata/mycdb/mypdb1/sysaux01.dbf

/opt/oracle/oradata/mycdb/mypdb1/undotbs01.dbf

/opt/oracle/oradata/mycdb/mypdb1/users01.dbf



2、待創建pdb  mypdb3的創建語句

create pluggable database mypdb3  from mypdb1 FILE_NAME_CONVERT = ('/opt/oracle/oradata/mycdb/mypdb1/','/opt/oracle/oradata/mycdb/mypdb3/');



四、執行創建過程

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              MOUNTED

SQL> show con_name;


CON_NAME

------------------------------

CDB$ROOT


2、執行創建語句

SQL> create pluggable database mypdb3  from mypdb1 FILE_NAME_CONVERT = ('/opt/oracle/oradata/mycdb/mypdb1/','/opt/oracle/oradata/mycdb/mypdb3/');



Pluggable database created.


3、啓動新創建的mypdb3

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

6 MYPDB3              MOUNTED

SQL> alter pluggable database mypdb3 open;


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

6 MYPDB3              READ WRITE NO


SQL> alter session set container=mypdb3;


Session altered.


SQL> select name from v$datafile;


NAME

--------------------------------------------------------------------------------

/opt/oracle/oradata/mycdb/mypdb3/system01.dbf

/opt/oracle/oradata/mycdb/mypdb3/sysaux01.dbf

/opt/oracle/oradata/mycdb/mypdb3/undotbs01.dbf

/opt/oracle/oradata/mycdb/mypdb3/users01.dbf


SQL> select name from v$tempfile;    


NAME

--------------------------------------------------------------------------------

/opt/oracle/oradata/mycdb/mypdb3/temp01.dbf


五、指定NO DATA子句,克隆時不復制數據。


1、注意事項


需要把源pdb打開的read only 狀態,否則報如下錯誤


[oracle@cydbcs ~]$ oerr ora 65359;

65359, 00000, "unable to create pluggable database with no data"

// *Cause:   An attempt was made to clone a pluggable database that was opened

//           in read/write mode.

// *Action:  Retry the clone operation after the source pluggable database is

//           in read-only mode.  




2、pdb源庫數據查詢

SQL> alter session set container=democdb2;


Session altered.


SQL> show pdbs;


    CON_ID CON_NAME   OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

48 DEMOCDB2             READ ONLY  NO

SQL> select count(*) from bfpub10.bfsystem;


  COUNT(*)

----------

3

 

SQL> select name from v$datafile;


NAME

--------------------------------------------------------------------------------

/oradata/DEVCDB/DEMOCDB2/system01.dbf

/oradata/DEVCDB/DEMOCDB2/sysaux01.dbf

/oradata/DEVCDB/DEMOCDB2/undotbs01.dbf

/oradata/DEVCDB/DEMOCDB2/BF_DATA.dbf



3、創建  

SQL> create pluggable database demodb  from democdb2 FILE_NAME_CONVERT = ('/oradata/DEVCDB/DEMOCDB2/','/oradata/DEVCDB/demodb/') NO DATA;  


Pluggable database created.  


4、驗證

SQL> alter pluggable database demodb open;


Pluggable database altered.


SQL> alter session set container=demodb;


Session altered.


SQL> select count(*) from bfpub10.bfsystem;


  COUNT(*)

----------

0


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