後台進程簡介
啟動例程時,Oracle不僅會分配SGA,還會啟動後台進程;關閉例程時,Oracle不僅會釋放SGA所占用的記憶體空間,而且還會釋放後台進程所占用的Cpu和記憶體資源。Oracle提供了很多後台進程,在這介紹常用後台進程SMON、PMON、DBWR、LGWR、CKPT、ARCH。
分類介紹
1. DBWR 資料庫寫入進程
DBWR (the Database Writer Process)進程負責將髒數據塊從數據快取(database block buffer)寫回磁碟.當一個事務修改數據塊中的數據以後,不需要立即將數據塊寫回磁碟。由於Oracle所採用的先進機制,修改後的數據可以不用立即寫回,並且及時出現故障也不會丟失。因此,DBWR可以採取更有效寫回方式,而不用再事務提交完之後立即寫回。DBWR通常定時寫回數據,除非數據緩衝區需要清空或已滿。
數據寫回時,採用了最近最少使用原則(least-recently-used).對於支持異步I/O的系統,只需使用一個BWR進程即可,對不支持異步IO的可以通過增加DBWR的個數來提升效率。
2. LGWR 日誌寫入進程
LGWR (the Log Writer Process)負責將日誌緩衝區中的數據寫入重做日誌。由於COMMIT操作依賴於LGWR寫回日誌(commit操作觸發LGWR將日誌緩衝區數據寫入UNDO日誌),因此系統性能容易受到LGWR的影響。
3. PMON 進程監視進程
PMON(the Process Monitor Process)進程負責監視資料庫的處理情況,並負責清除死掉的進程。PMON還負責重啟失敗的調度進程(dispatcher process)
4. SMON 系統監視進程
SMON(the System Monitor Process)進程負責在實例啟動時恢復實例,包括清除臨時段以及恢復因系統崩潰而中斷的事物。SMON還可以通過合併空閒分區的方式清除資料庫中的碎片
5.CKPT 檢查點進程
CKPT(the Checkpoint Process)進程負責向DBWR進程傳送信號,要求執行一次檢查點,並更新資料庫的所有數據和控制檔案。CheckPoint(檢查點),是指有DBWR進程將所有修改過的數據緩衝區寫回數據檔案。CKPT是可選的,如果沒有CKPT進程,則有LGWR代行這些任務。
6. ARCHn 歸檔進程
ARCH(the Archiver Process )負責將再現重做日誌複製到歸檔存儲器。進檔RDBMS運行在ARCHIVELOG模式時ARCH才有效,如果系統沒有運行在ARCHIVELOG模式,則系統失效後可能無法恢復。最後讓系統運行在ARCHIVELOG模式下,此時歸檔進程可能有多個。
SQL>archive log list //查看是否為歸檔模式
可以再資料庫Mount 模式下開啟歸檔
SQL>alter database archivelog; //開啟
SQL>alter database noarchivelog;//關閉
7. RECO 恢復進程
RECO (the Recovery Process)進程用於清除分散式資料庫中的未決(pending)事務,它負責分散式事務中本地部分的提交與回滾
8. Dnnn 調度進程
如果選擇了Multithreaded Server選項,則對使用的每個通信協定至少有一個調度進程。調度進程(the Dispatcher Process,Dnnn)負責將用戶進程的請求轉發到一個可用的共享伺服器進程,並負責將用戶進程的請求轉發到一個可用的共享伺服器進程,並負責回送回響訊息。
9. Snnn 共享伺服器進程
當使用共享伺服器配置或MTS時,會用到共享伺服器進程(the Shared Servers Process ,Snnn).這些進程如同專用伺服器進程(Dedicated Server Process),但可以被多個用戶
共享。
10. LMS Oracle RAC 鎖管理服務
使用RAC時,該服務用語管理集群中不同節點間的鎖.
11. QMNn 佇列管理進程
使用高級佇列選項時(advanced queueing option),佇列管理進程(Queue Manager Process )用於管理作業佇列,佇列數目可以達到10個,QMN0——QMN9