溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ORACLE AWR(AWR、SNAPSHOT、BASELINE)

發布時間:2020-08-18 21:33:10 來源:ITPUB博客 閱讀:291 作者:iliuhailong 欄目:關系型數據庫

1. AWR是什么?

    AWR(Automatic Workload Repository)是存放oracle數據庫歷史性能數據的信息庫,包含系統、session、SQL等大量的統計數據,存放在SYSAUX表空間里,信息庫包含很多表,都是以“WR”開頭:WR元數據(WRM$),歷史、可變數據(WRH$、WRR$和WRI$),顧問(advisor)功能相關的AWR表(WRI$)。另外,還可以通過DBA_HIST開頭的視圖訪問AWR數據。
    最新的AWR信息存放在SGA中,默認MMON進程每隔一小時啟動slave進程m00x創建AWR snapshot,將數據保存在SYSAUX表空間。

2. 如何管理AWR?

2.1 啟用AWR

    設置STATISTICS_LEVEL為TYPICAL或者ALL。
    如果STATISTICS_LEVEL為BASIC,AWR功能不會啟用,但是可以通過使用DBMS_WORKLOAD_REPOSITORY包手工抓取AWR統計數據。

2.2 管理snapshot

2.2.1 關于snapshot

    AWR的數據是通過snapshot獲取的??煺站褪悄骋粫r刻系統的狀態。默認情況,數據庫1小時收集一次snapshot,并在WR(Workload Repository)中保留8天(11g之后)。當然也可以手動創建和刪除snapshot,主要使用DBMS_WORKLOAD_REPOSITORY包實現。

2.2.2 創建snapshot

    執行DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT()生成新的snapshot,通過DBA_HIST_SNAPSHOT視圖可以查看已經存在的snapshot。

  1. BEGIN
  2. DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
  3. END;
  4. /

2.2.3 刪除snapshot

默認情況,AWR中的snapshot超過8天后會自動刪除,但也可以手動刪除,如下:

  1. BEGIN
  2. DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(
  3. low_snap_id => 22,
  4. high_snap_id => 32,
  5. dbid => 3310949047);
  6. END;
  7. /

2.2.4 修改snapshot設置

可以修改產生快照的時間間隔、保留期限、Top Sql的數量(interval、retention、topnsql),同時注意,修改后會影響oracle診斷工具的精度。如果要設置保留30天(43200分鐘)、間隔30分鐘、topsql取前100,如下所示:

  1. BEGIN
  2. DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
  3. retention => 43200,
  4. interval => 30,
  5. topnsql => 100,
  6. dbid => 3310949047);
  7. END;
  8. /
通過DBA_HIST_WR_CONTROL視圖可以查看修改后的結果。

  1. SQL> select snap_interval, retention from DBA_HIST_WR_CONTROL;
  2. SNAP_INTERVAL RETENTION
  3. ---------------------------------------
  4. +00000 01:00:00.0 +00008 00:00:00.0

2.3 管理baseline

2.3.1 關于baseline

baseline是一段特定時間內的snapshot的集合,當異常發生時,使用異常時間段的snapshot和baseline進行對比。baseline中的snapshot不受AWR retention的限制。

2.3.2 三類baseline

1.fixed baselines

固定基線就是由一段連續的固定的時間段內的快照生成的基線,所以選取的時間段應該是系統最優時段,代表系統最優水平,來作為性能對比的基準。
       2. moving window baselines
移動窗口基線包含AWR retention內的所有AWR數據,即由保留期內的所有快照生成。這對于自適應閾值有用,因為這樣數據庫可以使用AWR保留期內的所有數據來計算閾值。
oracle自動維護移動窗口基線,默認窗口大小為當前AWR保留期。窗口大小可以重置,但必須小于等于AWR保留期,如果要增大移動窗口,AWR保留期也必須相應增大。所以,在使用自適應閾值時,可以設置為30天,以獲得更準確的閾值。
       3. baseline templates
所謂基線模板,就是以后的基線都根據模板的配置生成,比如指定未來某個時間段,或者未來某個時期內的每周一的10:00-11:00?;€模板又分為單一基線模板(產生一次基線)、重復基線模板(產生多次基線)。
單一基線模板的例子:下周六09:00-11:00做測試,創建單一基線模板,到時自動收集AWR數據。
重復基線模板的例子:未來3個月每周周一上午09:00-11:00創建1個baseline。

2.3.3 創建baseline

默認情況,oracle自動維護移動窗口基線,我們可以手工創建固定基線。如下。snap_id可以從DBA_HIST_SNAPSHOT視圖中選取。

  1. BEGIN
  2. DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (
  3. start_snap_id => 270,
  4. end_snap_id => 280,
  5. baseline_name => 'peak baseline',
  6. dbid => 3310949047,
  7. expiration => 30);
  8. END;
  9. /

2.3.4 刪除baseline

為了節約磁盤空間,可以手工刪除baseline,已經生成的baseline可以通過DBA_HIST_BASELINE視圖查看。下面例子中刪除peak baseline,保留相應的snapshot,如果要刪除相關的snapshot,設置cascade為true。

  1. BEGIN
  2. DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak baseline',
  3. cascade => FALSE,
  4. dbid => 3310949047);
  5. END;
  6. /

2.3.5 重命名baseline


  1. BEGIN
  2. DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (old_baseline_name => 'peak baseline',
  3. new_baseline_name => 'peak mondays',
  4. dbid => 3310949047);
  5. END;
  6. /

2.3.6 重置移動窗口基線窗口大小

移動窗口基線默認窗口大小與AWR保留期限相同,但也可以修改,但是不能超過AWR保留期限。下面例子將窗口設置為30天。

  1. BEGIN
  2. DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE (window_size => 30,
  3. dbid => 3310949047);
  4. END;
  5. /

2.3.7 創建單一基線模板

下面的例子比較簡單,不做說明了。

  1. BEGIN
  2. DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
  3. start_time => to_date('2018-07-02 17:00:00','yyyy-mm-dd hh34:mi:ss'),
  4. end_time => to_date('2018-07-02 20:00:00','yyyy-mm-dd hh34:mi:ss'),
  5. baseline_name => 'baseline_180702',
  6. template_name => 'template_180702',
  7. expiration => 30,
  8. dbid => 3310949047);
  9. END;
  10. /

2.3.8 創建重復基線模板

下面的例子是從2018年7月2日17點開始,每周周一的17點至20點(duration=3)創建一個baseline,2018年12月02日20點template結束,不再創建以此為模板的baseline,創建的baseline失效期為30天。

  1. BEGIN
  2. DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
  3. day_of_week => 'monday',
  4. hour_in_day => 17,
  5. duration => 3, expiration => 30,
  6. start_time => to_date('2018-07-02 17:00:00','yyyy-mm-dd hh34:mi:ss'),
  7. end_time => to_date('2018-12-02 20:00:00','yyyy-mm-dd hh34:mi:ss'),
  8. baseline_name_prefix => 'baseline_2018_mondays_',
  9. template_name => 'template_2018_mondays',
  10. dbid => 3310949047);
  11. END;
  12. /

2.3.9 刪除基線模板

基線模板名字可以沖DBA_HIST_BASELINE_TEMPLATE視圖中選取。

  1. BEGIN
  2. DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE (
  3. template_name => 'template_180702',
  4. dbid => 3310949047);
  5. END;
  6. /

3. AWR報告是什么?

AWR報告就是利用兩個snapshot來生成的一份數據庫性能報告,包含的時兩個snapshot之間的統計數據。當數據庫出現性能問題時,可以用AWR報告進行分析定位。
生成不同AWR報告的腳本:

本實例AWR報告
@?/rdbms/admin/awrrpt  
RAC中選擇實例號
@?/rdbms/admin/awrrpti   
AWR 比對報告
@?/rdbms/admin/awrddrpt
 RAC全局AWR報告
@?/rdbms/admin/awrgrpt



Reference:https://docs.oracle.com/en/database/oracle/oracle-database/18/tgdba/gathering-database-statistics.html#GUID-CBB1716F-2B20-4575-ADCE-94E33BEA53EF

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女