自從Oracle 10g開始支持AWR以后,相比于Statspack,除了有更多新的內(nèi)容可供參考,HTML保存格式也是為查看文檔提供了很多便利。
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)藁城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
AWR 基礎(chǔ)結(jié)構(gòu)由兩個(gè)主要部分組成:
1、 一個(gè)內(nèi)存中統(tǒng)計(jì)信息收集工具,Oracle Database 11g組件使用它來收集統(tǒng)計(jì)信息。出于性能方面的考慮,這些統(tǒng)計(jì)信息存儲(chǔ)在內(nèi)存中??梢酝ㄟ^動(dòng)態(tài)性能(V$) 視圖訪問存儲(chǔ)在內(nèi)存中的統(tǒng)計(jì)信息。
2、代表該工具持久部分的AWR 快照。AWR 快照可以通過數(shù)據(jù)字典視圖和EnterpriseManager Database Control 來訪問。
它為內(nèi)部Oracle 服務(wù)器組件提供服務(wù)來收集、處理、維護(hù)和使用性能統(tǒng)計(jì)信息,以便進(jìn)行問題檢測(cè)和自優(yōu)化。
AWR 中包含數(shù)百個(gè)表,所有這些表均屬于SYSMAN方案且存儲(chǔ)在SYSAUX表空間中。
1、AWR全稱是Automatic Workload Repository,內(nèi)容基于AWR資料庫中存儲(chǔ)的數(shù)據(jù),前提是已經(jīng)購買了相應(yīng)許可。
2、AWR默認(rèn)60分鐘采集一次統(tǒng)計(jì)數(shù)據(jù),保存一周,然后刪除。統(tǒng)計(jì)數(shù)據(jù)保存在數(shù)據(jù)庫中。
3、為了正確收集統(tǒng)計(jì)數(shù)據(jù),STATISTICS_LEVEL設(shè)置為TYPICAL(默認(rèn))或ALL。
4、AWR由許多表組成,這些表屬于SYS模式,通常保存在SYSAUX表空間。所有AWR表名都以標(biāo)識(shí)符“WR”開始:元數(shù)據(jù)(WRM$)、歷史/可變數(shù)據(jù)(WRH$、WRR$和WRI$)和和顧問(advisor)功能相關(guān)的AWR表(WRI$)??梢詫?duì)AWR倉庫進(jìn)行查詢的DBA視圖,以DBA_HIST開頭。
5、可以使用DBMS_WORKLOAD_REPOSITORY程序包修改快照收集間隔時(shí)間。
exec dbms_workload_repository.modify_snapshot_settings -
(retention=>20160, interval=>15);
使用dbms_workload_repository包的modify_snapshot_settings過程修改快照收集參數(shù),即修改15分鐘收集一次,保留時(shí)間20160分鐘(14天)。
將間隔時(shí)間設(shè)置為0,則表示停止所有統(tǒng)計(jì)數(shù)據(jù)的收集(此處我認(rèn)為翻譯的有歧義,應(yīng)該是停止AWR快照的收集,不是統(tǒng)計(jì)數(shù)據(jù)的收集)。
6、查看AWR當(dāng)前保留時(shí)間和時(shí)間間隔設(shè)置:
select * from dba_hist_wr_control;
7、創(chuàng)建或刪除快照:
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的調(diào)度作業(yè)收集AWR統(tǒng)計(jì)信息。創(chuàng)建Oracle數(shù)據(jù)庫時(shí),就會(huì)自動(dòng)創(chuàng)建并激活這項(xiàng)作業(yè)。
10、查看作業(yè),可參考視圖:
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
表示有兩個(gè)窗口執(zhí)行統(tǒng)計(jì)信息收集的作業(yè)。WEEKEND_WINDOW是每周六00:00執(zhí)行。WEEKNIGHT_WINDOW是每周一至周五22:00執(zhí)行。
11、禁用和啟動(dòng)作業(yè)的方法:
exec dbms_scheduler.disable('GATHER_STATS_JOB');
exec dbms_scheduler.enable('GATHER_STATS_JOB');
12、可以使用如下腳本運(yùn)行AWR快照:
$ORACLE_HOME/rdbms/admin/awrrpt.sql或awrrpti.sql。
13、AWR內(nèi)創(chuàng)建基線,定義為某個(gè)范圍內(nèi)的快照,可以用來與其它快照進(jìn)行比較。
創(chuàng)建基線:
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);
參數(shù)Cascade如果設(shè)置為true,就會(huì)刪除所有相關(guān)的快照,此處會(huì)刪除1109和1111這兩個(gè)相關(guān)的快照。否則AWR自動(dòng)進(jìn)程會(huì)自動(dòng)清除這些快照