後台進程
後台進程
後台進程,計算機專業術語,是指由Oracle Server隱含執行的進程。
啟動常式時,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