柚子快報(bào)邀請碼778899分享:Oracle 多租戶架構(gòu)簡介
目錄
零. 簡介一. CDB(Container Database,容器數(shù)據(jù)庫)二. PDB(Pluggable Database,可插拔數(shù)據(jù)庫)三. CDB 與 PDB 的比較四. 用戶的種類五. XE 與 XEPDB1
零. 簡介
?Oracle 多租戶架構(gòu)(Multitenant Architecture)是 Oracle 數(shù)據(jù)庫的一種架構(gòu),旨在提供對多個(gè)數(shù)據(jù)庫實(shí)例的高效管理、資源共享和隔離。它在 Oracle 12c 引入,并成為 Oracle 數(shù)據(jù)庫的重要特性之一。允許在一個(gè)數(shù)據(jù)庫實(shí)例中運(yùn)行多個(gè)邏輯數(shù)據(jù)庫。
多租戶架構(gòu)的核心概念是:
容器數(shù)據(jù)庫(CDB)-> Container Database可插拔數(shù)據(jù)庫(PDB)-> Pluggable Database
?應(yīng)用場景
云數(shù)據(jù)庫服務(wù)提供商:云服務(wù)提供商可以在同一個(gè) CDB 中創(chuàng)建多個(gè) PDB,為不同的客戶提供獨(dú)立的數(shù)據(jù)庫環(huán)境,每個(gè) PDB 作為一個(gè)租戶的數(shù)據(jù)庫。大型企業(yè):一個(gè)大型企業(yè)可能有多個(gè)部門或應(yīng)用,每個(gè)部門或應(yīng)用可以在不同的 PDB 中運(yùn)行,實(shí)現(xiàn)隔離和獨(dú)立管理。開發(fā)和測試環(huán)境:開發(fā)和測試人員可以通過克隆現(xiàn)有的 PDB 快速創(chuàng)建新的測試環(huán)境,而不需要?jiǎng)?chuàng)建一個(gè)全新的數(shù)據(jù)庫實(shí)例。
一. CDB(Container Database,容器數(shù)據(jù)庫)
CDB 是一個(gè)包含多個(gè) PDB 的容器,是 Oracle 數(shù)據(jù)庫的基礎(chǔ)架構(gòu)。它負(fù)責(zé)共享資源(如內(nèi)存、進(jìn)程)并管理 PDB 的整體運(yùn)行。
?根容器(Root Container,CDB$ROOT):
存放 CDB 的元數(shù)據(jù)和公共組件(如數(shù)據(jù)字典、公共用戶)。PDB 必須依賴 CDB$ROOT 提供基礎(chǔ)服務(wù)。
?種子數(shù)據(jù)庫(Seed Database,PDB$SEED):
一個(gè)只讀的模板數(shù)據(jù)庫,用于快速創(chuàng)建新的 PDB。不能被修改,只能被復(fù)制。
?優(yōu)點(diǎn):
所有 PDB 共享 CDB 的內(nèi)存和后臺進(jìn)程(如 SGA、PGA、日志進(jìn)程等)。管理員可以通過 CDB 統(tǒng)一管理所有 PDB,例如備份、補(bǔ)丁和升級。提高硬件利用率,減少管理成本。
二. PDB(Pluggable Database,可插拔數(shù)據(jù)庫)
PDB 是一個(gè)獨(dú)立的數(shù)據(jù)庫,可以插入到 CDB 中運(yùn)行。每個(gè) PDB 都是一個(gè)邏輯數(shù)據(jù)庫,擁有自己的用戶、模式和數(shù)據(jù)。
?特點(diǎn)
獨(dú)立性:
每個(gè) PDB 的用戶、表空間、數(shù)據(jù)文件、數(shù)據(jù)字典是獨(dú)立的??梢元?dú)立配置訪問權(quán)限和安全策略。 便攜性:
可以在不同的 CDB 之間遷移(通過插入/拔出操作)。 快速部署:
基于 PDB$SEED 模板創(chuàng)建,速度快且一致性強(qiáng)。 支持多租戶架構(gòu):
一個(gè) CDB 可以容納多個(gè) PDB,每個(gè) PDB 可為不同的應(yīng)用或租戶服務(wù)。
三. CDB 與 PDB 的比較
+--------------------------+
| CDB$ROOT | <-- 根容器,包含共享的系統(tǒng)資源
+--------------------------+
| |
+-----+-----+ +------+
| PDB1 | | PDB2 | <-- 可插拔數(shù)據(jù)庫,每個(gè) PDB 都是獨(dú)立的邏輯數(shù)據(jù)庫
+-----------+ +------+
|
+-----------+
| PDB3 | <-- 更多的 PDB
+-----------+
CDB (容器數(shù)據(jù)庫)
│
├── CDB$ROOT (根容器)
├── PDB$SEED (種子數(shù)據(jù)庫)
├── PDB1 (可插拔數(shù)據(jù)庫1)
├── PDB2 (可插拔數(shù)據(jù)庫2)
└── PDB3 (可插拔數(shù)據(jù)庫3)
特性CDBPDB定義容器數(shù)據(jù)庫,包含多個(gè) PDB可插拔數(shù)據(jù)庫,是 CDB 的一部分作用提供資源和基礎(chǔ)架構(gòu)邏輯數(shù)據(jù)庫,存放具體業(yè)務(wù)數(shù)據(jù)資源共享所有 PDB 共享資源獨(dú)立使用 CDB 提供的資源數(shù)據(jù)字典維護(hù)全局?jǐn)?shù)據(jù)字典維護(hù)本地?cái)?shù)據(jù)字典創(chuàng)建方法手動(dòng)安裝或從現(xiàn)有數(shù)據(jù)庫轉(zhuǎn)換從種子數(shù)據(jù)庫、現(xiàn)有 PDB 或 XML 創(chuàng)建遷移能力不能被遷移可以在不同 CDB 之間遷移文件存儲存放元數(shù)據(jù)和所有 PDB 的文件擁有獨(dú)立的數(shù)據(jù)文件和表空間升級補(bǔ)丁統(tǒng)一應(yīng)用于整個(gè) CDB隨 CDB 升級
四. 用戶的種類
?在 Oracle 多租戶架構(gòu)中(從 Oracle 12c 開始),用戶分為
普通用戶(Common User)
用戶的名稱必須以 C## 開頭,在CDB中創(chuàng)建適用于管理員用戶,用戶管理CDB下的多個(gè)PDB 本地用戶(Local User)
用戶的名稱無需以 C## 開頭,在PDB中創(chuàng)建更適合應(yīng)用開發(fā)和租戶管理我們平時(shí)開發(fā)時(shí)用的多是本地用戶
五. XE 與 XEPDB1
?我們安裝的oracle數(shù)據(jù)庫是Oracle Database 21c Express Edition版本,執(zhí)行l(wèi)snrctl status后,顯示 Oracle Listener 的當(dāng)前狀態(tài)。
?XE服務(wù)
XE 是 Oracle Express Edition 的默認(rèn)服務(wù)名,通常用于連接到整個(gè) CDB 的根容器(CDB$ROOT)。通過 XE 服務(wù)連接時(shí),實(shí)際上是在與容器數(shù)據(jù)庫的根容器交互。
?XEPDB1服務(wù)
XEPDB1 是 Oracle Express Edition 中默認(rèn)創(chuàng)建的 PDB(可插拔數(shù)據(jù)庫)。通過 XEPDB1 服務(wù)連接時(shí),可直接進(jìn)入到該 PDB 的上下文中,我們開發(fā)中多用到。
柚子快報(bào)邀請碼778899分享:Oracle 多租戶架構(gòu)簡介
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。