oracle的三種型別的程式

jane_pop發表於2014-09-04
oracle有三種程式---使用者程式,伺服器程式和後臺程式。
下面分別講講這三種程式:
(1)使用者程式:使用者程式是一個需要和oracle伺服器進行互動的程式。當使用者執行一個應用程式準備向資料庫伺服器傳送請求時,即建立了使用者程式(如客戶端的SQLPLUS程式),使用者程式位於客戶端,伺服器程式和後臺程式位於伺服器端。
(2)伺服器程式:伺服器程式用於處理連線到該例項的使用者程式的請求,當使用者連線至oracle資料庫例項建立會話時,即產生伺服器程式,伺服器程式需要消耗pga。
(3)後臺程式:後臺程式是oracle資料庫為了保持最佳系統效能和協調多個使用者請求而設定的,oracle例項啟動時即建立了一系列的後臺程式,oracle例項常見的後臺程式包括SMON,PMON,DBWR,LGWR,ARC,CKPT。
下面簡要講講oracle的後臺程式:
(1)SMON系統監控程式,實時監控整個oracle的狀況。
.例程恢復
-前滾重做日誌中的更改
-開啟資料庫供使用者訪問
-回退未提交的事務處理
.合併空閒空間
.回收臨時段
(2)PMON程式監控程式,監控使用者程式是否正常
.回退事務處理
.釋放鎖
.釋放其他資源
.重新啟動已失效的排程程式
(3)DBWR資料寫入程式,將修改的資料寫回到資料檔案
在以下情況寫入:
.出現檢查點
.當資料緩衝區達到閾值
.沒有空閒緩衝區
.出現超時
.執行了RAC ping請求
.表空間處於offline狀態
.表空間處於read only狀態
.對錶執行drop或truncate操作
.對錶空間執行begin backup操作
(4)LGWR日誌寫入程式,負責將日誌緩衝區中的日誌資料寫入日誌檔案
LGWR在以下情況寫入:
.提交時
.三分之一填滿
.有1MB的重做時
.每隔3秒
.DBWn寫入前
(5)CKPT檢查點程式,在例項崩潰後提交快速恢復的程式
.在發生檢查點的時候發訊號給DBWn
.使用檢查點資訊更新資料檔案頭和控制檔案

如果想要檢視這些後臺程式有兩種方法:
(1)在終端輸入ps -ef|grep ora_
[root@localhost ~]# ps -ef |grep ora_
oracle   20033     1  0 23:34 ?        00:00:00 ora_pmon_orcl
oracle   20035     1  0 23:34 ?        00:00:00 ora_vktm_orcl
oracle   20039     1  0 23:34 ?        00:00:00 ora_gen0_orcl
oracle   20041     1  0 23:34 ?        00:00:00 ora_diag_orcl
oracle   20044     1  0 23:34 ?        00:00:00 ora_dbrm_orcl
oracle   20046     1  0 23:34 ?        00:00:00 ora_psp0_orcl
oracle   20048     1  0 23:34 ?        00:00:00 ora_dia0_orcl
oracle   20050     1  0 23:34 ?        00:00:00 ora_mman_orcl
oracle   20054     1  0 23:34 ?        00:00:00 ora_dbw0_orcl
oracle   20056     1  0 23:34 ?        00:00:00 ora_lgwr_orcl
oracle   20058     1  0 23:34 ?        00:00:00 ora_ckpt_orcl
oracle   20060     1  0 23:34 ?        00:00:00 ora_smon_orcl
oracle   20062     1  0 23:34 ?        00:00:00 ora_reco_orcl
oracle   20064     1  0 23:34 ?        00:00:00 ora_mmon_orcl
oracle   20067     1  0 23:34 ?        00:00:00 ora_mmnl_orcl
oracle   20069     1  0 23:34 ?        00:00:00 ora_d000_orcl
oracle   20071     1  0 23:34 ?        00:00:00 ora_s000_orcl
oracle   20186     1  0 23:34 ?        00:00:00 ora_arc0_orcl
oracle   20188     1  0 23:34 ?        00:00:00 ora_arc1_orcl
oracle   20190     1  0 23:34 ?        00:00:00 ora_arc2_orcl
oracle   20192     1  0 23:34 ?        00:00:00 ora_arc3_orcl
oracle   20195     1  0 23:34 ?        00:00:00 ora_qmnc_orcl
oracle   20223     1  0 23:34 ?        00:00:00 ora_cjq0_orcl
oracle   20242     1  0 23:34 ?        00:00:00 ora_vkrm_orcl
oracle   20283     1  0 23:34 ?        00:00:00 ora_q000_orcl
oracle   20285     1  0 23:34 ?        00:00:00 ora_q001_orcl
oracle   21103     1  0 23:44 ?        00:00:00 ora_smco_orcl
oracle   21111     1  0 23:44 ?        00:00:00 ora_w000_orcl
root     21361 21341  0 23:48 pts/4    00:00:00 grep ora_

(2)在sqlplus檢視v$process動態效能檢視:
SYS@orcl 04-SEP-14>select pname,spid from v$process;
PNAME SPID
----- ------------------------

PMON  20033
VKTM  20035
GEN0  20039
DIAG  20041
DBRM  20044
PSP0  20046
DIA0  20048
MMAN  20050
DBW0  20054
LGWR  20056

PNAME SPID
----- ------------------------
CKPT  20058
SMON  20060
RECO  20062
MMON  20064
MMNL  20067
D000  20069
S000  20071
          20184
ARC0  20186
ARC1  20188
ARC2  20190

PNAME SPID
----- ------------------------
ARC3  20192
QMNC  20195
      20216
      20219
CJQ0  20223
      20225
      20227
      20229
      20231
      20233
VKRM  20242

PNAME SPID
----- ------------------------
Q000  20283
SMCO  21103
W000  21111
      20465
      20270
Q001  20285
      20481
      20507
J000  22588
J001  22590
      22383

PNAME SPID
----- ------------------------
      22387
      22389

46 rows selected.


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29800581/viewspace-1263763/,如需轉載,請註明出處,否則將追究法律責任。

相關文章