優秀的優化工具_AWR

         AWR 實質上是 Oracle 的一個內置工具,它自動採集與性能相關的統計數據,並從那些統計數據中導出性能量度值,以跟蹤潛在的問題。與 Statspack 不同,快照由一個稱爲 MMON 的新的後臺進程及其從ht進程自動地每小時採集一次。爲了節省空間,採集的數據在 天后自動清除。快照頻率和保留時間都可以由用戶修改。它產生兩種類型的輸出:文本格式(即TXT格式,類似於 Statspack 報表的文本格式但來自於 AWR 信息庫)和默認的 HTML 格式(擁有到部分和子部分的所有超鏈接).

        一.AWR的配置與應用

        查詢當前的AWR保存策略,默認是每1小時產生一個SNAPSHOT,保留7天,用戶要根據自己的需要設定保存策略。
        SYS>select * from dba_hist_wr_control;
DBID        SNAP_INTERVAL          RETENTION             TOPNSYS
860524039     +0001:00:00.000000    +07 00:00:00.000000   DEFAULT

        AWR配置都是通過dbms_workload_repository包進行配置
        1.調整AWR產生snapshot的頻率和保留策略.如將收集間隔時間改爲30 分鐘一次。並且保留5天時間(注:單位都是爲分鐘):
        SYS>execdbms_workload_repository.modify_snapshot_settings(interval=>30,retention=>5*24*60);
        2.關閉AWR,把interval設爲0則關閉自動捕捉快照
        SYS>execdbms_workload_repository.modify_snapshot_settings(interval=>0);
        3.手工創建一個快照
        SYS>exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
        4. 查看快照
        SYS>select * from sys.wrh$_active_session_history;
        SYS> select min(snap_id),max(snap_id),dbid from sys.wrh$_active_session_history group by dbid;
        5.手工刪除指定範圍的快照
        SYS>execDBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id => 22, high_snap_id=> 32, dbid => 3110377062);
        6.創建baseline
        SYS>exec dbms_workload_repository.create_baseline (54,58,'apply_interest_1');
       7.刪除baseline
        SYS>execDBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name => ' apply_interest_1',cascade => FALSE);

       二.AWR數據的導出和遷移
        1.導出AWR數據並遷移到其它數據庫

         SYS>exec DBMS_SWRF_INTERNAL.AWR_EXTRACT(dmpfile => 'awr_data.dmp', mpdir =>'DIR_BDUMP', bid => 1003, eid => 1013);
        2.遷移AWR數據到其他數據庫
         SYS>exec DBMS_SWRF_INTERNAL.AWR_LOAD(SCHNAME => 'AWR_TEST', dmpfile =>'awr_data.dmp', dmpdir => 'DIR_BDUMP');
         3.把AWR數據轉移到SYS模式中:
         SYS>exec DBMS_SWRF_INTERNAL.MOVE_TO_AWR (SCHNAME => 'TEST');
       三.   生成指定報表

         1.生成AWR報告

         SYS>@$ORACLE_HOME/rdbms/admin/awrrpt.sql;

        2.生成指定時間的ASH報表

         SYS>@$ORACLE_HOME/rdbms/admin/ashrpt.sql;

         3.生成指定時間指定實例的ASH報表

         SYS>@$ORACLE_HOME/rdbms/admin/ashrpti.sql;

         腳本中"i"表示實例.

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