主要参考文档: http://343766868.blog.163.com/blog/static/48314056201110124513396/ 概况 Oracle内部以一定的频率把系统关键的统计信息和负载情况存储起来,生成snapshot(快照),所有的snapshot存储在awr中,即automatic workload repository。 当发现
主要参考文档:
http://343766868.blog.163.com/blog/static/48314056201110124513396/
Oracle内部以一定的频率把系统关键的统计信息和负载情况存储起来,生成snapshot(快照),所有的snapshot存储在awr中,即automatic workload repository。
当发现数据库出现性能问题时,就可以抽取存储在awr中的snapshot信息,生成在指定时间段内(即你指定的snapshot所囊括的时间段)的awr报告。然后对报告进行分析,发现系统存在的问题。
Select * from dba_hist_snapshot;
一般情况下,snapshot不需要手动管理,若有特殊需要,也可以进行手动生成和删除操作。
SQL>execdbms_workload_repository.create_snapshot();
SQL>exec dbms_workload_repository.dorp(low_snap_id=>1,high_snap_id=>2);
数据库默认是每一个小时进行一次snapshot生成操作,每个snapshot保留7天。
可以通过以下语句查询数据库当前的快照生成配置信息。
select * from dba_hist_wr_control;
若需要更改次默认参数,也可以使用
SQL>exec dbms_workload_repository.modify_snapshot_settings(interval=>60
Retention=>3*24*60
);
其中:
retention参数及保留时间,单位是min(分钟)。若设置为0,则快照将永久保留。若设置为null,则保留原设置。此参数的范围为1天---100年。
Interval参数为生成snapshot频率。单位是min(分钟)。若设置为0,则表示禁用手动和自动生成快照的功能。若设置为null,则保留原设置。此参数的范围为10min---1年。
此外还有topnsql和dbid参数,topnsql表示要采集比较占资源的sql数量。
了解了快照之后,就可以利用snapshot生成awr报告。
自动生成是使用OEM中的查看awr相关项,手动生成时指执行oracle提供的执行脚本。
脚本位于$ORACLE_HOME/rdbms/admin/目录下,名字为awrrpt.sql。
SQL>@?/rdbms/admin/awrrpt.sql
即可。生成的路径为你进入sqlplus前的当前目录。所以若要把报告放在指定目录,可事先进入该目录,比如
Cd /tmp/awr/
然后在进入sqlplus,手动生成awr报告。
生成awr报告后,就剩下分析awr报告了,这是个比较大的问题,也是个比较难的问题,以后慢慢说。