AWR簡介

與刃爭鋒發表於2014-01-09
AWR(automatic workload repository)自動工作負荷知識庫

oracle收集大量有關效能和活動的統計資訊,這些資訊在記憶體中累計,並定期寫入資料庫:寫入到構成AWR的表中.
AWR作為SYSAUX表空間中的一組表和其他物件而存在.AWR與資料字典相關,但又與資料字典不同,因為AWR對於執行資料庫而言並不是必須的(建議必須),資料寫入AWR並儲存一段時間,最終被最近的資訊覆蓋.

收集AWR統計資訊
統計資訊收集的級別由例項引數statistics_level控制,可以將這個引數設定為basic,typical(預設設定)或all.typical級別允許收集正常調整所需的所有統計資訊,同時不會收集對效能有不良影響的統計資訊集合.basic級別幾乎禁用收集所有統計資訊,並不存在可評估的效能優勢.all級別會收集與SQL語句執行相關的,極其詳細的統計資訊.如果進行高階的SQL語句調整,可使用all級別,不過在收集統計資訊時會導致效能稍有退化.

統計資訊在記憶體中(SGA內的資料結構)累積.因為統計資訊只反映例項所作的操作,並不影響例項的效能.將統計資訊定期地(預設1小時1次)寫入磁碟AWR,這被稱為一次AWR快照.將統計資訊寫入磁碟的操作由後臺程式(可管理性監視器MMON)完成.後臺程式的使用對於統計資訊收集程式的效率來說十分關鍵.舊版本的oracle只有通過執行鍼對各種v$動態效能檢視的查詢才能訪問效能調整統計資訊.填充這些檢視是一個非常昂貴的過程.dba必須先啟動一個針對指定資料庫的會話,然後再執行一個查詢,這個查詢使oracle能夠從SGA中提取資料,並且將這些資料通過該會話填充至某個檢視.這種方法對於舊檢視以及其它更多的檢視來說仍然是可行的,但AWR方法更為有效.

任何第三方工具都不能像MMON那樣對例項進行直接記憶體訪問,如果例項壓力較大,需用任何非oracle提供的第三方工具,要慎重.

MMON直接訪問構成SGA的記憶體結構,從而也可以訪問這些記憶體結構中的統計資訊,這個程式可以在不需要通過會話的情況下從SGA內提取資料,此時唯一的系統開銷是將資料的快照實際寫入AWR.預設下這個操作每小時執行1次,應該不會對執行時效能產生明顯的影響.

!MMON程式將AWR統計資訊作為快照儲存到AWR中,預設方式是每60分鐘儲存一次,預設下,重寫前快照會儲存8天.

AWR是位於SYSAUX表空間內的一組表,這些表不能被重新定位,並且存在於SYSMAN模式中,可以使用諸如SQL*Plus的工具,以使用者SYSMAN的身份登入資料庫,但這不是必須的.實際上oracle不支援使用SQL*Plus訪問AWR,建議用Enterprise Manger,Enterprise Manager Database Control和Enterprise Manager Grid COntrol使用配置檔案中加密形式的口令,以SYSMAN的身份登入資料庫.因此要更改SYSMAN口令,並非只執行alter user sysman identified by...命令,還要使用emctl實用程式:emctl sepasswd dbconsole 這將更新適當檔案中的加密口令.

可以將AWR快照視為拍制快照時很多v$檢視的內容副本,但別忘了複製資訊的機制並非是v$檢視,製作副本的程式是MMON,除了來自動態效能檢視的資訊,AWR還儲存使用其他方式時在dba檢視中可見,從資料字典填充的資訊. 資訊種類包括物件統計資訊的歷史.如果沒有AWR,資料庫將不用有說明物件更改方式的長期記錄.使用dbms_stats手機的統計資訊提供當前資訊,但有必要儲存關於資料庫物件狀態的歷史畫面,AWR提供這一功能.

管理AWR
預設方式下,統計資料的快照在AWR中儲存8天,這個週期是可調的.

MMON程式儲存AWR快照時,他會根據統計資訊自動生成大量的指標,建立基準必須由dba完成.一段時間後會清除快照,預設是8天清除.
基準是快照的一對或多對,將一直保持到專門刪除為止.

db control具有用於管理AWR的介面,但它執行操作時需要呼叫PL/SQL包dbms_workload_repository中的過程.這些過程可以調整快照的頻率和永續性,生成即席快照(MMON生成的快照的補充),建立和操作基準,並生成任何兩個快照之間的活動報告.






練習,確定AWR的大小並監視AWR增長情況


1-使用者sys連線資料庫

2-檢視AWR佔用的空間,v$sysaux_occupants檢視顯示在SYSAUX表空間中安裝的所有元件

select occupant_desc,space_usage_kbytes from v$sysaux_occupants
where occupant_name='SM/AWR'
-------------------------------------------------------------------------------------------------------
OCCUPANT_DESC                                       SPACE_USAGE_KBYTES
Server Manageability - Automatic Workload Repository        38528

注意返回的大小

3-收集AWR快照:

execute dbms_workload_repository.create_snapshot;


4-重新執行2的查詢,並計算由於拍制手動的快照造成的大小增長

5-查詢快照的數量,以及它們涉及的日期範圍:

select min(begin_interval_time),max(begin_interval_time),count(snap_id) from dba_hist_snapshot



6-使用db control用system連線資料庫

7-導航到AWR,看看顯示,與上面的查詢語句顯示的資訊一樣





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