AWR的概念
Oracle数据库是一个使用量很多的数据库,关于Oracle数据库的性能。Oracle10g以后,Oracle提供了一个性能检测的工具:AWR(Automatic Workload Repository 自动工作负载库)这个工具可以自动采集Oracle运行中的负载信息,并生成与性能相关的统计数据。我们可以根据这些统计数据来分析一些潜在的问题。
AWR的原理
Oracle启动后,后台会有个进程去每小时采集一次系统的快照信息,信息采集来源为: V$active_Session_History视图。该视图可以展示最近活动会话的历史记录。并将采集到的信息保存8天。(查询SQL:select * from dba_hist_wr_control;)采样频率和保存时间可配置。
快照由MMON和MMNL的进程自动地每隔固定时间采集一次。MMON进程负责执行多种和管理相关的后台任务,MMNL负责执行轻量级切高频率的管理相关的后台任务。
awr报告
oracle 可以将8天的awr快照数据进行储存,我们可以将oracle中的任何两个时间点(输入日期后,会返回相应的时段内,快照对应的时间)生成该段时间内的awr报告。具体生成方式有多种,一般需要sys权限,如果读者有更好的方法,欢迎讨论。
1.首先登陆sys用户下 sqlplus as sysdba;
然后,再新弹出的窗口中输入@?/rdbms/admin/awrrpt.sql
按照提示,输入导出脚本的类型(HTML还是text),输入HTML
这里输入的是返回几天的快照,这里输入1天,表示返回一天的记录
这里返回的是范围内的所有快照的信息。通过输入两个快照id生成两个快照点之间的报告信息。这里可以根据需要进行选择,比如说,四点的时候,系统出现了明显的卡顿,想要分析这个卡顿出现的原因,那么最好取三点到五点之间的日志,也就是对应的26和28 两个snapId的值。
从上图可以看出,id为21和22之间服务器进行了重启,不能选择这样的快照区间,不然会抛出异常。
这里,我们选择12点到18点之间的日志。
然后,输入返回awr对象的名称,建议写一些有代表意义的名称,便于以后查看。
然后就是一通滚屏,最后可以看到输出成功的提示:
导出的awr报告: