Oracle 18c 新特性之CDB航母
阿新 • • 發佈:2019-02-08
給使用者介紹Oracle多租戶新特性時,多次忍不住將CDB比喻為航母,PDB則是停靠之上的艦載機。沒想到18c竟然出了航母戰鬥群,^_^
18c中引入了CDB fleet新特性,能夠實現以下的功能:
- 擴容PDB支援數量,單個CDB最大能夠支援4096個PDB,CDB fleet大大擴充套件了這一數量;
- 多CDB資料庫的集中管理,降低管理成本;
- CDB fleet支援所有的資料庫功能,如Oracle RAC,RMAN,基於時間點的恢復,Flashback等。
CDB fleet中有兩個概念:CDBLead和CDB members。
在CDB Lead中能夠進行所有CDB的管理,設定完成後,fleet中所有的PDB都對CDBLead可見,在Lead中可以使用以下方式獲取全域性資訊,實現全域性管理:
- CDB和GV$檢視
- CONTAINERS字句以及CONTAINER_MAP
CDB Members則通過DBLink和CDB Lead進行通訊。
簡單記錄配置過程:
CDB Lead
1. 設定LEAD_CDB
ALTER SESSION SET CONTAINER = CDB$ROOT; ALTER DATABASE SET LEAD_CDB = TRUE; SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='LEAD_CDB'; PROPERTY_VALUE ---------------------- TRUE
2. 建立用於CDB Member連線的使用者
create user c##cf1 identified by oracle;
grant dba to c##cf1;
CDB member
1. 配置連線串
lead_pod =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.19)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora18c)
)
)
2. 建立連線CDB Lead的DB LINK
CREATE PUBLIC DATABASE LINK lead_link
CONNECT TO C##CF1 IDENTIFIED BY oracle
USING 'lead_pod';
3. 設定LEAD_CDB_URI屬性
ALTER DATABASE SET LEAD_CDB_URI ='dblink:LEAD_LINK';
SELECT PROPERTY_VALUE FROMDATABASE_PROPERTIES WHERE PROPERTY_NAME='LEAD_CDB_URI';
PROPERTY_VALUE
--------------------------------------------------------------------------------
dblink:LEAD_LINK
CDB Lead
1. CDB Lead中確認CDB Member資訊
SQL> select pdb_name, status from cdb_pdbs;
PDB_NAME STATUS
------------------------------------------------------------------------------------------------------------------------------------------
PDB$SEED NORMAL
orclcdb STUB
PDB1 NEW
PDB2 STUB
PS: 狀態為STUB的PDB資訊來自於CDB Member.