Oracle 12c 資料庫再進化--Oracle Multitenant
Oracle
12c 資料庫再進化--Oracle Multitenant
前言:
你有沒有用過USB隨身碟呢?一個隨插即用的觀念,從2003年開始發酵,讓大體積的硬體縮小,且可以隨身攜帶,間接也推動了許多技術的創新,我個人認為這是一項很偉大的發明,假如可以隨插即用的是資料庫呢?那會發生甚麼事?
自從Oracle於去年秋季透露出Oracle Database 12c 的新架構:Pluggable Database之後。許多企業的IT人員,都對此先進之觀念抱持著濃厚的興趣。終於在2013年6月,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;
留言
張貼留言