資料庫伺服器系統I/O 100%案例分析

paulyibinyi發表於2013-11-07

環境:
      oracle 10.2.0.5 rac+aix 平臺
問題描述:
  
    客戶資料庫伺服器I/O在業務高峰期非常繁忙,達到100%,cpu和記憶體有剩餘。

分析過程:
  
    1:檢查作業系統日誌,沒有什麼異常
  
    2:檢查資料庫日誌,也沒發現什麼異常

    3:檢視資料庫等待事件,發現db file scattered read及db file sequential read 事件居多

    4:根據等待事件查詢sql 為以下相關sql
           SELECT COUNT(1) FROM  table T WHERE T.R = :1   AND  t.d = '01'
           都是訪問跟T有關的sql
    5:  生成awr和addm報告
    
    6:根據awr和addm報告,檢視物理讀最多的sql,也是和T表有關
         RECOMMENDATION 1: Segment Tuning, 79% benefit (231286 seconds)
      ACTION: Investigate application logic involving I/O on TABLE
         "owner.T" with object id 198667.
         RELEVANT OBJECT: database object with id 198667
          addm報告建議對這個表重建,產生的碎片太多
    
     7:把這個表提供給業務開發人員分析,開發人員給出答案,這是業務新上線的一個模組,前期對這個表經常載入資料和刪除資料,所以產生碎片太多。
        經過開發人員重建後,相關索引建議,I/O 100的問題消失。

總結:
 
     業務上線前要在測試環境做好足夠的測試,沒問題後,才可以在生產釋出,業務流程上要加強。

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

相關文章