一、AWR报告的概念
关于Oracle数据库的性能。Oracle10g以后,Oracle提供了一个性能检测的工具:AWR(Automatic Workload Repository 自动工作负载库)。这个工具可以自动采集Oracle运行中的负载信息,并生成与性能相关的统计数据。我们可以根据这些统计数据来分析一些潜在的问题。
二、AWR报告的原理
Oracle启动后,后台会有个进程采集系统的快照信息,信息采集来源为: V$active_Session_History视图,该视图可以展示最近活动会话的历史记录。
查询采样频率和保存时间的SQL(默认为每1小时采集一次,采样结果保存8天):
select * from dba_hist_wr_control;
select DBID, SNAP_INTERVAL, SNAPINT_NUM, RETENTION from wrm$_wr_control;
修改采样频率和保存时间的SQL:
SQL> exec dbms_workload_repository.modify_snapshot_settings(interval=>30,retention=>7*2*24*60);
PL/SQL procedure successfully completed.
interval 快照间隔,单位是分钟
retention 快照保留周期,单位是分钟
快照由MMON和MMNL的进程自动地每隔固定时间采集一次。MMON进程负责执行多种和管理相关的后台任务,MMNL负责执行轻量级切高频率的管理相关的后台任务。
三、生成AWR报告
oracle 可以将8天的awr快照数据进行储存,我们可以将oracle中的任何两个时间点(输入日期后,会返回相应的时段内,快照对应的时间)生成该段时间内的awr报告。具体生成方式有多种,一般需要sys权限。注意:输出文件的路径为sqlplus登录数据库时所在的文件夹,并且这个文件夹一定要有oracle用户的操作权限,不然无法生成文件。
SQL> @?/rdbms/admin/awrrpt.sql 本实例
SQL>@?/rdbms/admin/awrrpti RAC中选择实例号
Enter value for report_type: 为输出文件类型的配置,HTML或TXT。
Enter value for num_days:为需要返回几天的快照。
Enter value for begin_snap:为从哪个快照开始对比。
Enter value for end_snap:为从哪个快照结束对比。
Enter value for report_name:为最终输出文件的名称。
四、导出AWR报告
待生成完成后,从linux上导出AWR报告即可。