Oracle Windows進程說明

Oracle 安裝在Windows操作系統下會各種進程,Linux進程編碼同windows版。本文簡單介紹各進程的作用及產生的條件。

 

進程查詢語句:

select program from v$session where program like 'ORACLE.EXE%';

 

進程查詢結果:

ORACLE.EXE (q001)

ORACLE.EXE (q000)

高級隊列進程:使消息入隊和出隊。

 

ORACLE.EXE (QMNC)

高級隊列協調器:監視數據庫中的隊列,分配以上提到的Qnnn進程使消息入隊和出隊。

 

ORACLE.EXE (ARC1)

ORACLE.EXE (ARC0)

(1)歸檔進程,當數據庫處於歸檔模式時(archive mode), ARCn 負責將 online redo file歸檔到目標存儲位置,用於數據庫的恢復,當在線日誌切換時,會觸發 ARCn 進程將在線日誌文件歸檔。

(2)ARCn 進程在 data guard 下,負責將日誌向 standby  服務器發送。

 

ORACLE.EXE (J000)

job 具體執行進程,接受 CJQ0 分發的 job 任務。

 

ORACLE.EXE (CJQ0)

job 任務協調進程,負責數據庫中 JOB 的自動執行。

 

ORACLE.EXE (RECO)

分佈式事務的恢復進程。

 

ORACLE.EXE (MMNL)

是MMON的輔助進程,收集活動會話的歷史採樣。

 

ORACLE.EXE (MMON)

可管理型監視器:收集有關活動和性能的統計數據,用於自我監視和調整。

 

ORACLE.EXE (SMON)

(1)數據庫啓動時的實例恢復,在 RAC 環境下,一個節點的 SMON 可以對另外一個節點做實例恢復。

(2)清理和釋放臨時段上的數據(排序,臨時表等)

(3)對於 DMT( 字典管理表空間) ,SMON 可以合併連續空閒的 extent.

(4)維護回滾段的 online,offline 以及空間的回收。

 

ORACLE.EXE (CKPT)

(1)checkpoint 的目的:

     – 減少數據庫實例恢復的時間

     – 讓內存中的髒數據及時的寫到磁盤上。

     – 在安全關閉數據庫時,保證所有提交的數據被寫到磁盤上。

(2)checkpoint 的觸發

     – database checkpoint

        Consistent database shutdown

        ALTER SYSTEM CHECKPOINT statement

        Online redo log switch

        ALTER DATABASE BEGIN BACKUP statement

     – Tablespace and data file checkpoints

        tablespace  read only 

        tablespace   offline normal

        shrinking a data file

        alter tablespace begin backup

     – Incremental checkpoints

(3)CKPT 進程通知 DBWn 進程開始將內存(buffer cache) 中的髒數據寫到磁盤的文件上。 CKPT 負責更新文件頭和控制文件的信息。

 

ORACLE.EXE (LGWR)

(1)LGWR 負責將 log buffer 中的數據順序的寫到磁盤上的 online redo file, 由於是順序的寫入,效率要比 DBWn 高很多。

(2)LGWR 觸發條件

    – 用戶提交事務 (commit)

    – 日誌切換

    – 最後一次提交經過了 3 秒。

    – redo log buffer 容量達到 1/3 或者達到 1M 的 redo 數據。

    – DBWn 進程在把髒數據寫入磁盤之前,必須保證這些髒數據對應的日誌信息已經被寫入磁盤,

(3)如果發現髒數據的日誌信息沒有吸入磁盤, DBWn 通知 LGWR 進程寫日誌信息,完成後繼續將髒數據寫入磁盤。

 

ORACLE.EXE (DBW0)

(1)負責將 buffer cache 中髒數據(修改過的數據)塊寫到磁盤上,由於數據塊在磁盤上的位置不連續,這個過程會比 LGWR 比較耗時。

(2)DBWn 觸發條件

     – 當 server process 無法在 buffer cache 中無法找到可用的 buffer 時。

     – DBWn 接到 checkpoint 的指令,將髒數據寫到磁盤上。

(3)可以通過設置多個 DBWn 進程加快髒數據寫入磁盤的速度

     –  DB_WRITER_PROCESSES

 

ORACLE.EXE (MMAN)

內存管理進程,主要負責內存的動態管理,分配和收回。

 

ORACLE.EXE (PSP0)

進程生成器:主要負責創建和管理其它Oracle進程。

 

ORACLE.EXE (PMON)

進程監督進程,主要用來負責如下清理工作:

(1)進程異常終止

(2)會話被殺掉

(3)事務超過空閒時間

(4)網絡連接超時

(5)將實例信息註冊到監聽器上

(6)回滾未提交的事務,釋放事務相關的資源

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章