Oracle 手工生成AWR报告

一、手工生成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');

你可能感兴趣的:(Oracle 手工生成AWR报告)