1.AWR默认的采样间隔和历史快照保留时间
默认是保留七天,采集间隔是1小时,这个信息可以从DBA_HIST_WR_CONTROL视图中获得。
sys@ora10g> col SNAP_INTERVAL for a20
sys@ora10g> col RETENTION for a20
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
3973098169 +00000 01:00:00.0 +00007 00:00:00.0 DEFAULT
SNAP_INTERVAL=+00000 01:00:00.0 表示采样间隔是1小时
RETENTION=+00007 00:00:00.0 表示采样数据保留期限是7天
关于DBA_HIST_WR_CONTROL视图的更多参考可参见Oracle官方文档
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_3202.htm#REFRN23462
2.修改AWR默认的采样间隔和历史快照保留时间之GC方法
请按照如下的顺序操作即可。
1)点击Targets
2)点击Databases,选择需要调整的数据库并进入
3)搜索“Automatic Workload Repository”关键字(该内容属于Administration - Database Administration - Statistics Management)进入,此时可以看到系统当前的设置情况
4)点击Edit进行修改,注意这里System Snapshot Interval只有10 Minutes、15 Minutes、20 Minutes、30 Minutes、1Hour、2 Hours这几种选项,多少有些局限(命令行修改方法不受这个约束)。
3.修改AWR默认的采样间隔和历史快照保留时间之SQL方法
万变不离其宗,任何能从界面上进行修改的内容都可以通过SQL调整的方法来完成。
我们即将使用到的是DBMS_WORKLOAD_REPOSITORY包中的MODIFY_SNAPSHOT_SETTINGS存储过程。
该存储过程的简单描述信息如下。
sec@ora10g> desc DBMS_WORKLOAD_REPOSITORY
…… ……
PROCEDURE MODIFY_SNAPSHOT_SETTINGS
Argument Name Type In/Out Default?
------------------------------ --------------- ------ --------
RETENTION NUMBER IN DEFAULT
INTERVAL NUMBER IN DEFAULT
TOPNSQL VARCHAR2 IN
DBID NUMBER IN DEFAULT
例如我们需要将采集间隔调整为15分钟,采样数据保留2天,可以做如下调整
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 15,
4 retention => 2*24*60);
5 END;
6 /
PL/SQL procedure successfully completed.
验证修改结果
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
4134757407 +00000 00:15:00.0 +00002 00:00:00.0 DEFAULT
更多关于该存储过程的说明请参考Oracle官方文档http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_wkrpos.htm#BACEHJJI。
值得注意的是:
RETENTION参数的取值范围要求是1天到100年,即快照至少需要保留1天,最长可以保留100年;
INTERVAL参数的取值范围要求是10分钟到100年,即快照采集间隔最少可以是10分钟,最长可以是100年(官方文档这里描述的有问题,不但用词不正确,而且给出的最长是1年也是不正确的,用词方面的错误在11gR1文档中得到修改)。
1)验证RETENTION参数的取值范围
当RETENTION参数被赋予少于1天或超过100年的时候都会给出提示性错误ORA-13510,从提示信息中也可以得到该参数的取值范围(1440, 52560000),1440分钟即1天, 52560000分钟即100年。
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 60,
4 retention => 0.5*24*60);
5 END;
6 /
BEGIN
*
ERROR at line 1:
ORA-13510: invalid RETENTION 720, must be in the range (1440, 52560000)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 85
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 133
ORA-06512: at line 2
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 60,
4 retention => 36501*24*60);
5 END;
6 /
BEGIN
*
ERROR at line 1:
ORA-13510: invalid RETENTION 52561440, must be in the range (1440, 52560000)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 85
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 133
ORA-06512: at line 2
2)验证INTERVAL参数的取值范围
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 9,
4 retention => 7*24*60);
5 END;
6 /
BEGIN
*
ERROR at line 1:
ORA-13511: invalid INTERVAL 9, must be in the range (10, 52560000)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 85
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 133
ORA-06512: at line 2
可见此处INTERVAL参数的取值是10分钟到52560000分钟(即100年),当间隔取到整100年的时候是没有问题的。
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 36500*24*60,
4 retention => 7*24*60);
5 END;
6 /
PL/SQL procedure successfully completed.
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
4134757407 +36500 00:00:00.0 +00007 00:00:00.0 DEFAULT
4.停止AWR采样发生的迂回方法
我们可以将采样时间间隔调整为最长100年,同时把采样数据保留时间调整到最小1天的方式实现“禁用”AWR。
sys@ora10g> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 36500*24*60,
4 retention => 1*24*60);
5 END;
6 /
PL/SQL procedure successfully completed.
sys@ora10g> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
4134757407 +36500 00:00:00.0 +00001 00:00:00.0 DEFAULT
5.小结
本文通过简单的演示给大家展示了一下调整AWR数据采样时间间隔及历史快照保留时间的方法。
Oracle官方文档亦存在瑕疵,尽信书不如无书。验证Oracle官方文档正确性的最有效的工具是你的双手。
Good luck.
secooler
10.07.18
-- The End --
分享到:
相关推荐
ORACLE AWR数据性能分析
awr裸数据的详细来源介绍,大神文章,不可错过,好
记一次生产环境排查服务器性能优化的问题,需要获取oracle的AWR报告,进行分析服务器sql的执行时间
rospkg是一个毫米波雷达的数据传输系统,将AWR1642采集到的数据通过UART保存到本地磁盘存储为csv格式 rospkg是一个毫米波雷达的数据传输系统,将AWR1642采集到的数据通过UART保存到本地磁盘存储为csv格式 rospkg是一...
oracle 中性能报告的解析,能够知道报告的具体信息,如何看这个AWR报表,希望给ORACLE管理人员有帮助。
AWR每小时对v$active_session_history视图(内存中的ASH采集信息,理论为1小时)进行采样一次,并...而这个采样频率(1小时)和保留时间(7天)是可以根据实际情况进行调整的,这就给DBA们提供了更加有效的系统监测工具。
awr报告awr报告awr报告awr报告
oracle抓取指定时间段AWR报告.docx
awr到底是怎么回事呢?如何手工生成AWR呢?AWR的数据来自哪里呢?
AWR1443boost用户指南笔记1
AWR 是 Oracle 10g 版本 推出的新特性, 全称叫Automatic Workload Repository-自动负载信息库, AWR 是通过对比两次快照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分
oracle awr报告具体分析
Oracle数据库,导出某时间段AWR与ASH性能报告操作日志,用于对oracle数据库进行性能分析。
AWR射频仿真,AWR射频仿真,AWR射频仿真,AWR射频仿真,AWR射频仿真,AWR射频仿真,
详解awr中的时间模型,让你对各种时间的解释不再迷惑。
最近想要通过awr观察下某个oracle实例的性能情况,碰到了在sqlplus执行awrrpt.sql到选择snapshot区间的时候无任何区间供选导致无法进一步生 成awr的情况,而且手动使用execute DBMS_WORKLOAD_REPOSITORY.CREATE_...
oracle查看awr的详细介绍 AWR 是 Oracle 10g 版本 推出的新特性, 全称叫Automatic Workload Repository-自动负载信息库, AWR 是通过对比两次快,照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个...
基于Ti_AWR2243级联板的发射端波束形成(相控阵)的实践_博文相对应的数据和代码
AWR仿真案例教程英文版,实际案例进行教学
Automatic Workload Repository-自动负载信息库 AWR 是通过对比两次快照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分