Oracle 11g 關於 AWR 的引數設定

liuhaimiao發表於2014-11-12
Oracle 11g 關於 AWR 的引數設定

--設定 AWR 收集頻率:每30分鐘一次
exec dbms_workload_repository.modify_snapshot_settings(INTERVAL  =>30);
--設定 AWR 快照保留天數:每次保留3天
exec dbms_workload_repository.modify_snapshot_settings(retention => 3 * 24 * 60);
--設定 AWR 捕獲的SQL數量:每次100條
exec dbms_workload_repository.modify_snapshot_settings(TOPNSQL=>100);

目前現網即是採用預設配置,建議修改為每隔4小時收集一次並保留3天的資料。
修改步驟如下:
1.查詢當前的設定:
SQL> select * from dba_hist_wr_control;
返回結果例如:
    DBID                SNAP_INTERVAL  RETENTION    TOPNSQL
1 4068003495     +00000 01:00:00.0    +00008 00:00:00.0     DEFAULT
欄位snap_interval表示時間間隔,這裡為每1小時收集一次AWR
2.檢視moving_window_size的大小:
SQL> SELECT baseline_name, start_snap_time, end_snap_time,
moving_window_size
  FROM dba_hist_baseline_details
3.返回結果中,如果欄位moving_window_size的值大於要修改為的保留天數,則必須執行
以下命令修改,這裡應修改為3:
begin DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE(WINDOW_SIZE=>3);
end;
4.修改AWR設定:
BEGIN
  dbms_workload_repository.modify_snapshot_settings(INTERVAL  =>240,retention => 3 * 24 * 60);
END;
這裡,引數INTERVAL表示每隔多少分鐘收集一次AWR資訊。引數retention表示3(天)*24(小時/天)*60(分鐘/小時)分鐘。
5.將AWR的保留天數從7天修改為3天后,系統不會自動將第4天到第7天的資訊刪除。仍需要手工刪除,刪除方法請參考下面的內容。
刪除部分AWR資訊的步驟如下:
找到DBID:
SQL> select dbid from v$database
返回結果例如4068003495
確定要清除哪些SNAP_ID:
查詢檢視dba_hist_snapshot確定需要清除的SNAP_ID範圍,這裡例如為51到130
清除AWR歷史資料:
BEGIN
  dbms_workload_repository.drop_snapshot_range(
low_snap_id  => 51,
high_snap_id => 130,
dbid         => 4068003495);
END;

6.查詢檢視dba_hist_snapshot以及WRH$_LATCH,應發現SNAP_ID範圍為51到130的資料已被清除。
       
建議與總結: 
oracle 10G後新增表空間SYSAUX空間,預設情況下,AWR的資訊每隔一個小時收集一次AWR資訊,並保留7天。這些資料存放在SYSAUX表空間中,
建議修改為每隔4小時收集一次並保留3天的資料。
 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    DEFAULT

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

相關文章