control file parallel write等待事件

dotaddjj發表於2012-04-12

Control file parallel write事件,控制檔案的寫入等待,控制檔案中記錄了dbscn,資料檔案的scn,當前redo log號,歸檔日誌資訊,備份集資訊等等,很多資訊都需要定期更新,很有可能會引起control file parallel write事件。

1) 日誌檔案過小,或者dml操作過多,導致日誌切換太快,每次日誌切換都需要進行檢查點,記錄相應的日誌切換的資訊。

2) 增量檢查點發生,也會記錄scn資訊和檢查點到控制檔案中,10g的自動增量檢查點會記錄也會更新一次控制檔案中記錄的RBA資訊。

3) nologging下頻繁更新資料檔案,對資料檔案在nologging選項下執行修改工作時,為了修改unrecoverable scn需要更新controlfile。(關於這個情況個人沒有理清!)

4)當然磁碟IO問題

可以考慮把controlfile分開儲存在磁碟上。

如何判斷什麼程式引起的control file parallel write事件,其實之前一直用v$session_wait檢視當前的session的等待,這裡可以用v$session_event檢視首先檢視出導致control file parallel write等待事件的sid,然後對應v$session找到paddr,接著對應v$process找到導致時間的後臺程式,很多情況下我們會發現兩個程式,LGWRCKPT,日誌切換和檢查點是導致control file parallel write等待事件最主要的原因,相應的解決方法了就是增加日誌組和日誌大小,對controlfile分開儲存到磁碟等。

記錄db啟動到現在的等待事件的資訊,其中的total_waits等待次數,time_waited等待事件,average_wait平均等待一次的時間,這些度量參考值在很多檢視中都會用到,理解其中的意思。

SQL> select event,total_waits,total_timeouts,time_waited,average_wait from v$system_event where event='control file parallel write';

EVENT TOTAL_WAITS TOTAL_TIMEOUTS TIME_WAITED AVERAGE_WAIT

-------------------- ----------- -------------- ----------- ------------

control file paralle 4966 0 25830 5.2

l write

SQL> select sid from v$session_event where event='control file parallel write';

SID

----------

20

33

34

35

44

45

6 rows selected

SQL> select paddr from v$session where sid in (20,33,34,35,44,45);

PADDR

--------

33D34610

33D38170

33D34C00

33D351F0

33D304C0

33D2FED0

6 rows selected

SQL> select program from v$process

where addr in ('33D34610','33D38170','33D34C00','33D351F0','33D304C0','33D2FED0');

2 /

PROGRAM

----------------------------------------------------------------

PSEUDO

ORACLE.EXE (PMON)

ORACLE.EXE (PSP0)

ORACLE.EXE (MMAN)

ORACLE.EXE (DBW0)

ORACLE.EXE (LGWR)

ORACLE.EXE (CKPT)

ORACLE.EXE (SMON)

ORACLE.EXE (RECO)

ORACLE.EXE (CJQ0)

ORACLE.EXE (MMON)

ORACLE.EXE (MMNL)

......

看來這些程式都有可能引起control file parallel write等待,不過要申明的是這個是本機的測試庫,在一個繁忙的生產系統中我發現引起control file paralle write等待事件的都是後臺程式ckptlgwr,出現此等待事件很正常,但是如果影響了db效能就需要酌情調整了,跟控制檔案相應的還有control file sequential readcontrol file heartbeat等待事件。

[@more@]

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

相關文章