1. 程式人生 > >Oracle 12c 容器講解

Oracle 12c 容器講解

容器 集中 就是 roo 關系 空間 隔離 新的 保護

Oracle 12c一個重要新特性是插接式數據庫。

插接式數據庫由一個使用 CDB(Container Database)選項創建的容器數據庫和一個或多個 PDB(Pluggable Database)組成,CDB 作為容器容納 PDB,而 PDB 彼此隔離,就像一個獨立的數據庫般在 CDB 中存在。PDB 是一組 Schema 的集合,在 CDB 中作為一個獨立的組件容器而存在。從這個意義上說,PDB 也是一種容器(Container), 而 CDB 中可以存在多種不同類型的容器。

CDB 的組成

ROOT

Root 是一個系統提供的容器,用於存儲公用用戶,公用用戶可以連接到其他容器,可以查看系統級元數據,這個 Root 容器被命名為 CDB$ROOT.

② Seed PDB

種子 PDB 是一個系統級模版,CDB 可以用這個模版創建其他 PDB,種子 PDB 的名稱是 PDB$SEED,其中的對象不能被修改。這其中最為主要的是 SYSTEM 和 SYSAUX 表空間文件,這是一個種子數據庫,已經內置了字典對象,如果使用模板方式建庫,PDB 則由此克隆創建出來。

容器 CDB$ROOT 和 PDB$SEED 對於一個插接式數據庫來說是必須的基本組件,這兩者構成了插接式數據庫的基礎支撐。其關系如下圖所示:

技術分享圖片

③ PDB

PDB 是用戶基於特定需求建立的對象容器,在創建 CDB 時,可以不同時創建 PDB,PDB 隨後可以根據用戶的需求創立。

插接式數據庫的主要特性:

可以通過現有數據庫快速配置和部署新的環境;

通過 unplug 和 plug 可以快速進行數據庫遷移和整合;

集中的部署可以加快升級遷移的過程,縮減維護成本;

方便的整合和拆分方式便於集中部署或在壓力過大時迅速拆分部署;

分離管理員的職責,強化安全管理;

在 CDB 的模式下,由於 PDB 具有獨立的 SYSTEM 和 SYSAUX 表空間,其元數據和系統元數據自然分離,用戶數據的字典信息也就無需再記錄到系統的元數據中,這對於核心的元數據是一種更好的隔離和保護,下圖描述了在 CDB、PDB 模式下用戶數據和元數據的分離關系,其中數據字典元數據也就是 Root Container:

技術分享圖片

各個容器都有一個標識(CON_ID),其中CDB實例的ID為0,CDB$ROOT 的ID為1,PDB$SEED的ID為2,pdb從3開始分配。

Oracle 12c 容器講解