關於AWR更多介紹

來源:互聯網
上載者:User

關於AWR更多介紹

AWR 是Oracle 10g 版本推出的新特性,全稱叫Automatic Workload Repository-自動負載資訊庫, AWR 是通過對比兩次快,照(snapshot)收集到的統計資訊,來產生報表資料,產生的報表包括多個部分。

設定AWR採樣保留原則和採集頻率

的採樣曆史資料預設保留7天,並且預設每1小時收集一次.

當前採樣快照保留原則和採集頻率可以通過下面的語句進行查詢.下面顯示的是 7 days and 1 hour

SQL> select to_char(snap_interval,’DD’),to_char(retention,’DD’) FROM dba_hist_wr_control;

TO_CHAR(SNAP_INTER TO_CHAR(RETENTION,
—————— ——————
+00000 01:00:00.0 +00007 00:00:00.0;

我們通過下面的方式來改變設定, 設定快照採集時間間隔為每 20 分鐘一次 保留2天的曆史資料. 參數指定的都是分鐘.

begin
 dbms_workload_repository.modify_snapshot_settings (
 interval => 20,
 retention => 2*24*60
 );
 end;

AWR相關的表

中繼資料 (WRM$)
曆史資料 (WRH$)
 AWR 報告相關的建議方法 (WRI$)
 Oracle 11g 新特性的AWR相關資訊(WRR$)

Workload Repository Reports

Oracle提供兩個主要的指令碼生產AWR報告 (awrrpt.sql and awrrpti.sql). 他們的格式和 statspack 報告非常相似, 提供 HTML 和 text 兩種格式. 兩個報告輸出相同的格式但是 awrrpti.sql允許選擇單個執行個體:
 @$ORACLE_HOME/rdbms/admin/awrrpt.sql
 @$ORACLE_HOME/rdbms/admin/awrrpti.sql

下面是經常使用到的指令碼:
REPORT NAME                                  SQL Script
Automatic Workload Repository Report          awrrpt.sql
Automatic Database Diagnostics Monitor Report addmrpt.sql
ASH Report                                    ashrpt.sql
AWR Diff Periods Report                      awrddrpt.sql
AWR Single SQL Statement Report              awrsqrpt.sql
AWR Global Report                            awrgrpt.sql
AWR Global Diff Report                        awrgdrpt.sql 


匯出和匯入 AWR 快照資料

AWR 資料存放區在SYSAUX資料表空間的 WRH$ 和 DBA_HIST 表中 . 如果表增長的非常大,資料儲存的時間長會影響資料庫效能,因此預設只保留7天的曆史資料.

一個比較好的解決方案是把AWR的資料轉移到另一資料儲存資料庫中心, Oracle 提供了兩個指令碼 awrextr.sql and awrload.sql scripts可以把AWR資料移轉到
 另一個資料庫中。在 $ORACLE_HOME/rdbms/admin 目錄下可以找到這兩個指令碼.

– in source db
 SQL> @?/rdbms/admin/awrextr.sql

– in target db
 SQL>@?/rdbms/admin/awrload.sql

或者
 使用 oracle 內部包
dbms_swrf_internal.AWR_EXTRACT
 DBMS_SWRF_INTERNAL.AWR_LOAD
 DBMS_SWRF_INTERNAL.MOVE_TO_AWR
 DBMS_SWRF_INTERNAL.CLEAR_AWR_DBID

清除 AWR

exec dbms_swrf_internal.unregister_database();

dbms_workload_repository.DROP_SNAPSHOT_RANGE;

禁用 Oracle AWR

如果想禁用AWR ,可以使用下面的方式禁用AWR,下面列出了詳細的操作步驟.

1,設定 STATISTICS_LEVEL 參數為 BASIC.
 2,執行 CATNOAWR.sql指令碼刪除相關的awr表. 這個指令碼執行預存程序 procedure dbms_swrf_internal.remove_wr_control, 刪除wrm$_wr_control 相關的資料和所有AWR 相關的表.
3,執行 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval=>0):
 4,從Metalink上下載 dbms_awr.plb 指令碼, 執行 DBMS_AWR.DISABLE_AWR() [指令碼參見 Metalink note 436386.1].
 5,如果資料庫是通過手工建立的,不是使用DBCA建立的不需要執行 CATAWRTB.sql .
 6,設定_awr_restrict_mode = TRUE 

重建 AWR

Oracle 建議我們重建 AWR,資料儲存在 SYSAUX 資料表空間下:

alter system set sga_target=0 scope=spfile;
 alter system set statistics_level = basic scope=both;
 alter system set cluster_database=false;

shutdown immediate

startup restrict
– in 10g begin —
@?/rdbms/admin/catnoawr.sql
 alter system flush shared_pool;
 @?/rdbms/admin/catsvrm.sql –in the script had calls catawrtb.sql
– in 10g end —

– in 11g begin—
SQL> @?/rdbms/admin/catnoawr.sql
 SQL> alter system flush shared_pool;
 SQL> @?/rdbms/admin/catawr.sql
 SQL> @?/rdbms/admin/utlrp.sql
 sql> @?/rdbms/admin/execsvrm.sql
– in 11g end—

Then re-enable the AWR statistics gathering as required, by setting STATISTICS_LEVEL back to its original value, and restart the instance normally

Tip:
 When SYSAUX tablespace is keep growing,you can check the V$SYSAUX_OCCUPANTS View to find out who/what is occupying space in SYSAUX.

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.