我堅持每天看3套rac的awr,總結了一下。
查詢日誌等待事件的sql:
9i:select * from v$event_name where name like '%log%';(大概14個左右)
10g: select name,wait_class from v$event_name where name like '%log%';(大概35個左右)
11g: select name,wait_class from v$event_name where name like '%log%'; (大概30個左右)
碰到比較多的是以下幾個:
一、log file switch(archiving needed)
即日誌切換時,切換到目標日誌組還未完成歸檔,那肯定要等待嘛。
可能原因:redo,archive分割槽i/o效能較差、歸檔寫出緩慢、日誌組數量設定不合理
解決方法: 1、增加日誌組或日誌組成員的大小
2、把archive log調整到io效能較高的磁碟上,比如儲存上
3、調整log_archive_max_processes引數
二、log file switch(checkpoint incomplete)
說明日誌切換時,切換到目標日誌組時,那個日誌組所保護的髒資料還沒寫入
可能原因:dbwn寫出太慢、i/o存在問題
解決方法: 1、增加額外的dbwn
2、增加日誌組或日誌組成員大小
三、log file sync
可能原因:lgwr寫出效率低下、commit過於頻繁等
解決方法:1、提高lgwr寫出效率,使用io效能較好的磁碟
2、使用批量提交,(實時**業務謹慎操作)
3、使用nologging/unreoverable選項()
四、log file single write
產生原因:更新日誌檔案頭時產生的等待
五、log file parallel write
產生原因:並行寫入多個日誌組成員的等待
六、log buffer space
產生原因:資料庫產生的日誌比lgwr寫入的日誌速度要快,或日誌切換太慢
解決方法:1、增大log buffer
2、磁碟i/o存在瓶頸
備註一下:db規劃是redo分割槽,arch分割槽空間所佔的硬碟盡量做raid1
未完待續
等待事件之日誌等待事件解決的方法
我堅持每天看3套rac的awr,總結了一下。查詢日誌等待事件的sql 9i select from v event name where name like log 大概14個左右 10g select name,wait class from v event name where name lik...
等待事件 buffer busy waits
事件引數說明 事件號 145 事件名 buffer busy waits 引數一 file 引數二 block 引數三 9i 原因碼,10g block class 事件說明 一 oracle會話正在等待pin住乙個緩衝區,會話必須在讀取或修改緩衝區之前將該緩衝區pin住。二 在任何時侯只有乙個程序...
GC Blocks Lost等待事件
在oracle rac環境中,無論我們從awr自動負載效能報告 statspack或者grid control中都可以找到oracle資料庫軟體所收集的全域性快取工作負載統計資訊 global cache work load statistics 其中就包含了全域性快取塊丟失 global cach...