为了节省空间,系统默认采集的数据在 7 天后自动清除。快照频率和保留时间都可以由用户修改:
查看当前的AWR保存策略:
SQL>colSNAP_INTERVAL format a20
SQL>colRETENTION format a20
SQL>select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
------------------------------ -------------------- ----------
2774909533+0000001:00:00.0 +00007 00:00:00.0 DEFAULT
以上结果表示,每小时产生一个SNAPSHOT,保留7天。
AWR配置:
1. 调整AWR产生snapshot的频率和保留策略
AWR配置都是通过dbms_workload_repository包进行配置,如将收集间隔时间改为30 分钟一次,并且保留31天时间(单位都是分钟):
SQL>exec dbms_workload_repository.modify_snapshot_settings
(interval=>30, retention=>31*24*60);
2. 关闭AWR:
把interval设为0则关闭自动捕捉快照:
SQL>exec dbms_workload_repository.modify_snapshot_settings(interval=>0);
3. 手工创建一个快照:
SQL> execDBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
如果数据库的某些参数或应用程序做了调整,可以手工即时的创建一个快照更有利于数据的统计分析。
4. 查看快照:
SQL >select * from sys.wrh$_active_session_history
5. 手工删除指定范围的快照
SQL> exec
DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE
(low_snap_id => 2889, high_snap_id => 3000, dbid => 2774909533);
6. 生成awr报告:
awrrpt.sql:生成指定快照区间的统计报表;
awrrpti.sql :生成指定数据库实例,并且指定快照区间的统计报表;
awrsqlrpt.sql :生成指定快照区间,指定SQL语句(实际指定的是该语句的SQLID)的统计报表;
awrsqrpi.sql :生成指定数据库实例,指定快照区间的指定SQL语句的统计报表;
awrddrpt.sql :指定两个不同的时间周期,生成这两个周期的统计对比报表;
awrddrpi.sql :指定数据库实例,并指定两个的不同时间周期,生成这两个周期的统计对比报表;
5 SQL>@$ORACLE_HOME/rdbms/admin/awrrpt.sql
它产生两种类型的输出:文本格式(类似于 Statspack报表的文本格式但来自于 AWR 信息库)和默认的 HTML 格式(拥有到部分和子部分的所有超链接),从而提供了非常用户友好的报表。直接回车,生成html格式的awr: