Oracle數(shù)據(jù)庫(kù)是目前全球最流行、最廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,它具備高可靠性、高安全性、高性能、高可用性等眾多優(yōu)點(diǎn),被廣泛應(yīng)用于企業(yè)信息管理、業(yè)務(wù)處理、數(shù)據(jù)分析等領(lǐng)域。其中,Oracle 12c和Oracle 11g是兩個(gè)比較常見(jiàn)的版本,本文將重點(diǎn)介紹Oracle 12c版本中的一項(xiàng)重要功能——Multitenant。
Multitenant是Oracle 12c最引人注目和重要的新特性之一。Multitenant允許用戶將多個(gè)用戶和應(yīng)用程序打包在同一個(gè)數(shù)據(jù)庫(kù)實(shí)例中,實(shí)現(xiàn)了一種新的數(shù)據(jù)庫(kù)部署模式,稱為多租戶數(shù)據(jù)庫(kù)。這種數(shù)據(jù)庫(kù)部署方式可以大大簡(jiǎn)化數(shù)據(jù)庫(kù)管理、提高資源利用率、降低版本升級(jí)和數(shù)據(jù)遷移成本等方面的問(wèn)題。
CREATE PLUGGABLE DATABASE database_name FROM NON-CDB TEMPLATE pdbname_on_disk [FILE_NAME_CONVERT ({‘source_dir’,’dest_dir’})] [NOCOPY] [[STANDBY (file_name_convert (source_dir,destination_dir))]];
在使用Multitenant時(shí),需要了解幾個(gè)重要的概念。首先,根據(jù)Oracle官方定義,容器數(shù)據(jù)庫(kù)可以包含一個(gè)或多個(gè)可插拔數(shù)據(jù)庫(kù)(PDB),PDB是每個(gè)多租戶容器數(shù)據(jù)庫(kù)的獨(dú)立副本,用戶可以將其視為單獨(dú)的數(shù)據(jù)庫(kù)。其次,容器數(shù)據(jù)庫(kù)(CDB)是Multitenant架構(gòu)中最頂層的邏輯實(shí)體,可以看作是多個(gè)PDB的容器。CDB和PDB在特性和功能上存在一些差別,使用時(shí)需要注意。
為了方便管理和維護(hù)數(shù)據(jù)庫(kù),Oracle 12c推出了一些新的命令和工具,如CREATE PLUGGABLE DATABASE命令和PDB命令,可以更方便地管理和維護(hù)PDB。這些命令和工具的使用可以使數(shù)據(jù)庫(kù)管理員更快地創(chuàng)建、配置、克隆、刪除PDB。
ALTER SESSION SET container = pdb_name;
另一個(gè)重要的方面是Oracle 12c Multitenant的安全性,CDB和PDB之間的安全隔離是有效的,也可以實(shí)現(xiàn)單個(gè)PDB的安全隔離。PDB可以使用自己的角色、權(quán)限、對(duì)象,但是訪問(wèn)控制必須在CDB級(jí)別上進(jìn)行管理,這樣就可以有效保證多用戶環(huán)境下的數(shù)據(jù)安全性。
綜上所述,Oracle 12c Multitenant是一個(gè)功能強(qiáng)大、易于管理、高度安全的多租戶數(shù)據(jù)庫(kù)部署方式。它可以實(shí)現(xiàn)多個(gè)應(yīng)用程序在同一個(gè)實(shí)例中共享資源,減少了管理和維護(hù)方面的工作量,同時(shí)也保證了有效的數(shù)據(jù)安全性。