• Oracle Internal Event:10235 Heap Checking诊断事件


    10235 (check memory manager internal structures) event内部诊断事件,当oracle SGA内存堆heap 管理操作发生错误时会触发该检测事件(For the sga heap, the internal error is signaled only when heap checking (event 10235) is enabled),其级别列表如下:  
    [oracle@nas ~]$ oerr ora 10235
    10235, 00000, "check memory manager internal structures"
    // *Cause:
    // *Action:
    
    List of Levels for Event 10235
    Level 1: Check heap before heap is freed.
    Level 2: Level 1 + fill allocation and frees with 0xff.
    Level 3: level 2 + checks to make sure chunk belongs to heap prior to operation (free, grow, make chunk as
    freeable with mark). Scan of extents, could get expensive
    Level 4: level 3 + allocates permanent chunks as freeable chunks. This accomplishes two things:
    all permanent allocations are in their own chunks and the comments for the permanent chunks appear in a heap dump.
    The following levels should be OR'ed in together. For example, in order to use levels 2, 8 and 16,
    event 10235 needs to be set to level 26.
    Level 8: Check heap on every operation to the heap.
    Level 16: Level 8 + check top PGA heap and SGA heap.
    Level 32: Level 16 + check all heaps in the top pga heap, recursively; check SGA heap.
    Level 64: Level 32 + check SGA heap if started up in single_process=true.
    Level 256: align chunks at the bottom of a page and page protect the page that follows the chunk,
    to catch writes off the end of a chunk, for all heaps.
    Level 512: Like level 256, except for all heaps in the pga heap; so this event is useful for detecting
    corruption in the pga heap and pga subheaps. This can also be enabled on specific heaps or chunks with
    specific comments.
    Level 65536: Enable CPM(Commented PerManent chunk) Keep comment for permanent allocation. It's useful for
    detecting memory growth/overrun in permanent space. If you need to investigate the allocations for "library cache",
    The combination of event 10049 level 10100 and this event will help to have more descriptive information.
      注意只有当 怀疑oracle实例存在内存讹误(memory corruption)或者深入研究KGH堆管理内部原理的时候才有必要使用该10235事件,不要在生产库设置该诊断事件!! 不推荐在session会话级别设置该event 可能引起问题,具体的设置方法如下:  
    alter system set event=' 10235 trace name context forever,level 512 ' scope=spfile;
    restart instance;
        实际上绝大多数情况下我们不会用到10235 event, 即便是提交有关内存泄露(memory leak)或者内存讹误(memory corruption)的SR后 oracle Support 要求你上传一些heapdump的trace信息, 直接做heapdump转储也已经足够了, 具体用法如下:    
    alter session set event 'trace name immediate heapdump level <n>';
    
    level 级别列表如下:
    
     1:          pga heap,  1025:            pga heap w/ contents
     2:          sga heap,  2050:            sga heap w/ contents
     4:          uga heap,  5000:            uga heap w/ contents
     8:          current call heap,  8200: current call heap w/ contents
    16:         user call heap, 16400:     user call heap w/ contents
    32:         large alloc heap, 32800:  large alloc heap w/ contents
    
    若希望dump转储某个特定的subheap ,则先要知道该heap descriptor 的address地址
    
    alter session set event 'trace name immediate headump_addr level <addr>';
  • 相关阅读:
    让windows10的右键菜单既显示传统cmd又显示powershell
    配置php环境的一个nginx.conf
    windows中启动和终止nginx的两个批处理
    WxWidgets笔记
    安装archlinux的linux命令记录
    window中的attrib命令
    docker中i的作用
    airflow中的两个参数
    sqlite数据库中为字段设置默认值为当前时间
    记oracle使用expdp将数据导出到asm报错
  • 原文地址:https://www.cnblogs.com/macleanoracle/p/2968235.html
Copyright © 2020-2023  润新知