關于用戶進程,服務進程,后臺進程
2024-07-21 02:33:43
供稿:網友
我記得剛開始預備考ocp時看到體系結構的書里畫了一堆圖,圖上寫些什么dbwn,smon,當時我的頭就大了,當時我使用Oracle已經有一段時間了,但是從來沒有系統學過,也不知道這些東西是什么,現在慢慢搞清楚了他們之間的關系, 才覺得對oracle內部構造有了一定的了解(當然是很膚淺的了解,嘻嘻)
--------------------------------------------------------------------------------------
用戶進程(User PRocess)
是一個需要與Oracle Server交互的程序
運行于客戶端
當用戶運行某個工具或應用程序(如SQL*Plus)時創建,當用戶退出上述程序時結束
用戶進程向Oracle Server發出調用,但它并不與Oracle Server直接交互,而是通過Server Process與Oracle Server進行交互。
--------------------------------------------------------------------------------------
服務進程(Server Process)
是一個直接與Oracle Server交互的程序。
與Oracle Server運行于同一臺機器上
使用PGA執行User Process發出的調用,并向User Process返回結果狀態和結果信息。
--------------------------------------------------------------------------------------
后臺進程(Background Process)注:本人認為比較重要的一部分 。
后臺進程用于維護物理存儲與內存中的數據之間的關系。主要包括:
DBWn
PMON
CKPT
LGWR
SMON
RECO
ARCn
-----------------------------------------
Database Writer(DBWn)
DBWn在以下情況將數據寫入磁盤(數據文件data file):
1)發生檢查點
2)達到臟緩沖區閾值
3)沒有可用的緩沖區
4)超時
5)將表空間設置為脫機或只讀
6)刪除或截斷表
7)備份表空間
-----------------------------------------
LOG Writer(LGWR)
LGWR在以下情況將緩沖區中的數據寫入磁盤(聯機日志文件redo log):
1)事務提交
2)三分之一的redo日志緩沖區已滿
3)Redo日志緩沖區中的內容超過1M
4)每三秒鐘
4)在DBWn寫磁盤之前
-----------------------------------------
System Monitor(SMON)
負責檢查和維護Oracle database的一致性。它主要完成以下工作:
1)實例恢復
2)重做已提交的事務
3)打開數據庫
4)回滾未提交的事務
5)合并數據文件中相鄰的自由空間
6)釋放臨時段的空間
----------------------------------------
Process Monitor(PMON)
當某個進程失效時,清除相關的資源。它主要負責以下工作:
1)回滾用戶的當前事務
2)釋放相關的鎖
3)是否其它相關的資源
---------------------------------------
Checkpoint(CKPT)
Checkpoint負責:
1)使DBWn將SGA中所有被修改的數據庫緩沖區的內容寫入磁盤,無論事務是否被提交
2)用檢查點信息更新數據文件頭
3)用檢查點信息更新控制文件
它可以保證:
1)將經常被修改的數據塊寫入磁盤
2)簡化實例恢復
---------------------------------------
Archiver(ARCn)
是一個可選的后臺進程
當把數據庫設置為ARCHIVELOG模式時,可以自動歸檔聯機redo日志
能夠保存所有對數據庫所做修改的記錄