ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Memory Notification: Library Cache Object loaded into SGA问题

Memory Notification: Library Cache Object loaded into SGA问题

原创 Linux操作系统 作者:jst143 时间:2011-09-28 09:38:27 0 删除 编辑

问题:alert_SID.log出现

Memory Notification: Library Cache Object loaded into SGA

Heap size 2289K exceeds notification threshold (2048K)

Oracle10g中,在load较大的对象进library cache中时,会记录以上警告。在版本10.2.0.1中,这个定义大对象的阈值是2M,这是有隐含参数

_kgl_large_heap_warning_threshold指定的,如果系统中需要load很多大对象,又不想在alert中看到太多这类的警告信息,可以修改该参数:

SQL> alter system set "_kgl_large_heap_warning_threshold"=8388608 scope=spfile;

参数值以字节为单位,设置完后需要重启实例才能生效。

从10.2.0.2起,这个参数的默认值被修改为50M.

 

下面是oracle上的metalink信息:

Memory Notification: Library Cache Object Loaded Into Sga

In 10g we have a new undocumented parameter that sets the KGL heap size warning threshold. This parameter was not present in 10gR1.Warnings are

written if heap size exceeds this threshold.

 

Set _kgl_large_heap_warning_threshold to a reasonable high value or zero to prevent these warning messages. Value needs to be set in bytes.

If you want to set this to 8192 (8192 * 1024) and are using an spfile:

(logged in as "/ as sysdba")

SQL> alter system set "_kgl_large_heap_warning_threshold"=8388608 scope=spfile ;

SQL> shutdown immediate

SQL> startup

SQL> show parameter _kgl_large_heap_warning_threshold

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

_kgl_large_heap_warning_threshold integer 8388608

If using an "old-style" init parameter,

Edit the init parameter file and add

_kgl_large_heap_warning_threshold=8388608


in 10.2.0.1.
 
step 1

SQL>alter system set " _kgl_large_heap_warning_threshold "=10240000 scope=spfile;

or

SQL> create pfile=’/home/oracle/init.ora' from spfile;
then add _kgl_large_heap_warning_threshold =10240000 into it
echo _kgl_large_heap_warning_threshold =10240000 >> /home/oracle/init.ora

step 2

restart the instance;


查看了一下隐含参数

DOSCDB(sys)>select ksppinm name,
2 ksppstvl value,
3 ksppstdf isdefault,
4 decode(bitand(ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
5 decode(bitand(ksppstvf,2),2,'TRUE','FALSE') isadj
6 from x$ksppi x, x$ksppcv y
7 where (x.indx = y.indx) and
8 x.ksppinm like '%'||'¶meter'||'%'
9 /
输入 parameter 的值: kgl
原值 8: x.ksppinm like '%'||'¶meter'||'%'
新值 8: x.ksppinm like '%'||'kgl'||'%'

NAME VALUE ISDEFAULT ISMOD ISADJ
------------------------------ ------------------------- ------------------ -------------------- ----------
_kgl_multi_instance_lock TRUE TRUE FALSE FALSE
_kgl_multi_instance_pin TRUE TRUE FALSE FALSE
_kgl_multi_instance_invalidati TRUE TRUE FALSE FALSE
on

_kgl_latch_count 0 TRUE FALSE FALSE
_kgl_heap_size 1024 TRUE FALSE FALSE
_kgl_fixed_extents TRUE TRUE FALSE FALSE
_kgl_session_cached_objects 10 TRUE FALSE FALSE
_kgl_keep_cache_pct 30 TRUE FALSE FALSE
_kgl_keep_cache_retain_pct 20 TRUE FALSE FALSE
_kgl_bucket_count 9 TRUE FALSE FALSE
_kglsim_maxmem_percent 5 TRUE FALSE FALSE
_kgl_hash_collision FALSE TRUE FALSE FALSE
_kgl_time_to_wait_for_locks 15 TRUE FALSE FALSE
_kgl_large_heap_warning_thresh 2097152 TRUE FALSE FALSE
old


已选择14行。

_kgl_large_heap_warning_threshold 2097152

这行数据是值得怀疑的 ,应该就是它的问题

分析问题:

DOSCDB(sys)>select KSPPDESC from x$ksppi where ksppinm like '_kgl_large_heap_warning%';

KSPPDESC
-----------------------------------------------------------------------------------------

maximum heap size before KGL writes warnings to the alert log

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23577591/viewspace-708436/,如需转载,请注明出处,否则将追究法律责任。

上一篇: MQT表2
下一篇: LogMiner的使用
请登录后发表评论 登录
全部评论

注册时间:2010-05-06

  • 博文量
    109
  • 访问量
    141413