天天看點

Oracle的程序結構

Oracle的程序結構

    了解一下Oracle資料庫的程序結構,對了解Oracle的性能、資料庫的設計、備份與恢複的原理有很大幫助.

    1.系統螢幕(System Monitor, SMON)

    主要任務是通過查找和驗證控制檔案來安裝資料庫,通過查找和驗證所有資料檔案和聯機日志檔案打開資料庫,打開資料庫後負責執行各種内部管理任務,如比較資料檔案中的可用

空間.

    2.程序螢幕(Process Monitor, PMON)

    PMON在會話建立時啟動,再會話結束時銷毀. PMON監視所有伺服器程序,會話異常退出時,復原事務,釋放資源.

    3.資料庫寫入器(Database Writer, DBWn)

    會話通常不将資料或更改寫入磁盤,會話将資料或更改寫入高速緩存區.

    DBWn在以下四種情況寫入磁盤檔案.

    ·沒有可用的緩沖區

    ·髒緩沖區資料過多

    ·三秒逾時

    ·遇到檢查點

    在送出事務時,DBWn不做任何動作.

    4.日志寫入器(Log Writer, LGWR)

    當會話對資料高速緩沖區中的塊執行任何更改時,在其将更改應用到塊之前,會将更改矢量寫到日志緩沖區. 為保證不丢失任何工作,必須在最大程度減少延遲的情況下将這些更改矢量寫入磁盤. LGWR将日志緩沖區的内容實時寫入聯機重做日志檔案.當會話發出COMMIT時,LGWR會實時寫入,在LGWR将緩沖區寫入磁盤時,會話将挂起,隻有此時才将事務記錄為已經提

交(是以是不可逆的).

    LGWR是Oracle體系結構中最大的瓶頸之一.DML的速度不可能超過LGWR将更改矢量寫入磁盤的速度.

    在以下三種情況下LGWR将轉儲日志緩沖區:

    ·會話發出COMMIT.

    ·日志緩沖區占有率達1/3.

    ·DBWn要将髒緩沖區資料寫入檔案時.

    5.檢查點程序(Checkpoint Process, CKPT)

    CKPT發起檢查點,觸發DBWn将髒緩沖區資料寫入磁盤.

    8i前,每過一定的時間間隔,就需要設定檢查點.8i及之後,DBWn用增量檢查點代替完全檢查點.

    何時出現檢查點:隻會應請求這麼做,或在有序關閉資料庫時出現.

    6.歸檔程序ARCn

    在歸檔日志模式下,LGWR将日志緩沖區寫到聯機重做日志檔案中,聯機重做日志檔案一旦變滿,ARCn會制作聯機重做日志檔案的副本(歸檔重做日志檔案),在ARCn将聯機日志檔案成功歸檔到歸檔日志檔案前,不允許覆寫相應的連機日志檔案.

    程序對資料庫事務的處理過程

    ·會話将資料或更改寫入資料高速緩沖區,并在應用到更改的塊之前,将更改矢量寫入日志緩沖區.

    ·LGWR将日志緩沖區的資料實時寫入磁盤聯機日志檔案(在日志緩沖區占滿1/3,或者會話發出送出事務,或者DBWn要寫髒緩沖區時).

    ·DBWn按一定的時機寫入磁盤資料檔案(緩沖區滿,髒緩沖資料過多,三秒逾時,檢查點請求).

    ·聯機日志檔案寫滿時,ARCn将聯機日志檔案歸檔到歸檔日志檔案.