Oracle中AWR的使用
Oracle中AWR的使用
在Oracle中,動態效能檢視儲存了許多重要的累計統計資料,這些檢視對於鑑別資料庫效能非常有用。但是當關閉資料庫時,動態效能檢視中的資料會全部丟失。為了能夠隨時跟蹤資料庫效能,或是希望比較資料庫變化的效能影響,則需要一個資訊庫來儲存效能資料,由此,AWR(Automatic Workload Repository,自動工作量資料庫)應運而生。
AWR自動收集並儲存與問題的檢測和調優有關的資料庫效能統計資料,它是新的資料庫自調優機制的核心。AWR生成關鍵的效能資料的快照,並儲存在SYSAUX表空間中,各種不同的資料庫特性(ADDM,SQL Tuning Advisor等)都是用這些AWR快照中的資料來監控和診斷效能問題。
預設時,AWR每小時捕捉一次效能資料並生成一次快照,這些資料保留8天。如果按照10個併發會話來估計,預設設定大約需要200~300MB的儲存空間來儲存AWR資料。
(一) 啟用AWR
與AWR相關聯的引數為statistics_level,只有當該引數的值設定為TYPICAL 或 ALL時,才能啟用AWR功能。預設情況下該引數值為TYPICAL,如果透過show parameter statistics_level命令檢視該引數值為BASIC,需要透過以下命令修改:
SQL> alter system set statistics level=TYPICAL scope=both;
(二) 快照的管理:
1. 檢視AWR快照設定:
SQL> select dbid,snap_interval,retention from dba_hist_wr_control;
其中dbid為資料庫的標識,snap_interval為資料庫自動生成快照的間隔,retention為快照所保留的時間。
2. 修改AWR快照設定
SQL> begin
dbms_workload_repository.modify_snapshot_settings(
retention => 7200,
interval => 30,
dbid => 1293890055);
end;
其中retention和interval的單位都為分鐘。
3. 手動建立快照:
SQL>begin
Dbms_workload_repository.create_snapshot();
End;‘
4. 刪除一個範圍內的快照:
SQL>begin
Dbms_workload_repository.drop_snapshot_range(
Low_snap_id => 40,
High_snap_id => 60,
dbid => 1293890055);
end;
5. 檢視當前在系統內已經建立的snapshot:
SQL> select snap_id,dbid,begin_interval_time,end_interval_time from dba_hist_snapshot;
(三) 基線的管理
1. 檢視已經建立的基線:
SQL>select baseline_id,baseline_name,baseline_type,start_snap_id,end_snap_id from dba_hist_baseline;
或者
SQL>select baseline_id,baseline_name,baseline_type,start_snap_time,end_snap_time from dba_hist_baseline;
2. 建立基線:
SQL> begin
dbms_workload_repository.create_baseline(
start_snap_id => 7,
end_snap_id => 9,
baseline_name => 'normal baseline');
end;
其中start_snap_id為基線的起始快照序列號,end_snap_id為基線的結束快照序列號,baseline_name為基線的名稱。
3. 刪除基線:
SQL> begin
dbms_workload_repository.drop_baseline(
baseline_name => 'normal baseline',
cascade => FALSE,
dbid => 1293890055);
end;
如果cascade設定為TRUE,則與該基線相關的起止快照也會被一同刪除,如果設定為FALSE,則僅僅刪除基線。
4. 重新命名基線:
SQL> begin
dbms_workload_repository.rename_baseline(
old_baseline_name => 'normal baseline',
new_baseline_name => 'special baseline');
end;
(四) 基線模板的管理
1. 建立單基線模板:
單基線模板建立將來某個固定時間間隔的單個基線。
SQL> begin
dbms_workload_repository.create_baseline_template(
start_time => to_date('2011-DEC-05 22:00', 'YYYY-MON-DD HH24:MI'),
end_time => to_date('2011-DEC-06 02:00', 'YYYY-MON-DD HH24:MI'),
baseline_name => 'test_baseline1',
template_name => 'test_template1',
expiration => 30);
end;
其中expiration引數為基線的有效期。
2. 建立重複基線模板:
重複基線模板建立重複的基線,其時間間隔在一個時間段上重複。
SQL> begin
dbms_workload_repository.create_baseline_template(
day_of_week => 'FRIDAY',
hour_in_day => 0,
duration => 5,
start_time => SYSDATE,
end_time => ADD_MONTHS(SYSDATE, 6),
baseline_name_prefix => 'friday_morning_bl_',
template_name => 'friday_morning_tp',
expiration => NULL);
end;
(五) AWR報告
1. 建立AWR報告
Oracle提供了一個指令碼awrrpt.sql(位於$ORACLE_HOME/rdbms/admin目錄中)來生成關於AWR工具收集的統計資料的概要報告。
SQL>@$ORACLE_HOME/rdbms/admin/awrrpt.sql
Ø 指定報告型別:html或者text。
Enter value for report_type: text
Ø 指定要顯示的快照的天數
Enter value for num_days: 7
Ø 指定AWR報告的報告範圍,即開始的快照ID和結束的快照ID。
Enter value for begin_snap: 258
Enter value for end_snap: 268
Ø 指定AWR報告的報告名。
Enter value for report_name: /tmp/awrrpt_1_258_268.txt
2. 為單條SQL語句建立AWR報告
Oracle提供了一個指令碼awrsqrpt.sql(位於$ORACLE_HOME/rdbms/admin目錄中)來生成單條SQL語句的統計資料。
SQL>@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql
Ø 指定報告型別:html或者text。
Enter value for report_type: text
Ø 指定要顯示的快照的天數
Enter value for num_days: 7
Ø 指定AWR報告的報告範圍,即開始的快照ID和結束的快照ID。
Enter value for begin_snap: 258
Enter value for end_snap: 268
Ø 指定SQL_ID
Enter value for sql_id: 6za2qbmbydaqh
Ø 指定AWR報告的報告名。
Enter value for report_name: /tmp/awrsqrpt_1_258_268.txt
相關文章
- ORACLE AWROracle
- oracle工具 awr formatOracleORM
- 【AWR】Oracle資料庫建立awr基線Oracle資料庫
- 【AWR】Oracle批量生成awr報告指令碼Oracle指令碼
- oracle之 AWR固定基線Oracle
- 【AWR】Oracle awr相關檢視及體系介紹Oracle
- oracle 10G特性之awrOracle 10g
- Oracle 客戶端生成AWR方法Oracle客戶端
- Oracle生成awr報告操作步驟Oracle
- oracle awr快照點不記錄問題Oracle
- Oracle 11g關閉開啟AWROracle
- Oracle AWR無法生成快照(ORA-32701)Oracle
- Oracle 12.2 physical standby備庫收集AWR報告Oracle
- 詳解Oracle AWR執行日誌分析工具Oracle
- ORACLE AWR效能報告和ASH效能報告的解讀Oracle
- [轉]Oracle資料庫ASH和AWR的簡單介紹Oracle資料庫
- 【AWR】DBA_HIST檢視檢視儲存在AWR中的歷史資料
- Oracle 11.2.0.4 awr過期快照無法自動清理Oracle
- 9. Oracle常用分析診斷工具——9.1. AWROracle
- 【效能調優】Oracle AWR報告指標全解析Oracle指標
- oracle rac 單個例項不能生成awr報告的問題Oracle
- Oracle中job的使用詳解Oracle
- ORACLE中%TYPE和%ROWTYPE的使用Oracle
- Oracle中Decode()函式的使用Oracle函式
- Oracle 11.2.0.3.0中執行awrrpt.sql生成awr報告報ora-06502錯誤OracleSQL
- 【BUG】Oracle12c tablespace io statistics missing from awr reportOracle
- oracle 11g awr不自動生成的臨時解決辦法Oracle
- 效能優化之達夢AWR使用優化
- awr-----一份經典的負載很高的awr報告負載
- 在oracle中監視索引的使用情況Oracle索引
- 在Hibernate中關於Oracle sequence的使用KHOracle
- [20231115]如何快速獲取AWR中涉及到的表.txt
- 講講AWR
- [20231017]使用dbms_xplan.display_awr查詢遇到的問題.txt
- [20201106]奇怪的awr報表.txt
- oracle OMF的使用Oracle
- 【最佳化】AWR
- oracle中的某一個使用者名稱修改Oracle
- [20230921]為什麼執行計劃不再awr中.txt