AWR基本知識

自從Oracle 10g開始支持AWR以後,相比於Statspack,除了有更多新的內容可供參考,HTML保存格式也是爲查看文檔提供了很多便利。


AWR 基礎結構由兩個主要部分組成:

1、 一個內存中統計信息收集工具,Oracle Database 11g組件使用它來收集統計信息。出於性能方面的考慮,這些統計信息存儲在內存中。可以通過動態性能(V$) 視圖訪問存儲在內存中的統計信息。

2、代表該工具持久部分的AWR 快照。AWR 快照可以通過數據字典視圖和EnterpriseManager Database Control 來訪問。

它爲內部Oracle 服務器組件提供服務來收集、處理、維護和使用性能統計信息,以便進行問題檢測和自優化。

AWR 中包含數百個表,所有這些表均屬於SYSMAN方案且存儲在SYSAUX表空間中。


1、AWR全稱是Automatic Workload Repository,內容基於AWR資料庫中存儲的數據,前提是已經購買了相應許可。

2、AWR默認60分鐘採集一次統計數據,保存一週,然後刪除。統計數據保存在數據庫中。

3、爲了正確收集統計數據,STATISTICS_LEVEL設置爲TYPICAL(默認)或ALL。

4、AWR由許多表組成,這些表屬於SYS模式,通常保存在SYSAUX表空間。所有AWR表名都以標識符“WR”開始:元數據(WRM$)、歷史/可變數據(WRH$、WRR$和WRI$)和和顧問(advisor)功能相關的AWR表(WRI$)。可以對AWR倉庫進行查詢的DBA視圖,以DBA_HIST開頭。

5、可以使用DBMS_WORKLOAD_REPOSITORY程序包修改快照收集間隔時間。

exec dbms_workload_repository.modify_snapshot_settings -

(retention=>20160, interval=>15);

使用dbms_workload_repository包的modify_snapshot_settings過程修改快照收集參數,即修改15分鐘收集一次,保留時間20160分鐘(14天)。

將間隔時間設置爲0,則表示停止所有統計數據的收集(此處我認爲翻譯的有歧義,應該是停止AWR快照的收集,不是統計數據的收集)。

6、查看AWR當前保留時間和時間間隔設置:

select * from dba_hist_wr_control;

7、創建或刪除快照:

exec dbms_workload_repository.create_snapshot;

exec dbms_workload_repository.drop_snapshot_range(low_snap_id=>1107, high_snap_id=>1108); 

8、查看所有快照:

select snap_id, begin_interval_time, end_interval_time from dba_hist_snapshot order by 1;

9、11g使用名爲GATHER_STATS_JOB的調度作業收集AWR統計信息。創建Oracle數據庫時,就會自動創建並激活這項作業。

10、查看作業,可參考視圖:

select  a.job_name, a.enabled, c.window_name, c.repeat_interval

from   dba_scheduler_jobs a, dba_scheduler_wingroup_members b, dba_scheduler_windows c

where  job_name='GATHER_STATS_JOB' 

and     a.schedule_name=b.window_group_name

and     b.window_name=c.window_name;

JOB_NAME                 ENABL WINDOW_NAME            REPEAT_INTERVAL

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

GATHER_STATS_JOB   TRUE    WEEKEND_WINDOW      freq=daily;byday=SAT;byhour=0;byminute=0;bysecond=0

GATHER_STATS_JOB   TRUE    WEEKNIGHT_WINDOW    freq=daily;byday=MON,TUE,WED,THU,FRI;byhour=22;byminute=0; bysecond=0

表示有兩個窗口執行統計信息收集的作業。WEEKEND_WINDOW是每週六00:00執行。WEEKNIGHT_WINDOW是每週一至週五22:00執行。

11、禁用和啓動作業的方法:

exec dbms_scheduler.disable('GATHER_STATS_JOB');

exec dbms_scheduler.enable('GATHER_STATS_JOB');

12、可以使用如下腳本運行AWR快照:

$ORACLE_HOME/rdbms/admin/awrrpt.sql或awrrpti.sql。

13、AWR內創建基線,定義爲某個範圍內的快照,可以用來與其它快照進行比較。

創建基線:

exec dbms_workload_repository.create_baseline (start_snap_id=>1109, end_snap_id=>1111, baseline_name=>'EOM Baseline');

查看基線:

select baseline_id, baseline_name, start_snap_id, end_snap_id from dba_hist_baseline;

刪除基線:

exec dbms_workload_repository.drop_baseline(baseline_name=>'EOM Baseline', Cascade=>FALSE);

參數Cascade如果設置爲true,就會刪除所有相關的快照,此處會刪除1109和1111這兩個相關的快照。否則AWR自動進程會自動清除這些快照


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章