AWR的概念
Oracle數據庫是一個使用量很多的數據庫,關於Oracle數據庫的性能。Oracle10g以后,Oracle提供了一個性能檢測的工具:AWR(Automatic Workload Repository 自動工作負載庫)這個工具可以自動采集Oracle運行中的負載信息,並生成與性能相關的統計數據。我們可以根據這些統計數據來分析一些潛在的問題。
AWR的原理
Oracle啟動后,后台會有個進程去每小時采集一次系統的快照信息,信息采集來源為: V$active_Session_History視圖。該視圖可以展示最近活動會話的歷史記錄。並將采集到的信息保存8天。(查詢SQL:select * from dba_hist_wr_control;)采樣頻率和保存時間可配置。
快照由MMON和MMNL的進程自動地每隔固定時間采集一次。MMON進程負責執行多種和管理相關的后台任務,MMNL負責執行輕量級切高頻率的管理相關的后台任務。
awr報告
oracle 可以將8天的awr快照數據進行儲存,我們可以將oracle中的任何兩個時間點(輸入日期后,會返回相應的時段內,快照對應的時間)生成該段時間內的awr報告。具體生成方式有多種,一般需要sys權限,如果讀者有更好的方法,歡迎討論。
1.首先登陸sys用戶下 sqlplus as sysdba;
然后,再新彈出的窗口中輸入@?/rdbms/admin/awrrpt.sql

按照提示,輸入導出腳本的類型(HTML還是text),輸入HTML

這里輸入的是返回幾天的快照,這里輸入1天,表示返回一天的記錄

這里返回的是范圍內的所有快照的信息。通過輸入兩個快照id生成兩個快照點之間的報告信息。這里可以根據需要進行選擇,比如說,四點的時候,系統出現了明顯的卡頓,想要分析這個卡頓出現的原因,那么最好取三點到五點之間的日志,也就是對應的26和28 兩個snapId的值。
從上圖可以看出,id為21和22之間服務器進行了重啟,不能選擇這樣的快照區間,不然會拋出異常。
這里,我們選擇12點到18點之間的日志。

然后,輸入返回awr對象的名稱,建議寫一些有代表意義的名稱,便於以后查看。

然后就是一通滾屏,最后可以看到輸出成功的提示:

導出的awr報告:

