后臺進程是計算機科學中的一個重要概念,指由Oracle Server隱含執行的一系列進程。
后臺進程簡介
在啟動Oracle例程時,除了分配系統全局區(SGA),還會自動啟動一系列后臺進程。同樣,在關閉例程時,Oracle數據庫不僅會釋放SGA所占用的內存空間,還會釋放后臺進程所占用的CPU和內存資源。Oracle提供了一系列后臺進程,其中一些常用的進程包括SMON、PMON、DBWR、LGWR、CKPT、ARCH等。
后臺進程分類介紹
DBWR 數據庫寫入進程
DBWR(Database Writer Process)進程主要負責將臟數據塊從數據緩存(database block buffer)寫回到磁盤上。為了提高效率,DBWR通常不會在事務提交完成后立即寫回數據,而是定期地進行寫回操作。此外,DBWR也會在數據緩沖區需要清空或已滿的情況下進行寫回。在支持異步I/O的系統中,只需要一個DBWR進程即可,而在不支持異步I/O的系統中,可以通過增加DBWR的數量來提升效率。
LGWR 日志寫入進程
LGWR(Log Writer Process)負責將日志緩沖區中的數據寫入重做日志。由于COMMIT操作依賴于LGWR寫回日志,因此系統的性能可能會受到LGWR的影響。
PMON 進程監視進程
PMON(Process Monitor Process)進程主要負責監控數據庫的處理情況,并清理死亡的進程。同時,PMON也負責重新啟動失敗的調度進程(dispatcher process)。
SMON 系統監視進程
SMON(System Monitor Process)在實例啟動時負責恢復實例,包括清除臨時段以及恢復因系統崩潰而中斷的事務。SMON還能通過合并空閑分區的方式來清除數據庫中的碎片。
CKPT 檢查點進程
CKPT(Check Point軟件技術公司 Process)進程負責向DBWR進程發送信號,以執行檢查點操作,并更新數據庫的所有數據和控制文件。如果沒有CKPT進程,那么LGWR將會承擔這些任務。
ARCHn 歸檔進程
Arch Linux(Archiver Process)負責將重做日志復制到歸檔存儲器。只有在時態數據庫運行在ARCHIVELOG模式時,ARCH才會生效。否則,系統失效后可能無法恢復。在ARCHIVELOG模式下,歸檔進程可能有多個。
RECO 恢復進程
RECO(Recovery Process)主要用于清除分布式數據庫中的未決事務,負責分布式事務中本地部分的提交與回滾。
Dnnn 調度進程
Dnnn(Dispatcher Process)是調度進程的一種,當選擇Multi-threaded Server選項時,每個通信協議至少有一個調度進程。它們負責將用戶進程的請求轉發到可用的共享服務器進程,并返回響應消息。
Snnn 共享服務器進程
Snnn(Shared Servers Process)是在使用共享服務器配置或MTS時使用的進程。這些進程類似于專用服務器進程,但能夠被多個用戶共享。
LMS Oracle RAC 鎖管理服務
LMS(Lock Management Service)在使用Oracle數據庫 Real Application Clusters(RAC)時,用于管理集群中不同節點之間的鎖。
QMNn 隊列管理進程
QMNn(Queue Manager Process)在使用高級隊列選項時,用于管理作業隊列。隊列數量最多可達10個,編號范圍從QMN0至QMN9。
參考資料 >
后臺進程.博客.2024-10-22
后臺進程.騰訊云.2024-10-22
DBWR.博客.2024-10-22