oracle 11g pmon工作內容系列二

wisdomone1發表於2015-11-05

背景

   我們知道
   2,pmon工作內容如下:
後經查詢官方手冊發現,PMON的工作內容如下:
    1,監控後臺程式執行狀況
    2,如果某些程式異常中斷,PMON去釋放會話資源以及佔用的鎖LOCK
    3,更新事務表的標誌以及清除事務XID的標記
    4,清除異常中斷會話在BUFFER CACHE佔用的快取
    5,PMON也負責定期把資料庫例項註冊到監聽器中


結論



1,10246 pmon event的命令:
   alter system set events='10246 trace name context forever,level 1';--開啟
   alter system set events='10246 trace name context off';--關閉
2,可以從10246 PMON TRACE FILE發現PMON在清理中斷會話佔用的事務表及鎖資源資訊
3,當然比如像背景中,說其它幾點沒有看到,我估計是級別不夠
4,level 12可以查盾清理佔用的latch的情況
5,至於到底不同級別的區別,大家進行對比測試即可,不再複述   






測試



1,資料庫版本
SQL> select * from v$version where rownum=1;


BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production




2,測試會話
SQL> select spid from v$process where addr=(select paddr from v$session where sid=(select sid from v$mystat where rownum=1));


SPID
------------------------------------------------
9534


SQL> update t_pmon set a=3,b=3;
--注意:執行一段時間


3,手工殺死測試會話對應的作業系統程式
[oracle@seconary ~]$ ps -ef|grep 9534
oracle    9534  1001  1 04:44 ?        00:00:03 oracleguowang (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   10416  1311  0 04:47 pts/2    00:00:00 grep 9534
[oracle@seconary ~]$ kill -9 9534










4,10246跟蹤的PMON TRACE FILE
*** 2015-11-02 04:51:02.339
marked process 0xdd5bc340 pid=30 serial=229 ospid = 9534 dead --標記9534程式死亡
  client details:
    O/S info: user: oracle, term: pts/4, ospid: 1001
    machine: seconary program: sqlplus@seconary (TNS V1-V3)
    application name: SQL*Plus, hash value=3669949024


*** 2015-11-02 04:51:02.427
deleting process 0xdd5bc340 pid=30 serial=229 priority=0  --清理對應的作業系統資源
deleting session 0xdc8b3f10 sid=271 serial=7089


*** 2015-11-02 04:51:04.040
deleting session 0xdcafb500 sid=70 serial=7394


*** 2015-11-02 04:51:05.664
ksuprog() called at ktur.c:3039  --呼叫ORACLE核心引數
ksuprog() called at ktur.c:3039
ksuprog() called at ktur.c:3039
中間略
ksuprog() called at ktur.c:3039
ksuprog() called at ktur.c:3039
ksuprog() called at ktur.c:3039
ksuprog() called at ktur.c:3039


*** 2015-11-02 04:51:06.898
CLEANUP_ROLLBACK_ENTRIES=100 rollback entries processed  --清理測試會話佔用的UNDO資源,即佔用的回滾段資源


*** 2015-11-02 04:51:09.847
Audit postponed pending cleanup for session 0xdcafb500  
deleting session 0xdcafb500 sid=70 serial=7395
Audit postponed pending cleanup for session 0xdcafb500
deletion of process dd5bc340 pid=30 seq=229 prog=TRUE unsuccessful


*** 2015-11-02 04:51:09.967
found process 0xdd5bc340 pid=30 serial=229 ospid = 9534 dead  --9534程式死亡


*** 2015-11-02 04:51:10.016
deleting process 0xdd5bc340 pid=30 serial=229 priority=0 
deleting session 0xdcafb500 sid=70 serial=7396




5,仍看不到好多PMON的工作內容,如:


        4,清除異常中斷會話在BUFFER CACHE佔用的快取


所以我們加大跟蹤級別,看有無變化


SQL> alter system set events='10246 trace name context forever,level 12';


System altered.


SQL> alter system set events='10246 trace name context off';


System altered.


可以明看到清除鎖及LATCH的資源佔用
marked process 0xdd5be3c0 pid=32 serial=253 ospid = 20301 dead
  client details:
    O/S info: user: oracle, term: pts/4, ospid: 1001
    machine: seconary program: sqlplus@seconary (TNS V1-V3)
    application name: SQL*Plus, hash value=3669949024


*** 2015-11-02 05:21:43.591
cleaning latches proc=dd5be3c0 pid=32 seq=253 --清理LATCH
Latch Cleanup: kcbzch - op=0, lt=0xda2c5c78, b=0xb7fb0728, nb=0x1, bp=0xda6cd580




...complete        




所以表明不同的級別跟蹤PMON,產生的內容是不同的


至於到底不同級別的區別,大家進行對比測試即可,不再複述

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

相關文章