Oracle12c R2版本Application Containers特性(三)

沃趣科技發表於2017-10-18
沃趣科技   楊禹航

Oracle 12c R2版本 Application Containers 特性(一)

Oracle 12c R2版本 Application Containers 特性(二)


Application Seed

Application seed與CDB中的PDB$SEED類似,在使用Application seed做為Application PDBs的建立模板時,你可以快速且容易的建立一個滿足要求的Application PDB,Application Container中最多隻能建立一個Application seed,當然也可不包含Application seed。

我們可以在Application root中使用CREATE PLUGGABLE DATABASE帶有AS SEED子句來建立Application seed,建立時,Application seed可以有如下幾種來源,比如CDB seed、克隆現有的PDB或non-CDB以及插入已拔出的PDB,在使用AS SEED子句建立Application seed時,不要需要為其指定名稱,固定的命名規則為application_container_name$SEED,例如在Application Container:qdatacon1中建立的Application seed將被命名為qdatacon1$SEED。

Oracle12c R2版本Application Containers特性(三)

(Application Container特性架構圖)

如下為使用不同來源建立Application seed的步驟:

1. Creating an Application Seed From the CDB Seed

CREATE PLUGGABLE DATABASE AS SEED ADMIN USER qdadm IDENTIFIED BY password;

ALTER PLUGGABLE DATABASE qdatacon1$SEED OPEN;

ALTER SESSION SET CONTAINER=qdatacon1$SEED;

ALTER PLUGGABLE DATABASE APPLICATION ALL SYNC;

ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;

ALTER PLUGGABLE DATABASE OPEN READ ONLY;

2. Creating an Application Seed From an Application PDB

CREATE PLUGGABLE DATABASE AS SEED FROM qdcpdb1;

ALTER PLUGGABLE DATABASE qdatacon1$SEED OPEN;

ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;

ALTER PLUGGABLE DATABASE OPEN READ ONLY;

3. Creating an Application Seed From an Application Root

CREATE PLUGGABLE DATABASE AS SEED FROM qdatacon1;

ALTER PLUGGABLE DATABASE qdatacon1$SEED OPEN;

ALTER SESSION SET CONTAINER=qdatacon1$SEED;

@$ORACLE_HOME/rdbms/admin/pdb_to_apppdb.sql

ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;

ALTER PLUGGABLE DATABASE OPEN READ ONLY; 

刪除Application seed時與刪除其他PDB的方式相同,如下:

ALTER SESSION SET CONTAINER=qdatacon1;

ALTER PLUGGABLE DATABASE qdatacon1$SEED CLOSE;

DROP PLUGGABLE DATABASE qdatacon1$SEED INCLUDING DATAFILES;


Application Container相關檢視

下面列出了在Application Container特性下可能會使用到的檢視,並對檢視做了簡單描述。

dba_pdbs

該檢視記錄了CDB中PDB與Application Container的資訊,我們可以透過層次查詢將PDB以及Application root與Application PDB的關係一目瞭然的展現出來,如下所示:

SELECT LPAD(' ', (LEVEL - 1) * 2, ' ') || pdb_name AS pdb_name,

       application_root,

       application_pdb,

       application_seed,

       status,

       pdb_id,

       application_root_con_id

  FROM cdb_pdbs

 START WITH application_root_con_id IS NULL

CONNECT BY PRIOR pdb_id = APPLICATION_ROOT_CON_ID

 ORDER SIBLINGS BY pdb_id;

Oracle12c R2版本Application Containers特性(三)

dba_applications

該檢視記錄了Application root中包含哪些Application。

Oracle12c R2版本Application Containers特性(三)

dba_app_pdb_status

該檢視記錄了Application Container中的所有Application被同步到哪些Application PDB中。

Oracle12c R2版本Application Containers特性(三)

dba_app_versions

該檢視記錄了Application Container中安裝Application的各個版本資訊。

Oracle12c R2版本Application Containers特性(三)

dba_app_patches

該檢視記錄了Application Container中所有Application的patch資訊。

Oracle12c R2版本Application Containers特性(三)

dba_objects

在12cR2版本里透過dba_objects中的APPLICATION、SHARING、CREATED_APPID以及CREATED_VSNID欄位來判斷物件是否是公共物件,以及屬於哪個Application內的公共物件。

Oracle12c R2版本Application Containers特性(三)dba_app_errors

該檢視記錄了Application Container中的所有Application的錯誤訊息。

null

dba_app_statements

該檢視記錄了Application Container中所有對Application操作的語句。

null

關於Application Container特性就介紹到這裡,更多內容請參考Oracle官方文件。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28218939/viewspace-2146099/,如需轉載,請註明出處,否則將追究法律責任。

相關文章