OCA/OCP Oracle 数据库12c考试指南读书笔记:第31章:Multitenant Container and Pluggable Database Architecture
多租戶選件將多個數據庫整合為一個,但數據庫仍可以獨立管理和使用。對于用戶和開發者改變不大,但DBA需要學習新東西。
多租戶需要在企業版基礎上額外購買多租戶選件,否則只能使用non-CDB。但non-CDB會逐漸淘汰。
unequivocal = 毫不含糊
多租戶容器數據庫架構
整合的驅動力是運維和費用(硬件和許可)。
可以一臺服務器多個數據庫,一個數據庫多個schema,甚至虛擬化,但都沒有多租戶簡單。
多租戶概念
多租戶架構包括CDB和PDB。CDB包括兩個容器,CDB$ROOT和PDB$SEED,前者用于管理,后者用于克隆。
一些重要概念:
- 只有一個實例
- 只有一個數據庫,即CDB
- PDB就是服務+一些表空間 (用戶表空間和定義了數據字典的系統表空間)
- PDB服務通過監聽提供
- 根容器中的對象可以讓所有PDB看到
- 連接到PDB時,會話的范圍就是PDB所關聯的表空間
- PDB中定義的對象為PDB私有
- 每個PDB有自己的數據字典,自己定義的對象,以及指向根容器中共享對象的指針
在根容器中可以定義在所有容器中均存在的用戶和角色,而其在各容器中的權限可以不同。
多租戶和其它選件配合時的考慮:
- 所有容器需使用相同字符集。目前已經可以不同,但需根容器是AL32UTF8。
- DataGuard需在CDB層面配置,因只有一個redo,但可以排除某些PDB
- Database Vault必須PDB單獨配置
- 加密必須每PDB單獨配置
- unified audit可以在CDB或PDB一級配置
- GoldenGate可以在PDB一級配置
CDB/PDB架構在任何Edition都具備(單租戶或non-CDB架構),但多租戶選件只有在企業版才有。但
從20c開始,non-CDB不再支持。而從19c開始,如果沒有多租戶選件,仍可以創建3個PDB。詳見這里。
在CDB架構中,系統視圖較之前的USER_, ALL_, 和DBA_多了一個CDB_。
CDB_視圖只有在根容器中才有意義,相當于所有PDB視圖的union,而在PDB只,此視圖相當于DBA_。CDB_視圖中有一個CON_ID唯一標示個各容器。
一些CDB視圖為CDB_DATA_FILES, CDB_USERS, 和 CDB_TABLES。
Multitenant的驅動力
最主要用于數據庫整合。
不整合時,每個數據庫需要單獨的硬件,更重要的是需要維護,如補丁升級,當然還有許可的考慮。
在非CDB架構下,每一個數據庫有自己的SGA,后臺進程和數據字典。可能有自己的Oracle Home,可能運行在不同的機器。在CDB架構下,Oracle Home,數據字典,SGA和后臺進程只有一個。更重要的是透明性,應用無需改變,PDB可以單獨的DBA管理。
最大的好處在管理運維。例如升級和補丁。關鍵數據字典信息定義在一個地方,因此維護簡單,如果PDB有指向這些共享對象,而這些對象又發生改變的話,徐需要重新編譯。而且升級可以采用新建一個新版本CDB,然后拔出老版本CDB下的PDB,插入到新版本CDB來實現。
CDB和根容器
實例open和mount的數據庫即CDB。
根容器是共享資源所在之處,有SYSTEM,SYSAUX,UNDO和TEMP四個表空間,以及可以傳播到所有PDB的common 用戶和角色,PL/SQL包。
根容器是唯一的可以不通過監聽連接的容器。
alter session可切換容器,但不能切換schema。
PDB: 可插拔的容器
PDB類似于獨立的數據庫。PDB也有SYSTEM表空間,其中包括私有的對象和指向根容器中共同對象的邏輯鏈接。
每一個PDB都有一個唯一的容器ID和名字。這些被記錄在controlfile中,并可以在V$CONTAINERS和V$PDBS查看到。V$PDBS中排除了根容器的數據,其它與V$CONTAINERS一樣。
如果連接到PDB,與本容器無關的數據被過濾掉;如果連接到根容器,則所有數據可見。
每一個PDB都有唯一的給global name,這也是注冊到監聽的默認服務名。
可插拔數據庫的供應
多租戶架構的一個好處是PDB的供應,包括創建,拷貝和重定位。
供應PDB的技術
容器間的通訊
在沒有多租戶之前,數據庫之間通過Database Link通訊;多租戶整合后,也可以使用此方法。
如果位于根容器,則可以查詢所有PDB中的對象。
如果common user在每一個容器中擁有的表、視圖或同義詞的定義一致,就可以在根容器中使用帶CONTAINERS子句的SELECT語句統一查詢。
以SYSTEM表空間中的DUAL表為例:
總結
以上是生活随笔為你收集整理的OCA/OCP Oracle 数据库12c考试指南读书笔记:第31章:Multitenant Container and Pluggable Database Architecture的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mv——移动文件或文件夹
- 下一篇: Xcode各种运行报错及解决方法