How to resolve ORA-13541

在尝试调整AWR报告的保留时限时,出现ORA-13541错误。

SQL> exec DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(4320,60);
BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(4320,60); END;

*
ERROR at line 1:
ORA-13541: system moving window baseline size (691200) greater than retention
(259200)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 89
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 137
ORA-06512: at line 1

试图查询ORA-13541的具体含义,但是发现oerr ora 13541并没有任何输出,同时在metalink上也查询不到任何一篇提及ORA-13541错误的文章。

只有从错误信息本身进行解读,我们的SQL动作是将AWR报告的保留时限从默认的8天改为3天。语句中的参数4320是retention,以分钟为单位,4320分钟等于3天。错误信息中的259200也是retention,但是却是以秒为单位,4320分钟=259200秒。那么691200也同样是秒,换算为天数是8天。此时再去检查AWR Baseline中的定义。

SQL> select moving_window_size from dba_hist_baseline;

MOVING_WINDOW_SIZE
------------------
                 8

那么重新解读一下错误信息,就是AWR Baseline中的MOVING_WINDOW_SIZE是8天,大于了想要修改的AWR Retention的3天。

尝试先将AWR Baseline的MOVING_WINDOW_SIZE修改为3天。可以在OEM的AWR Baselines链接里直接修改。

然后再次修改AWR Retention,成功。

SQL> exec DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(4320,60);

PL/SQL procedure successfully completed.

Automatic tuning of db_file_multiblock_read_count

db_file_multiblock_read_count曾经是一个经过热烈讨论的初始化参数。该参数只有在对表或者索引进行Full Scan的时候才起作用。

在Oracle10gR2以前的版本中,DBA必须根据db_block_size参数,以及应用系统的特性,来调整db_file_multiblock_read_count参数。该参数值将影响CBO在该产生何种SQL执行计划上的判断。

我们知道如下的公式,其中max I/O chunk size跟操作系统有关,但是Oracle文档中也指出大多数操作系统上该值为1M。

db_file_multiblock_read_count = max I/O chunk size / db_block_size

在Oracle10gR2之后的版本(10gR2和11g)中,Oracle数据库已经可以根据系统的IO能力以及Buffer Cache的大小来动态调整该参数值,Oracle建议不要显式设置该参数值。但是根据Oracle官方文档对于此参数的解释:

Note that if the number of sessions is extremely large the multiblock read count value is decreased to avoid the buffer cache getting flooded with too many table scan buffers.
Even though the default value may be a large value, the optimizer will not favor large plans if you do not set this parameter. It would do so only if you explicitly set this parameter to a large value.

因此建议对于已知确实将进行大量全表扫描的OLAP系统,还是应该直接设置为较大的值。

How To Integrate Statspack with EM 10G

说过要写一篇如何将10g之前版本的statspack整合到EM 10g中的文章,但是最近没有相应的环境,不方便截图,因此给出metalink上的相应文章链接,有兴趣的朋友可以自行阅读,很详细的step by step操作。

Doc ID. 359374.1 How to Configure a Database Target for Complete Monitoring
Doc ID. 274436.1 How To Integrate Statspack with EM 10G
Bug No. 5599831 NOT ABLE TO MANAGE 9I STATSPACK USING 10G GRID

不能登录Metalink的朋友请下载包含这三篇文档的zip文件