zoukankan      html  css  js  c++  java
  • X Memory Notification Library Cache Object loaded into SGA

    今日帮朋友分析AWR报告,顺便看了一眼告警日志,发现告警日志好多Memory Notification: Library Cache Object loaded into SGA提示。

    数据库版本10.2.0.1.0 for AIX 5.3

    Thu Jul 17 18:19:08 2014
    Memory Notification: Library Cache Object loaded into SGA
    Heap size 2765K exceeds notification threshold (2048K)
    Details in trace file /oracle/admin/ora10g/udump/ora10g_ora_462864.trc
    KGL object name :select e.tsname                                               tsname,
               sum(e.phyrds - nvl(b.phyrds,0))                        reads,
               sum(e.phyrds - nvl(b.phyrds,0)) / :ela                 rps,
               decode(sum(e.phyrds - nvl(b.phyrds, 0)),
                      0, 0,
                      10 * (sum(e.readtim - nvl(b.readtim, 0)) /
                            sum(e.phyrds  - nvl(b.phyrds,  0))))      atpr,
               decode(sum(e.phyrds - nvl(b.phyrds,0)),
                      0, 0,

    这是因为加载到SGA的对象大小大于数据库中设置的阀值大小,受隐含参数_kgl_large_heap_warning_threshold影响,该值在10.2.0.1.0版本默认是2M。

    SQL> l
      1  select a.ksppinm name,b.ksppstvl value,a.ksppdesc description
      2  from x$ksppi a,x$ksppcv b
      3  where a.indx = b.indx
      4* and a.ksppinm = '_kgl_large_heap_warning_threshold'
    SQL> /
    
    NAME                                VALUE      DESCRIPTION
    ----------------------------------- ---------- -------------------------------------------------------------
    _kgl_large_heap_warning_threshold   2097152    maximum heap size before KGL writes warnings to the alert log

    加载的对象只要超过2M,就会在告警日志中有所提示,如果不想让这些信息在告警日志中出现,可以将这个隐含参数的值设置为0或更大,ORACLE也知道这个值设置为2M有点小,在10.2.0.2.0及以后版本,这个值已经由默认的2M改为了50M。

    The default threshold in 10.2.0.1 is 2M.
    So these messages could show up frequently in some application environments.
    In 10.2.0.2,  the threshold was increased to 50MB after regression tests, so this should be a reasonable and recommended value.   

    If you continue to see the these warning messages in the alert log after applying 10.2.0.2 or higher,
    an SR may be in order to investigate if you are encountering a bug in the Shared Pool.

    下面将这个隐含参数值修改为50M。

     
    SQL> alter system set "_kgl_large_heap_warning_threshold"=52428800 scope=spfile;
    
    System altered.
    
    SQL>

    隐含参数大部分都是静态参数,需要重启才能生效。

     
    SQL> shutdown immediate
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup
    ORACLE instance started.
    
    Total System Global Area  536870912 bytes
    Fixed Size                  1220460 bytes
    Variable Size             176160916 bytes
    Database Buffers          356515840 bytes
    Redo Buffers                2973696 bytes
    Database mounted.
    Database opened.

    查看已经生效。

     
    SQL> select a.ksppinm name,b.ksppstvl value,a.ksppdesc description
      2  from x$ksppi a,x$ksppcv b
      3  where a.indx = b.indx
      4  and a.ksppinm = '_kgl_large_heap_warning_threshold';
    
    NAME                                VALUE      DESCRIPTION
    ----------------------------------- ---------- -------------------------------------------------------------
    _kgl_large_heap_warning_threshold   52428800   maximum heap size before KGL writes warnings to the alert log
  • 相关阅读:
    [转]PostgreSQL 逻辑结构 和 权限体系 介绍
    [转]常见的动态规划问题分析与求解
    [转]如何在Windows 10中更改文件夹背景颜色
    []如何在Windows 10中更改文件夹背景颜色
    [转]Jackson 解析json数据之忽略解析字段注解@JsonIgnoreProperties
    [转]使用自定义HttpMessageConverter对返回内容进行加密
    php+redis实现消息队列
    利用redis List队列简单实现秒杀 PHP代码实现
    redis 缓存击穿 看一篇成高手系列3
    redis 延时任务 看一篇成高手系列2
  • 原文地址:https://www.cnblogs.com/chendian0/p/14343739.html
Copyright © 2011-2022 走看看