學用ORACLE AWR和ASH特性(7)-AWR的幾個幫
四、AWR的幾個幫
4.1 Snapshots( 快照)
前面操作報表生成時,snap這個關鍵字已經出現過黑多黑多次了,想必你對它充滿了疑惑,這個東西是哪尬來的咋來的誰讓它來的呢?事實上,Snap是Snapshot的簡寫,這正是AWR在自動性方面的體現,雖然你沒有建立,但是AWR自動幫你建立了(當然也可以手動建立snapshot),並且是定時(每小時)建立,定期清除(保留最近7天)。
Snapshots 是一組某個時間點時歷史資料的集合,這些資料就可被ADDM(Automatic Database Diagnostic Monitor)用來做效能對比。預設情況下,AWR能夠自動以每小時一次的頻率生成Snapshots效能資料,並保留7天,,如果需要的話,DBA可以通過DBMS_WORKLOAD_REPOSITORY過程手動建立、刪除或修改snapshots。
- 提示:呼叫DBMS_WORKLOAD_REPOSITORY包需要擁有DBA許可權。
4.1.1 手動建立Snapshots
手動建立Snapshots,通過DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT過程,例如:
SQL> exec dbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.然後可以通過DBA_HIST_SNAPSHOT 檢視檢視剛剛建立的Snapshots資訊。
4.1.2 手動刪除Snapshots
刪除Snapshots是使用DBMS_WORKLOAD_REPOSITORY包的另一個過程:DROP_SNAPSHOT_RANGE,該過程在執行時可以通過指定snap_id的範圍的方式一次刪除多個Snapshots,例如:
SQL> select count(0) from dba_hist_snapshot where snap_id between 7509 and 7518;
COUNT(0)
----------
10
SQL> begin
2 dbms_workload_repository.drop_snapshot_range(
3 low_snap_id => 7509,
4 high_snap_id => 7518,
5 dbid => 3812548755);
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> select count(0) from dba_hist_snapshot where snap_id between 7509 and 7518;
COUNT(0)
----------
0注意當snapshots被刪除的話,與其關聯的ASH記錄也會級聯刪除。
4.1.3 修改Snapshots設定
通過MODIFY_SNAPSHOT_SETTINGS過程,DBA可以調整包括快照收集頻率、快照儲存時間、以及捕獲的SQL數量三個方面的設定。分別對應MODIFY_SNAPSHOT_SETTINGS的三個引數:
- Retention :設定快照儲存的時間,單位是分鐘。可設定的值最小為1天,最大為100年。設定該引數值為0的話,就表示永久保留收集的快照資訊。
- Interval :設定快照收集的頻率,以分鐘為單位。可設定的值最小為10分鐘,最大為1年。如果設定該引數值為0,就表示禁用AWR特性。
- Topnsql :指定收集的比較佔用資源的SQL數量,可設定的值最小為30,最大不超過100000000。
檢視當前快照收集的相關設定,可以通過DBA_HIST_WR_CONTROL檢視檢視,例如:
SQL> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- ------------------------ -------------------- ----------
3812548755 +00000 01:00:00.0 +00007 00:00:00.0 DEFAULT又比如通過MODIFY_SNAPSHOT_SETTTINGS過程修改snap_intrval的設定:
SQL> exec dbms_workload_repository.modify_snapshot_settings(interval=>120);
PL/SQL procedure successfully completed.
SQL> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- ------------------------ -------------------- ----------
3812548755 +00000 02:00:00.0 +00007 00:00:00.0 DEFAULT4.2 Baselines( 基線)
Baseline ,直譯的話叫做基線,顧名思義的方式理解,就是用於比較的基本線。因為Baseline中包含指定時間點時的效能資料,因此就可以用來與其它時間點時的狀態資料做對比,以分析效能問題。
建立Baseline時,Snapshots是做為其中的一個組成部分存在,因此一般來說當AWR自動維護快照時,如果定義過baseline,與baseline相關的快照不會被刪除,即使是過期的快照,這樣就相當於手動保留了一份統計資料的歷史資訊,DBA可以在適當的時間將其與現有的快照進行對比,以生成相關的統計報表。
使用者可以通過DBMS_WORKLOAD_REPOSITORY包中的相關過程,手動的建立或刪除Baseline。
4.2.1 建立Baseline
建立Baseline使用CREATE_BASELINE過程,執行該過程時分別指定開始和結果的snap_id,然後為該baseline定義一個名稱即可,例如:
SQL> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_snap_id => 7550,
3 end_snap_id => 7660,
4 baseline_name => ¨am_baseline¨);
5 END;
6 /
PL/SQL procedure successfully completed.
SQL> select dbid,baseline_name,start_snap_id,end_snap_id from dba_hist_baseline;
DBID BASELINE_NAME START_SNAP_ID END_SNAP_ID
---------- -------------------- ------------- -----------
3812548755 am_baseline 7550 76604.2.2 刪除Baseline
刪除Baseline使用DROP_BASELINE過程,刪除時可以通過cascade引數選擇是否將其關聯的Snapshots級別進行刪除,例如:
SQL> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name => ¨am_baseline¨,
3 cascade => true);
4 END;
5 /
PL/SQL procedure successfully completed.
SQL> select * from dba_hist_baseline;
no rows selected
SQL> select * from dba_hist_snapshot where snap_id between 7550 and 7660;
no rows selected如上例中所示,刪除時指定了cascade引數值為true,對應的snap也被級聯刪除了。
檢視之前的文章:
==============================================
學用ORACLE AWR和ASH特性(5)-生成不同時間內的對比統計報表
學用ORACLE AWR和ASH特性(4)-生成指定SQL的統計報表
學用ORACLE AWR和ASH特性(3)-生成指定資料庫例項的統計報表
學用ORACLE AWR和ASH特性(2)-生成標準統計報表
學用ORACLE AWR和ASH特性(1)-ASH和AWR的故事
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-619398/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學用ORACLE AWR和ASH特性(1)-ASH和AWR的故事Oracle
- 學用ORACLE AWR和ASH特性(8)-生成ASH報表Oracle
- oracle awr ashOracle
- 學用ORACLE AWR和ASH特性(4)-生成指定SQL的統計報表OracleSQL
- 學用ORACLE AWR和ASH特性(3)-生成指定資料庫例項的統計報表Oracle資料庫
- Oracle10g ASH and AWROracle
- ASH, AWR , 等待事件事件
- working with ASH and AWR
- AWR、ASH、ADDM和顧問程式
- [轉]Oracle資料庫ASH和AWR的簡單介紹Oracle資料庫
- ORACLE AWR效能報告和ASH效能報告的解讀Oracle
- Oracle AWR與ASH效能報告深入解析Oracle
- oracle效能調憂工具AWR,ASH,ADDMOracle
- statspack、awr、addm,ash影片分享
- Oracle10g AWR及ASH詳解(final)Oracle
- Oracle AWR中常用到的幾個SQL語句OracleSQL
- oracle 10G特性之awrOracle 10g
- oracle特性之AWR報告2Oracle
- Oracle效能調整的三把利劍--ASH,AWR,ADDMOracle
- ASH、AWR、ADDM區別聯絡
- statspack、awr、addm,ash視訊分享
- 轉載詳細的Oracle ASH/AWR介紹及報告分析Oracle
- ORACLE AWROracle
- Oracle AWR ---Oracle
- oracle awrOracle
- ASH可以生成指定的session或sql_id的報告,ASH和AWR的區別SessionSQL
- awr報表中用到的幾個SQLSQL
- oracle實用sql(9)--批量生成一天的ash報告或awr報告OracleSQL
- ASH buffers 資料取樣到AWR的問題
- 10G新特性筆記之AWR,ASH,METRIC,ALERT&ADVISOR筆記
- In 10g/11g,working with ASH and AWR
- Oracle AWR速查Oracle
- oracle,metric,awrOracle
- 【Oracle】AWR analyseOracle
- 對於AWR報告的幾個片段分析。
- 【AWR】Oracle資料庫建立awr基線Oracle資料庫
- 【AWR】Oracle批量生成awr報告指令碼Oracle指令碼
- oracle之awr學習筆記Oracle筆記