Oracle 12c 資料庫再進化--Oracle Multitenant

Oracle 12c 資料庫再進化--Oracle Multitenant

前言:

     你有沒有用過USB隨身碟呢?一個隨插即用的觀念,2003年開始發酵,讓大體積的硬體縮小,且可以隨身攜帶,間接也推動了許多技術的創新,我個人認為這是一項很偉大的發明,假如可以隨插即用的是資料庫呢?那會發生甚麼事?

    自從Oracle於去年秋季透露出Oracle Database 12c 的新架構:Pluggable Database之後。許多企業的IT人員,都對此先進之觀念抱持著濃厚的興趣。終於在20136月,Oracle 正式發布Oracle Database 12c 並於網路上開放資料庫軟體及其文件供下載測試及研究。

    Oracle 在其新一代旗艦資料庫 12c中,導入了許多相當進步的觀念,其中最多IT人員感興趣的是可插拔的資料庫(Pluggable Database)或者叫做多租戶環境。
新架構帶來許多優點,
1.更方便管理許多不同AP應用系統資料及軟體授權。
2.降低硬體資源成本。
3.簡單化資料庫管理之成本。
4.可做成種子資料庫規劃及移轉到新系統等。
5.複製資料庫變得很簡單。

    究竟舊的資料庫,如何放到 Oracle 12c CDB? 讓我為各位介紹。


Oracle多租戶環境Multitenant Environment (Pluggable Database)觀念

資料庫應用第一種方式是一個AP對應一個資料庫,

優點是可以分散資料庫的負擔。
缺點是需要花費很多硬體成本,且資料庫交換資料,需要再花一筆軟體建置的成本。

資料庫應用第二種方式是多個AP對應一台大型主機的多個資料庫

優點是集中管理,節省硬體成本。
缺點是硬體資源有限,每個資料庫可以分配的資源變少。

資料庫應用第三種方式是多個AP對應一台大型主機的一個資料庫

優點是集中管理,方便交換資料,節省硬體成本。
缺點是使用者物件和權限管理花費很多時間。

資料庫應用第四種方式是透過中間層的運作,改進第二和第三種的優缺點,也是這次討論的重點 --Oracle 12c Multitenant


Oracle 12c Multitenant 優點

1.需要的資料庫插上,暫時不需要的資料庫拔起來,更方便管理許多不同AP應用系統資料及軟體授權。

 (圖片來自Oracle 官方網站)

2.降低硬體資源成本。


傳統資料庫-每一台都需要CPU,記憶體,儲存設備等額外的成本。Oracle Multitenant 則節省了硬體成本的支出

(圖片來自Oracle 官方網站)

3. 簡單化資料庫管理之成本。

傳統上每台資料庫之間的使用者權限和資料須個別管理
Oracle Multitenant 則統一管理權限,且各資料庫間可以方便交換資料
(圖片來自Oracle 官方網站)

4. 可做成種子資料庫規劃及移轉到新系統等。

(圖片來自Oracle 官方網站)

5. 複製資料庫變得很簡單。

(圖片來自Oracle 官方網站)

操作步驟:

第一步,   SYS登錄到不是CDB的資料庫,確認相關資訊

執行select status from v$instance; 確認資料庫是否開啟
 執行select name,CDB from v$database 確認資料庫不在Oracle container database裡面
執行SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS ORDER BY PDB_ID;
確認目前沒有Pluggable database.
執行 select name from v$datafile;確認檔案位置

第二步, Shutdown 資料庫 , 再把資料庫開在Read only


第三步, 執行 DBMS_PDB.DESCRIBE 將資料庫轉成XML檔案

Begin
dbms_pdb.describe (pdb_descr_file =>'/u01/app/oracle/oradata/orcl/testdb2.xml');
end;
(紅色字的部分,請放入自己的檔案路徑)


第四步, .把非CDB資料庫Shutdown

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

第五步, 複製檔案到Oracle 12c Container database,執行下列語法,檢查是否可以 Plugin CDB

DECLARE
compatible CONSTANT VARCHAR2(3) :=
CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
pdb_descr_file => ' /u01/app/oracle/oradata/orcl/testdb2.xml',
pdb_name => 'pdbtest')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
(紅色字部分,請放入自己的檔案路徑,綠色字部分,可以自己決定資料庫名稱)


第六步, 插上舊的DB Oracle 12c Container database

CREATE PLUGGABLE DATABASE testdb2 using '/u01/app/oracle/oradata/orcl/testdb2.xml'
Nocopy tempfile reuse;
(紅色字部分,請放入自己的檔案路徑)

第七步,完成, 查詢結果

select CON_ID, NAME, OPEN_MODE from V$PDBS;


留言

這個網誌中的熱門文章

MSSQL 瘦身 : 壓縮資料庫

[SAP] 什麼是SAP? R/3 and S/4 是什麼意思? 差別在哪? (勿轉臉書)

InTrust 自動幫您蒐集 AD 帳號的登入/登出紀錄,長時間保存並保護