在一次WINDOWS 从9I升级到10g过程中,alert.log出现了在9I中没有遇到过的错误:
Tue Nov 10 22:16:35 2009
Memory Notification: Library Cache Object loaded into SGA
Heap size 2795K exceeds notification threshold (2048K)
Details in trace file d:\oradata\admin\kong\udump\kong_ora_3404.trc
KGL object name :grant select on PLUGGABLE_SET_CHECK to SELECT_CATALOG_ROLE
感觉这仅仅是个notification,但从没有遇到过。library cache object加载到SGA中,为什么会超出threhold。
原来在10G, ORACLE引入了一个没有公开的参数: _kgl_large_heap_warning_threshold。
这个值的是以BYTES为单位。在10GR1版本还不存在这个参数。
出现这个提示是需要某进程花费了大量的时间在寻找空闲内存,因为内存已经被严重碎片化。频繁出现这个提示,暗示需要优化该系统。
这个alert信息仅仅是提示,不意味着ORA-4031错误会发生。
如果要屏蔽这个提示,可以设置该值为一个更大的值,或者设置为0.
在10.2.0.1版本,该值缺省值为2M,在某些环境中,该提示会频繁出现;
到了10.2.0.2,oracle意识到这个问题,已经把缺省值加到了50Mb,这个值对多数系统来说已经足够。
查看隐藏参数的脚本:
select ksppinm, ksppstvl
from x$ksppcv cv, x$ksppi pi
where cv.indx = pi.indx
and pi.ksppinm like '_kgl_large_heap_warning_threshold%';
我的这个环境执行的结果:
SQL> select ksppinm, ksppstvl
2 from x$ksppcv cv, x$ksppi pi
3 where cv.indx = pi.indx
4 and pi.ksppinm like '_kgl_large_heap_warning_threshold%';
KSPPINM
-----------------------------------------------------------------------------
KSPPSTVL
-----------------------------------------------------------------------------
_kgl_large_heap_warning_threshold
2097152
已选择 1 行。
SQL> select 2097152/1024 from dual;
2097152/1024
------------
2048
已选择 1 行。
2048K值是alert.log日志中的 exceeds notification threshold (2048K) 的数值。
Tue Nov 10 22:16:35 2009
Memory Notification: Library Cache Object loaded into SGA
Heap size 2795K exceeds notification threshold (2048K)
Details in trace file d:\oradata\admin\kong\udump\kong_ora_3404.trc
KGL object name :grant select on PLUGGABLE_SET_CHECK to SELECT_CATALOG_ROLE
感觉这仅仅是个notification,但从没有遇到过。library cache object加载到SGA中,为什么会超出threhold。
原来在10G, ORACLE引入了一个没有公开的参数: _kgl_large_heap_warning_threshold。
这个值的是以BYTES为单位。在10GR1版本还不存在这个参数。
出现这个提示是需要某进程花费了大量的时间在寻找空闲内存,因为内存已经被严重碎片化。频繁出现这个提示,暗示需要优化该系统。
这个alert信息仅仅是提示,不意味着ORA-4031错误会发生。
如果要屏蔽这个提示,可以设置该值为一个更大的值,或者设置为0.
在10.2.0.1版本,该值缺省值为2M,在某些环境中,该提示会频繁出现;
到了10.2.0.2,oracle意识到这个问题,已经把缺省值加到了50Mb,这个值对多数系统来说已经足够。
查看隐藏参数的脚本:
select ksppinm, ksppstvl
from x$ksppcv cv, x$ksppi pi
where cv.indx = pi.indx
and pi.ksppinm like '_kgl_large_heap_warning_threshold%';
我的这个环境执行的结果:
SQL> select ksppinm, ksppstvl
2 from x$ksppcv cv, x$ksppi pi
3 where cv.indx = pi.indx
4 and pi.ksppinm like '_kgl_large_heap_warning_threshold%';
KSPPINM
-----------------------------------------------------------------------------
KSPPSTVL
-----------------------------------------------------------------------------
_kgl_large_heap_warning_threshold
2097152
已选择 1 行。
SQL> select 2097152/1024 from dual;
2097152/1024
------------
2048
已选择 1 行。
2048K值是alert.log日志中的 exceeds notification threshold (2048K) 的数值。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/40239/viewspace-619446/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/40239/viewspace-619446/