主要参考文献:
概况
Oracle内部以一定的频率把系统关键的统计信息和负载情况存储起来,生成snapshot(快照),全部的snapshot存储在awr中。即automatic workload repository。
当发现数据库出现性能问题时。就能够抽取存储在awr中的snapshot信息,生成在指定时间段内(即你指定的snapshot所囊括的时间段)的awr报告。然后对报告进行分析。发现系统存在的问题。
首先说下快照的管理。
查看已生成快照列表信息
Select * from dba_hist_snapshot;
普通情况下。snapshot不须要手动管理,若有特殊须要,也能够进行手动生成和删除操作。
手动生成snapshot。
SQL>execdbms_workload_repository.create_snapshot();
手动删除snapshot。
SQL>exec dbms_workload_repository.dorp(low_snap_id=>1,high_snap_id=>2);
更改snapshot频率等參数。
数据库默认是每个小时进行一次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数量。
生成awr报告。
了解了快照之后。就能够利用snapshot生成awr报告。
自己主动生成是使用OEM中的查看awr相关项。手动生成时指运行oracle提供的运行脚本。
脚本位于$ORACLE_HOME/rdbms/admin/文件夹下,名字为awrrpt.sql。
SQL>@?/rdbms/admin/awrrpt.sql
就可以。生成的路径为你进入sqlplus前的当前文件夹。
所以若要把报告放在指定文件夹,可事先进入该文件夹。比方
Cd /tmp/awr/
然后在进入sqlplus,手动生成awr报告。
生成awr报后报告。分析左侧awr报告,这是一个大问题,它是一个更加困难的问题。以后慢慢说。
版权声明:本文博客原创文章,博客,未经同意,不得转载。