ORACLE-體系結構

haoge0205發表於2013-11-28

1、oracle記憶體結構:sga + pga ;

2、oracle資料庫體系結構:



ORACLE-體系結構
3、oracle工作原理:

a.在資料庫伺服器上啟動oracle例項;

b.應用程式在客戶端的使用者程式中執行,啟動oralce網路服務驅動器與伺服器建立連線;

c.伺服器執行oralce網路服務驅動器,建立專用的伺服器程式執行使用者程式;

d.客戶端提交事務;

e.伺服器端程式獲取SQL語句,檢查共享池中是否有相同SQL語句,如果有,伺服器程式再檢查使用者許可權,反之則分配新的SQL共享區分析並執行SQL語句;

f.伺服器從資料檔案或SGA中獲得所需資料;

g.伺服器程式再sga中更新資料,DBWN將更新過的資料寫入磁碟,程式LGWR在重做日誌中記錄事務;

h.事務成功,伺服器程式傳送訊息到應用程式中.

4、oracle伺服器:

a.oralce伺服器由資料庫和例項組成;

b.資料庫是一個資料的集合,存放在資料檔案中;

c.例項:記憶體結構 + 後臺程式;

5、oracle資料庫例項:

a.oracle例項由記憶體結構和後臺程式組成;

b.啟動oracle資料庫例項,即分配記憶體、啟動後臺程式;

c.oracle記憶體結構:SGA和PGA

d.oralce例項後臺程式:SMON、PMON、DBWR、LGWR、CKPT等;

6、SGA(System Global Area):系統全域性區

系統全域性區(System Global Area,SGA)是包含了一個oralce例項所擁有的資料及控制資訊的共享記憶體區域.oralce在例項啟動時分配SGA空間,並在例項關閉時回收,每個例項都有自己的SGA.

SGA包括:共享池(shared pool)、資料庫緩衝區(Database Buffer)、重做日誌緩衝區(Redo Log Buffer)、大池、Java池、Stream池.

a.共享池(shared pool)中包含的是共享的記憶體結構,例如共享sql區(shared sql area). 處理所有提交到資料庫的sql語句都要用到共享sql區. 共享sql區中包含了語句對應的解析樹(parse tree)、執行計劃(execution plan)等資訊. 一個共享sql區可以被提交了相同sql語句的多個應用程式使用,以便節約記憶體空間.

b.資料庫緩衝區(Database Buffer)儲存最近使用的資料塊.一個例項中全部的資料庫緩衝區被稱為"資料快取".資料快取同時包含修改過和沒修改的資料塊.如果最近使用的資料被放在了記憶體中,對磁碟I/O的需求就減少了,因此效能也得到提高.

c.重做日誌緩衝區(Redo Log Buffer)使用者儲存重做條目(redo entry)--用於記錄資料庫變化的日誌。重做日誌緩衝區中儲存的條目將被寫入聯機的重做日誌(online redo log)檔案中,以備份資料庫恢復使用。重做日誌檔案的容量是固定的。

d.大池:為了進行大的後臺程式操作而分配的記憶體空間,主要指備份恢復、大型IO操作、並行查詢等。

e.Stream池:為了stream應用而分配的記憶體空間

f.Java池:為java應用而分配的記憶體空間

7、PGA(program global area,PGA) 程式全域性區

PGA(program global area,PGA) 程式全域性區是供服務程式(server process)儲存資料及控制資訊記憶體區域。這是一種在服務程式啟動時由oracle建立的非共享的記憶體區。只有服務程式才能訪問屬於它的PGA,而對PGA的讀寫操作是由oralce程式碼實現的。一個oralce例項中為所有服務程式分配的全部PGA記憶體也被稱為此例項的合計PGA。

8、後臺程式

a.PMON 程式監控程式,監控使用者程式是否正常

1)清理出現故障的程式

2)釋放所有當前掛起的鎖定

3)釋放故障程式使用的資源

b.SMON 系統監控程式,實時監控oralce狀況

1)在例項失敗之後,重新開啟資料庫自動恢復例項

2)負責清除系統中不再使用的臨時段

3)整理資料檔案的自由空間,將相鄰區域結合起來

c.DBWR 資料寫入程式

1)管理資料緩衝區,將最近使用過的塊保留在記憶體中

2)將修改後的緩衝區資料寫入資料檔案中

d.LGWR 日誌寫入程式

1)負責將日誌緩衝區中的日誌資料寫入日誌檔案

2)系統有多個日誌檔案,該程式以迴圈的方式將資料寫入檔案

e.CKPT 檢查點程式

1)為了防止例項崩潰,為了儘快進行例項恢復的程式

2)檢查點包括兩種:完全檢查點、增量檢查點

9、物理結構

a.主要物理檔案可分為三類:

資料檔案:資料檔案用於儲存資料,如表、索引資料等

控制檔案:控制檔案是記錄資料庫物理結構的二進位制檔案

日誌檔案:記錄對資料庫所有的修改資訊,用於故障恢復

注:丟失以上任意一種檔案資料庫都無法正常執行,需要程式介質恢復。

b.非主要物理檔案:引數檔案、密碼檔案、告警和跟蹤檔案...

10、表空間:

a.表空間是資料庫中最大的邏輯單位,一個oralce資料庫至少包含一個表空間

b.每個表空間都由一個或多個資料檔案構成,一個資料檔案只能與一個表空間關聯

c.表空間的大小等於構成表空間的資料檔案的大小之和

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-1061442/,如需轉載,請註明出處,否則將追究法律責任。

相關文章