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 11g AWR 系列六:使用 AWR 檢視Oracle
- ORACLE AWROracle
- Oracle AWR ---Oracle
- oracle awrOracle
- ORACLE10G AWR使用和分析Oracle
- Oracle 10g AWR安裝使用Oracle 10g
- Oracle資料庫AWR的使用例項詳解Oracle資料庫
- oracle awr ashOracle
- Oracle AWR速查Oracle
- oracle,metric,awrOracle
- 【Oracle】AWR analyseOracle
- Oracle AWR(Automatic Workload Repository)使用Oracle
- AWR中的SQL StatisticsSQL
- 【AWR】Oracle資料庫建立awr基線Oracle資料庫
- 【AWR】Oracle批量生成awr報告指令碼Oracle指令碼
- oracle工具 awr formatOracleORM
- 轉載oracle awrOracle
- oracle 10g以上版本,awr報告使用Oracle 10g
- 使用shell自動傳送Oracle AWR報告Oracle
- Oracle AWR(Automatic Workload Repository)使用解析Oracle
- 學用ORACLE AWR和ASH特性(1)-ASH和AWR的故事Oracle
- 學用ORACLE AWR和ASH特性(7)-AWR的幾個幫Oracle
- 轉載Friend Life for Oracle的Oracle 10g,AWR,AWR,ADDM最佳實踐Oracle 10g
- 【Oracle】-【AWR/Stackpack】-AWR(Stackpack)執行許可權Oracle
- Oracle重建awr步驟Oracle
- Oracle生成awr報告Oracle
- Oracle AWR 配置檢視Oracle
- Oracle AWR Top SQL sectionOracleSQL
- 轉載Oracle AWR速查Oracle
- Oracle 生成awr報告Oracle
- Oracle AWR wri$, wrh$ and wrm$Oracle
- oracle效能awr報告Oracle
- Oracle 10g,AWR,AWR,ADDM最佳實踐Oracle 10g
- Oracle中自動工作負載資訊庫(AWR)介紹Oracle負載
- oracle 10g awr 報告中內容所對應的sqlOracle 10gSQL
- 【AWR】Oracle awr相關檢視及體系介紹Oracle
- oracle之 AWR固定基線Oracle
- Oracle AWR管理與維護Oracle