oracle 12c 多租戶體系結構概念

panpong發表於2019-03-01

oracle 12c 多租戶體系結構概念

1)      容器、 CDB PDB

多租戶體系結構允許 Oracle 資料庫作為多租戶容器資料庫 (CDB) 執行。

CDB 包括零個、一個或多個客戶建立的可插拔資料庫 (PDBs) PDB 是模式、模式物件和非模式物件的行動式集合,在 Oracle Net 客戶端看來,這些物件是 non-cdb Oracle 資料庫 12c 之前的所有 Oracle 資料庫都是 non-cdbs 資料庫。

容器既可以是 PDB 也可以是 root root 容器是 schemas schema objects 和屬於 PDBs non-schema objects 物件的集合;每個 CDB 有如下幾個容器:

l   有且僅有一個 root 容器,即 CDB$ROOT

l   有且僅有一個 seed PDB ,即 PDB$SEED ,它是建立 PDB 的模板。由系統建立並維護,使用者不能增加、修改其中物件;

l   0  或者多個使用者建立的 PDB

Figure 17-1 CDB with Two PDBs

 

透過這幅圖來簡單說明一下多租戶容器資料庫; oracle 12c 可以建立 CDB 資料庫,也可以建立 non-CDB 資料庫。 non-CDB 資料庫不用多說,即可以像之前的 11g 10g 資料庫一樣使用。 CDB 資料庫多了容器的概念,可以理解為 CDB 中的所有資料庫都是容器, CDB$ROOT PDB$SEED PDB hrpdb salespdb )都是容器;

l   CDB$ROOT 根容器比較特殊,有且僅有一個,儲存的是整個 CDB 的後設資料和 common users ,系統包的原始碼;例如,系統效能檢視的定義和資料都統一儲存在這個容器中,其他 PDB 透過 metadata link object link 機制進行呼叫;

l   PDB$SEED 是系統內建建立使用者 PDB 的模板。由系統建立並維護,使用者不能增加、修改其中物件;

l   PDB 則是使用者建立和遷移過來的 non-cdb 資料庫,可以由 PDB$SEED 新建,透過其他 PDB 建立,或者從 non-cdb 建立而來;單獨儲存使用者資料,可以單獨啟停,可以單獨插拔的資料庫;

另外, CDB 中資料庫管理與之前會有不少的差別,主要體現在資料字典、使用者( common local )、角色( common local )、許可權和角色的授予、審計配置、服務( service connect )等等方面。不理解、不熟悉這些差別會對日常運維產生不少的困擾;上面簡單介紹了邏輯層的一些概念,下面再看一下物理層的資料檔案、表空間的差別;

2)      CDB 中的表空間和資料檔案

Figure 18-8 Architecture of a CDB

         圖中可以看到, CDB 例項可管理多個容器,每個容器( PDB CDB$ROOT )都有自己的 system sysaux temp 等表空間; undo 表空間和 online redo log 透過 CDB$ROOT 統一管理;每個 PDB 有各自使用者表空間;所有容器的表空間對應的資料檔案,臨時檔案分別獨立存放和管理;控制檔案和引數檔案有 CDB 例項管理;


3)       CDB 的優點

降低成本

透過將硬體和資料庫基礎設施整合到一組後臺程式,並有效地共享計算和記憶體資源,可以降低硬體和維護成本。

  ==

更容易、更快速地移動資料和程式碼

根據設計,可以將 PDB 插入 CDB ,將 PDB CDB 中拔出來,然後將這個 PDB 插入另一個 CDB 。因此,您可以輕鬆地將應用程式的資料庫後端從一臺伺服器移動到另一臺伺服器。

更容易管理和監控物理資料庫

CDB 管理員可以透過對使用者和 CDB root 執行單個操作 ( 例如打補丁或者執行 RMAN 備份 ) ,將環境作為一個集合來管理。

資料和程式碼的分離

儘管被整合成一個單一的實體 CDB ,但 PDBs 模仿了傳統非 cdbs 的行為。例如, PDB 管理員可以在 PDB 上下文中重新整理共享池或緩衝區快取,而不會影響 CDB 中的其他 PDBs

易於效能調優

與多個非 cdbs 相比, CDB 更容易收集效能指標。確定一個 SGA 的大小比確定幾個 SGA 的大小更容易。

支援 Oracle 資料庫資源管理器

在任何共享資源環境中,管理員必須管理系統資源,以便為使用者提供可預測的環境,並處理意外或短暫的資源爭用。要解決這些問題並提供資源使用監視,您可以使用 Oracle 資料庫資源管理器。

減少補丁和升級

將一個補丁應用於一個 CDB 比應用於多個非 cdbs 要容易,升級一個 CDB 比升級多個非 cdbs 要容易。

當您在多個 Oracle 資料庫安裝的不同硬體上部署了許多非 cdbs 時,多租戶環境尤其有用。這些非 cdbs 可能只使用硬體資源的一小部分,而且每個都可能不需要全職資料庫管理員來管理。

透過將這些非 cdbs 組合到 CDB 中,可以更好地利用硬體資源和資料庫管理員資源。此外,您可以將 PDB 從一個 CDB 移動到另一個 CDB ,而不需要更改依賴於 PDB 的應用程式。




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

相關文章