AWR常用命令

1.手工创建一个快照
SQL> select * from dba_hist_snapshot order by 1 desc;
SQL> exec dbms_workload_repository.create_snapshot;
2.手工删除指定范围的快照
SQL> select * from sys.wrh$_active_session_history order by snap_id desc;
SQL> select * from dba_hist_snapshot order by 1 desc;
SQL> execute dbms_workload_repository.drop_snapshot_range(low_snap_id => 26, high_snap_id => 44, dbid => 1236598332);
SQL> select * from sys.wrh$_active_session_history order by snap_id desc;
3.修改采集时间和统计信息保留时间(默认的的收集间隔为1小时,保存时间为1周)
SQL> select * from dba_hist_wr_control;
SQL> execute dbms_workload_repository.modify_snapshot_settings(interval =>10,retention => 60*24*7);
--修改快照的收集间隔为10分钟,保存时间为1周。
SQL> select * from dba_hist_wr_control;
4.设置基线
基线(baseline)是一种机制,这样你可以在重要时间的快照信息集做标记。一个基线定义在一对快照之间,快照通过他们的快照序列号识别.每个基线有且只有一对快照。
SQL> select * From dba_hist_baseline;
SQL> select * from sys.wrm$_baseline;
SQL> exec dbms_workload_repository.create_baseline(45, 46, 'base_line_test_1');
这一操作将快照从 45 到 46 编号,作为上面指定的基准线的一部分。查看现有的基准线: 
SQL> select * From dba_hist_baseline;
SQL> select * from sys.wrm$_baseline;
在一些调整步骤之后,我们可以创建另一个基准线 — 假设名称为 apply_interest_2,然后只为那些与这两条基准线相关的快照比较量度。
SQL> exec dbms_workload_repository.create_baseline(46, 47, 'base_line_test_2');
5.删除基线
SQL> exec dbms_workload_repository.drop_baseline(baseline_name=>'base_line_test_1', cascade=>false);
SQL> exec dbms_workload_repository.drop_baseline(baseline_name=>'base_line_test_2', cascade=>true);
说明:cascade=>false,只删除基线,不删除快照;cascade=>true基线、快照都删除。
6.生成报表
可以使用脚本awrrpt.sql或awrrpti.sql来查看AWR报告,这两个脚本都在目录$ORACLE_HOME/rdbms/admin中。Awrrpt.sql脚本可以显示指定快照id范围的诊断信息,报告可以保存为文本文件或HTML文件;awrrpti.sql脚本与awrrpt.sql类似,唯一的不同就是在awrrpti.sql脚本中,你可以指定数据库ID和实例ID(作为参数)。
SQL> @D:\oracle\product\10.1.0\db_1\RDBMS\ADMIN\awrrpt.sql;
注意看提示,一步步操作。
7.将AWR数据导出并迁移到其它数据库以便于以后分析(Oracle10g Release2提供两个新工具来完成导出和迁移,需要在sys用户下)
SQL> execute DBMS_SWRF_INTERNAL.AWR_EXTRACT(dmpfile => 'awr_data', dmpdir => 'UTL_DIR', bid => 32, eid => 35 ,dbid => 1233305016 );
8.迁移AWR数据文件到其他数据库(Oracle10g Release2提供两个新工具来完成导出和迁移,需要在sys用户下)
SQL> exec DBMS_SWRF_INTERNAL.AWR_LOAD(SCHNAME => 'EDW', dmpfile => 'awr_data', dmpdir => 'UTL_DIR');
把AWR数据转移到SYS模式中:
SQL> exec DBMS_SWRF_INTERNAL.MOVE_TO_AWR (SCHNAME => 'TEST');
说明:傻瓜版ORACLEDBA性能分析、调优!

作者: dbconf   发布时间: 2010-09-13