ORACLE Multitenant專題--1 Multitenant簡介

簡介

         Multitenant翻譯成中文爲:多租戶,是ORACLE公司爲應對雲計算髮展潮流對ORACLE DB推出的新特性,於2013/06 12c版本正式發佈(其中字母c爲cloud含義),旨在實現數據庫快速部署、即插即用、彈性擴展的優勢,以上三點也即主流雲計算的賣點。

在傳統的ORACLE數據庫(non-CDB)架構中,不同用戶的數據通過schema區分,用戶數據寫入不同的表空間or默認USERS表空間,所有用戶共享一個實例,也即共享一個SGA區;若需要進行隔離,往往通過部署多個oracle實例實現,這樣管理起來存在諸多不變(如每次用sqlplus / as sysdba進入之前都要export ORACLE_SID=XXX);

在多租戶架構中,一個ORACLE實例被視作一個容器數據庫(container database--CDB),在CDB內部包括多個用戶自定義的可插拔數據庫(pluggable database--PDB),PDB對外單獨服務,類似於一個完整的數據庫。其大致架構圖如下所示:

        

其中,CDB中包含6個用戶PDB+1個種子PDB(PDB$SEED),種子PDB用戶PDB的快速克隆。

主要原理

         前面已與大家分享過oracle TTS(可傳輸表空間)的概念,CDB即是TTS技術的深入擴展。在TTS使用中,用戶數據存儲於指定用戶表空間中,用戶數據的元數據metadata(如表結構,索引結構等)則存儲於SYSTEM表空間中。CDB正是通過對元數據metedata的進一步下放(即下放到PDB中)實現。

         元數據的下放即使得CDB實例需要存儲的數據大大減少,實現實例和數據庫的松耦合;也使得數據遷移變得更加容易(因爲幾乎所有數據都在PDB中)。

使用CDB架構的優勢

Cost reduction—降低成本

         CDB通過整合IT基礎設施,可以實現計算資源、內存資源的充分利用。在RAC架構中,還可根據多實例的不同負載能力,指定PDB位於哪裏實例中,以便最大限度的發揮各個實例的能力。

Easier and more rapid movement of data and code—快速的遷移能力

         這點就不多說了。上面的“主要原理”章節有提及;

Easier management and monitoring—簡化管理

         以往non-CDB架構中DBA可能需要管理多個實例,現在只需要管理一個實例。

Separation of data and code—數據和代碼的隔離

       在以往non-CDB架構中,儘管可以通過schema進行相關分離,但有些系統全局對象不能分離,如目錄對象directory、數據庫鏈接dblink等。

Ease of performance tuning—簡化性能調優

         It is easier to collect performance metrics for a single database than for multiple databases. It is easier to size one SGA than 100 SGAs.

總結

         新特性的引入往往是順應時代的發展與需求的變化,無論我們是否接受CDB架構都將會是ORACLE官方之後主推的特性。儘管non-CDB架構也還被支持,但想想便知,ORACLE對non-CDB的支持會越來越少,我們的使用也會越來越不便。以下是ORACLE官方的數據庫版本維護圖,從圖可知,11g即將結束維護,後續的12c、18c、19c將逐步成爲主流。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章