天天看點

oracle lms lgwr,oracle背景程序的一些知識

oracle資料庫伺服器由資料庫和執行個體兩部分組成,而執行個體又是由記憶體結構和背景程序組成。執行個體隻短暫存在于記憶體和CPU中。資料庫是由磁盤上的物 理檔案組成。是以,執行個體的生存期是其在記憶體中的存在時間,我們可以啟動和停止執行個體。而資料庫,如果不是有意删除組成資料庫的檔案,那麼資料庫一旦被建立就 可以永久存在。

oracle執行個體至少有5個背景程序:SMON、PMON、DBWn、LGWR、CKPT,這些背景程序不論執行個體中是否有會話存在,甚至是還未建立或打開資料庫,這些程序總是在執行個體運作時存在。

1. SMON 系統監視程序

SMON(the System Monitor Process)程序負責在執行個體啟動時恢複執行個體,包括清除臨時段以及恢複因系統崩潰而中斷的事物。SMON還可以通過合并空閑分區的方式清除資料庫中的碎片

2. PMON 程序監視程序

PMON(the Process Monitor Process)程序負責監視資料庫的處理情況,并負責清除死掉的程序。PMON還負責重新開機失敗的排程程序(dispatcher process)

oracle lms lgwr,oracle背景程式的一些知識

3. DBWR 資料庫寫入程序

DBWR The Database Writer Process 程序負責将髒資料塊從資料緩存(database block buffer)寫回磁盤.當一個事務修改資料塊中的資料以後,不需要立即将資料塊寫回磁盤。由于Oracle所采用的先進機制,修改後的資料可以不用立即 寫回,并且及時出現故障也不會丢失。是以,DBWR可以采取更有效寫回方式,而不用再事務送出完之後立即寫回。DBWR通常定時寫回資料,除非資料緩沖區 需要清空或已滿。 資料寫回時,采用了最近最少使用原則(least-recently-used).對于支援異步I/O的系統,隻需使用一個BWR程序即可,對不支援異步 IO的可以通過增加DBWR的個數來提升效率。

4. LGWR 日志寫入程序

LGWR (the log writer process)負責将日志緩沖區中的資料寫入重做日志。由于COMMIT操作依賴于LGWR寫回日志(commit操作觸發LGWR将日志緩沖區資料寫入重做日志),是以系統性能容易受到LGWR的影響。

5.CKPT 檢查點程序

CKPT(the Checkpoint Process)程序負責向DBWR程序發送信号,要求執行一次檢查點,并更新資料庫的所有資料和控制檔案。CheckPoint(檢查點),是指有 DBWR程序将所有修改過的資料緩沖區寫回資料檔案。CKPT是可選的,如果沒有CKPT程序,則有LGWR代行這些任務。

6. ARCHn 歸檔程序

ARCH(the Archiver Process )負責将再現重做日志複制到歸檔存儲器。進檔RDBMS運作在ARCHIVELOG模式時ARCH才有效,如果系統沒有運作在ARCHIVELOG模式, 則系統失效後可能無法恢複。最後讓系統運作在ARCHIVELOG模式下,此時歸檔程序可能有多個。

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個,

下面是我虛拟機啟動都看到的oracle程序,sid是gbk:

oracle 16812 1 0 Sep25 ? 00:00:11 ora_pmon_gbk

oracle 16814 1 0 Sep25 ? 00:00:01 ora_psp0_gbk

oracle 16816 1 0 Sep25 ? 00:00:01 ora_mman_gbk

oracle 16818 1 0 Sep25 ? 00:00:06 ora_dbw0_gbk

oracle 16820 1 0 Sep25 ? 00:00:11 ora_lgwr_gbk

oracle 16822 1 0 Sep25 ? 00:00:49 ora_ckpt_gbk

oracle 16824 1 0 Sep25 ? 00:00:07 ora_smon_gbk

oracle 16826 1 0 Sep25 ? 00:00:00 ora_reco_gbk

oracle 16828 1 0 Sep25 ? 00:00:20 ora_cjq0_gbk

oracle 16830 1 0 Sep25 ? 00:00:12 ora_mmon_gbk

oracle 16832 1 0 Sep25 ? 00:00:21 ora_mmnl_gbk

oracle 16834 1 0 Sep25 ? 00:00:00 ora_d000_gbk

oracle 16836 1 0 Sep25 ? 00:00:00 ora_s000_gbk

oracle 16840 1 0 Sep25 ? 00:00:04 ora_arc0_gbk

oracle 16842 1 0 Sep25 ? 00:00:03 ora_arc1_gbk

oracle 16861 1 0 Sep25 ? 00:00:00 ora_qmnc_gbk

oracle 16863 1 0 Sep25 ? 00:00:00 ora_q000_gbk

oracle 16905 1 0 Sep25 ? 00:00:00 ora_q001_gbk

oracle 17780 1 0 14:28 ? 00:00:00 ora_q002_gbk

oracle 31049 1 0 Sep25 ? 00:00:00 /app/oracle/product/10.2/db_1/bin/tnslsnr LISTENER -inherit