Oracle 数据库中如何收集AWR Report
(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)
AWR(Automated Workload Repository 自动负载信息库)永久地保存系统的性能诊断信息,由SYS用户拥有。有时候为了性能诊断,你可能需要自己定义采样频率来获取系统快照信息。Oracle 10g在包dbms_workload_repository中提供了很多过程,通过这些过程,你可以管理快照并设定基线(baselines)。AWR中的信息最长可能有1小时的延迟,所以其采样信息并不能用于诊断数据库的当前状态,但可以用来作为一段时期内数据库性能调整的参考。
如何收集设置和收集AWR Report对开发人员和DBA来说都是非常重要的,这里记录下基础的收集方式,以便查阅和其他人参考。
1.链接到sqlplus,如下图
2.执行文件@$ORACLE_HOME/rdbms/admin/awrrpt.sql;如果在EBS服务器上切环境变量设的有问题的话,可以使用路径类似于
@/u01/oracle/mydev213/db/tech_st/11.1.0/rdbms/admin/awrrpt.sql
3.输入报表的输出类型,默认是html,一般不用改,直接回车。
4.下面输入要收集的从现在开始算几天内的数据,我一般是看当前一天内的。
5.输入完时间后,会列出所有的snap shot,然后让我们选择你要起始和结束snap shot 的ID,这样这两个snap shot之间的数据就会被输出到AWR 报表中去。你要一整天的话,起始的就输入第一个,结束的就输入最后一个;我这里只需要2个小时的,所以输入的如下图所示。记住,起始和结束的snap shot ID不能一样。
6.下面是让我们输入AWR报表的名称,可以改为更有意义的名称。我一般用默认的,里面包含了起始和结束的snap shot ID。
7.文件生成在当前目录。
8.打开AWR report,如下,包含了所有需要的信息。
9.通过SQL Statistics,可以看到那些SQL可能有性能问题。