1、數位教材-資料庫系統設計與應用1ORACLE 系統架構 數位教材-資料庫系統設計與應用2Oracle 系統架構PMONLCKnRECOSMONshared PoolDatabase Buffer CacheRedo LogBufferSGADataDataDataDataDataDataDataDataDataDataDatafilesRedo LogfilesParameterFileControlfilesServerUserDBWRLGWRCKPTARCHOfflinestorage數位教材-資料庫系統設計與應用3Oracle 系統架構(Cont.)v整個 Oracle 系統架構包含以下
2、三個部分,如圖一所示:1.System Global Area(系統共同區,SGA)2.Process(處理單元)3.Files(系統檔案)數位教材-資料庫系統設計與應用4System Global Area(SGA)v每當 Oracle 系統啟動時,會佔用主機一大塊資料庫專屬的記憶体空間來控制資訊與儲存資料,這塊資料庫專屬的記憶体空間稱為 System Global Area(SGA)。數位教材-資料庫系統設計與應用5vSGA 主要是由三個主要部份所組成:1.Shared 2.Database Buffer Cache3.Redo Log Buffer數位教材-資料庫系統設計與應用6Shar
3、ed PoolnShared Pool 主要是由 Library Cache、Dictionary Cache 與一些控制結構(control structures)所組成。數位教材-資料庫系統設計與應用7Database Buffer Cachen用來存放最近由資料庫讀出的資料。數位教材-資料庫系統設計與應用8Redo Log Buffern為了加快線上交易的效率,異動交易的記錄之內容並不直接寫入磁碟檔案中,而是存放在 Redo Log Buffer 這記憶体空間中。數位教材-資料庫系統設計與應用9Process(處理單元)v在 Oracle 中的 Process 分為:1.User Pro
4、cess2.Oracle Process數位教材-資料庫系統設計與應用10User Process當使用者的應用程式欲以 SQL 指令存取資料庫資料時,例如:Pro*C程式、Oracle Tools、SQL*plus、Oracle Form 等等,Oracle 會產生 User Process去執行這些工作。數位教材-資料庫系統設計與應用11Oracle ProcessnOracle Process 依執行的方式不同可大概分為 Server Process 與 Background Process。數位教材-資料庫系統設計與應用12Background ProcessesnDatabase W
5、riter(DBWR)nLog Writer(LGWR)nProcess Monitor(PMON)nSystem Monitor(SMON)nCheckpoint(CKPT)nArchiver(ARCH)nRecoverer(RECO)nLOCK(LCKn)數位教材-資料庫系統設計與應用13Database Writer(DBWR)當 Oracle 系統存取資料時,為了考慮執行效率,並不會直接存取磁碟中的資料,而是先到 SGA 中的 Database Buffer Cache 中去找,若找不到再去存取磁碟中的資料。數位教材-資料庫系統設計與應用14Log Writer(LGWR)Oracle
6、 系統將使用者所執行的異動交易(Transaction)記錄在日誌檔(Redo Log File)中,以供 Oracle 系統回復資料之用。數位教材-資料庫系統設計與應用15Process Monitor(PMON)PMON 監控所有 client 端的連線程式,並在 User Process 處理失敗時,負責回收使用者所佔用的系統資源。數位教材-資料庫系統設計與應用16System Monitor(SMON)SMON 監控所有系統資料的正確性,當資料庫開啟時檢查資料的一致性,一旦發現了資料有不一致性時會進行 Crash Recovery 資料回復動作。數位教材-資料庫系統設計與應用17Che
7、ckpoint(CKPT)每隔一段固定的時間 DBWR 會將 SGA 的 Database Buffer Cache 中已修過的資料寫回 Data File 中,這個時間點稱為 Checkpoint,而 CKPT 的任務是負責當 Checkpoint 時間到了時告訴 DBWR 要進行資料更新動作。數位教材-資料庫系統設計與應用18Archiver(ARCH)在 LGWR 重頭開始寫入第一個 Redo Log File 之前,ARCH 負責將 Redo Log File 中的異動交易(Transaction)記錄備份至其他的磁碟或是離線備份檔(Offline Storage)中。數位教材-資料庫
8、系統設計與應用19Recoverer(RECO)主要用於處理分散式異動交易(Distributed Transaction)環境下的資料回復。通常用於分散式資料庫中的失敗處理。數位教材-資料庫系統設計與應用20LOCK(LCKn)主要用於處理多個 Oracle Instance 之間的鎖定(Lock)。數位教材-資料庫系統設計與應用21資料庫結構 (Database Structure)v一個 ORACLE 資料庫可分為:1.實體結構是以作業系統(Operating System)觀點去看 ORACLE 資料庫結構,主要是作業系統中 ORACLE 資料庫的所有檔案。2.邏輯結構是以 ORACL
9、E 資料庫系統的觀點去看 ORACLE 資料庫結構,主要是 ORACLE 資料庫系統運作的結構。數位教材-資料庫系統設計與應用22實體資料庫結構的構成1.Redo Log Files(異動交易記錄檔)2.Control File(控制檔)3.Data File(資料檔)數位教材-資料庫系統設計與應用23Redo Log Files(異動交易記錄檔)n主要記載使用者所執行的異動交易(Transaction)記錄,以便日後進行資料回復之用。數位教材-資料庫系統設計與應用24Control File(控制檔)n每個資料庫至少有一個 Control File。它儲存一些與資料庫相關的關鍵訊息,Orac
10、le 資料庫透過 Control File 保持資料庫的完整性(Integrity),與決定資料回復需使用那一個 Redo Log File。數位教材-資料庫系統設計與應用25Data File(資料檔)nData File 用以儲存所有的資料庫資料,Oracle 資料庫是由一個或多個 Data File所組成。Data File 被 Oracle 格式化為 Oracle 區塊(Block),以便管理檔案內的儲存空間。數位教材-資料庫系統設計與應用26邏輯資料庫結構的組成v表空間(Tablespace)v段(Segment)、區段(Extent)與資料區塊(Data Block)數位教材-資料
11、庫系統設計與應用27表空間(Tablespace)n一個資料庫被劃分為一個或多個邏輯單位,該邏輯單位稱為表空間(Tablespace)。數位教材-資料庫系統設計與應用28OFA的七種表空間與其用途數位教材-資料庫系統設計與應用29段(Segment)、區段(Extent)與資料區塊(Data Block)nORACLE 透過段(Segment)、區段(Extent)與資料區塊(Data Block)等邏輯資料庫結構來控制磁碟實體空間的使用。數位教材-資料庫系統設計與應用30段(Segment)1.資料段(Data Segments):對於每個沒有簇集(Cluster)的表格都有一個資料段(Da
12、ta Segment)。2.簇集段(Cluster Segments):對於每個簇集(Cluster)都有一個簇集段(Cluster Segment)。其中每個簇集段包含一個或多個被設計者簇集(Cluster)在一起的表格,其目的是為了改善存取效能。數位教材-資料庫系統設計與應用31段(Segment)(cont.)3.回復段(Rollback Segments):ORACLE 系統有一個或多個回復段(Rollback Segment)。回復段(Rollback Segment)儲存當異動交易(Transaction)回復(Rollback)所需要的資訊。4.索引段(Index Segment
13、s):儲存個別的索引(Index)。5.索引段(Index Segments):儲存個別的索引(Index)。數位教材-資料庫系統設計與應用32段(Segment)(cont.)6.暫存段(Temporary Segments):主要用來做暫存工作區,尤其是對查詢結果的排序。系統管理者(DBA)在建立使用者(Create User)時可以指定暫存段,否則系統會內定為表空間 SYSTEM。數位教材-資料庫系統設計與應用33表空間(Tablespace)v一個資料庫劃分為一個或多個邏輯單位,該邏輯單位稱為表空間(Tablespace)。每一個表空間是由一個或多個資料檔(Data File)所組成,
14、該資料檔(Data File)儲存表空間中全部邏輯結構資料。數位教材-資料庫系統設計與應用34建立表空間CREATE TABLESPACE此指令的作用是在資料庫中建立一表空間,其語法如下:數位教材-資料庫系統設計與應用35更改表空間指令ALTER TABLESPACE 此指令修改已存在的表空間,主要功能如下:增加或重新命名 DATAFILE(資料檔)。修改預定的儲存參數。使表空間上線(Online)或離線(Offline)。開始或停止備份。允許或不允許寫入表空間。數位教材-資料庫系統設計與應用36數位教材-資料庫系統設計與應用37刪除表空間指令DROP TABLESPACE此指令將已存在的表空
15、間從資料庫中刪除。其語法如下:數位教材-資料庫系統設計與應用38主要的初始資料庫帳號 數位教材-資料庫系統設計與應用39資料庫的啟動 資料庫的狀況有:v關閉(Shutdown)v已啟動(Started)(Nomount)v已掛載(Mounted)v開啟(Open)vSTARTUP OPEN|MOUNT|NOMOUNT 數位教材-資料庫系統設計與應用40NOMOUNT 的模式n資料庫的啟動的第一階段是讓使用者能成功在記憶體中開啟 INSTANCE。n在 NOMOUNT 的模式下,可以執行指令來建立資料庫,並且產生 Control file 來控制資料庫的運作,以完成建立資料庫的動作。數位教材-資
16、料庫系統設計與應用41MOUNT的模式n這是資料庫啟動的第二階段,此模式的目的是讓已建立成功的資料庫能順利的由”開啟 INSTANCE”模式(NOMOUNT)進入“MOUNT”的模式。n在這階段,資料庫已能順利讀取 Control file、Redo log files 與 Datafiles 的資料。數位教材-資料庫系統設計與應用42OPEN 模式n這是資料庫啟動的最後一階段,在這階段使用者可以依其權限正常地存取資料庫的的資料。數位教材-資料庫系統設計與應用43關閉資料庫 v資料庫管理者在關閉資料庫時視狀況可以有三種模式:1.SHUTDOWN NORMAL:當資料庫管理者執行 SQL SHU
17、TDOWN NORMAL;或 SQL SHUTDOWN;要求關閉資料庫時,會等待線上的使用者把其工作處理完成並離線後,才依序地執行”關閉資料庫”、”卸載資料庫”與”關閉 INSTANCE”等程序。數位教材-資料庫系統設計與應用44關閉資料庫(cont.)2.SHUTDOWN IMMEDIATE:當資料庫管理者執行 SQL SHUTDOWN IMMEDIATE 這個指令的優點是可以節省資料庫關閉的等待時間,所以當資料庫的連線人數很多,如果使用 SHUTDOWN NORMAL 的指令需要等待很多時間才能正常關閉,因此可以利用 SHUTDOWN IMMEDIATE 的指令來加速資料庫關閉過程。數位教材-資料庫系統設計與應用45關閉資料庫(cont.)3.SHUTDOWN ABORT:當資料庫管理者執行 SQL SHUTDOWN ABORT 這種是使用暴力方式關閉資料庫。使用這種方式關閉資料庫的時機,是當使用“SHUTDOWN NORMAL”或“SHUTDOWN IMMEDIATE”都無法關閉資料庫時才用這指令,不然儘量少用。