Oracle生成awr報告

genweihua發表於2017-09-16
一、手工生成awr報告的方法
1、相應許可權使用者登入(sysdba)後,在$ORACLE_HOME/rdbms/admin
2、在sqlplus裡執行@?/rdbms/admin/awrrpt.sql,按照提示操作。
3、生成AWR報告說明
單例項:@$ORACLE_HOME/rdbms/admin/awrrpt.sql
RAC:@$ORACLE_HOME/rdbms/admin/awrgrpt.sql
生成RAC特定例項:@$ORACLE_HOME/rdbms/admin/awrrpti.sql
生成RAC多個例項的報告:@$ORACLE_HOME/rdbms/admin/awrgrpti.sql
生成SQL的AWR報告:@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql
生成特定例項的SQL的awr報告:@$ORACLE_HOME/rdbms/admin/awrsqrpi.sql


生成單例項時段對比報告:@$ORACLE_HOME/rdbms/admin/awrddrpt.sql
生成RAC時段對比報告:@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql
生成特定例項的時段對比報告:@$ORACLE_HOME/rdbms/admin/awrddrpi.sql
生成RAC特定多例項時段對比報告:@$ORACLE_HOME/rdbms/admin/awrgdrpi.sql
注意:目錄一定要有Oracle許可權。

二、AWR報告管理

1.檢視當前的AWR儲存策略、設定:快照間隔、儲存時間。
SQL> col SNAP_INTERVAL format a20
SQL> col RETENTION format a20
SQL> select * from dba_hist_wr_control;


2、調整AWR配置,修改快照間隔和儲存時間等。AWR配置都是透過dbms_workload_repository包進行配置。
調整AWR產生snapshot的頻率和保留策略,  如將收集間隔時間改為30 分鐘一次。並且保留5天時間(單位都是分鐘):  
 SQL> exec dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60);
 
3、關閉AWR報告
關閉AWR,把interval設為0則關閉自動捕捉快照  
SQL> exec dbms_workload_repository.modify_snapshot_settings(interval=>0);


4、手工建立一個快照
 exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();


 5、檢視快照
 SQL> select * from sys.wrh$_active_session_history
 
 6、手工指定刪除快照的範圍
 SQL> exec DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id => 973, high_snap_id => 999, dbid => 262089084);
 
 7、建立baseline,儲存這些資料用於將來分析和比較
 SQL> exec dbms_workload_repository.create_baseline(start_snap_id => 1003, end_snap_id => 1013, 'apply_interest_1');
 
 8、刪除baseline
 SQL> exec DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name => 'apply_interest_1', cascade => FALSE);
 
 9、將AWR資料匯出並遷移到其它資料庫以便於以後分析
 SQL> exec DBMS_SWRF_INTERNAL.AWR_EXTRACT(dmpfile => 'awr_data.dmp', mpdir => 'DIR_BDUMP', bid => 1003, eid => 1013);
 
 10、遷移AWR資料檔案到其他資料庫
  exec DBMS_SWRF_INTERNAL.AWR_LOAD(SCHNAME => 'AWR_TEST', dmpfile => 'awr_data.dmp', dmpdir => 'DIR_BDUMP');
  其中把AWR資料轉移到SYS模式中:SQL> exec DBMS_SWRF_INTERNAL.MOVE_TO_AWR (SCHNAME => 'TEST');
  
 11、生成第一份awr報告
 exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (flush_level=>'ALL');

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

相關文章