zoukankan      html  css  js  c++  java
  • ORA04031 错误

    2011年1月14日

         先把数据库的机子介绍下:aix5

                       Host Mem (MB):                   7,936.0(4个cpu)

                       SGA use (MB):                    4,144.0

                       PGA use (MB):                    49.4

                 % Host Mem used for SGA+PGA:  52.8                 
                  Shared Pool Size(MB):      320

        这两天想看看数据库为什么性能差的问题,通过stackpack报告,查看了一些相关参数后,将Shared Pool Size改为800m,之后运行其存储过程老是提示:

    “ORA 4031: unable to allocate %s bytes of shared memory (%s,%s,%s)”的错误。

        将监听配置改成专用服务器连接后(原来为共享服务器)即在监听配置上加上(SERVER = DEDICATED) ,程序执行没有报错。

        后来我又改为用共享服务器连接,将共享池大小改回320m,也没再报这个错。

    但是原因是什么呢?

    为什么我设置SHARED_POOL_SIZE为320,但是v$sgainfo视图中的SHARED_POOL_SIZE为624?

     我看网上搜到关于这个错误的原因都是解释说关于
    SHARED_POOL_SIZE共享池大小是不是不够,或者
    SHARED_POOL_RESERVED_SIZE参数与SHARED_POOL_RESERVED_MIN_ALLOC参数值不对(一般为SHARED_POOL_SIZE的10%)

     以下为网上搜的解决该错误的方法:

          ORA-04031 错误通常是因为库高速缓冲中或共享池保留空间中的碎片。 在加大共享池大小的时候考虑调整应用使用共享的SQL 并且调整如下的参数:
                     SHARED_POOL_SIZE,
                     SHARED_POOL_RESERVED_SIZE,
                     SHARED_POOL_RESERVED_MIN_ALLOC.
        首先判定是否ORA-04031 错误是由共享池保留空间中的库高速缓冲的碎片产生的。提交下的查询:
           SELECT free_space, avg_free_size,used_space,avg_used_size,request_failures, last_failure_size FROM v$shared_pool_reserved;
        如果:REQUEST_FAILURES > 0 并且LAST_FAILURE_SIZE > SHARED_POOL_RESERVED_MIN_ALLOC
           那么ORA-04031 错误就是因为共享池保留空间缺少连续空间所致。
           要解决这个问题,可以考虑加大SHARED_POOL_RESERVED_MIN_ALLOC 来降低缓冲进共享池保留空间的对象数目,并增大 SHARED_POOL_RESERVED_SIZE 和SHARED_POOL_SIZE 来加大共享池保留空间的可用内存。  
          如果:REQUEST_FAILURES > 0 并且LAST_FAILURE_SIZE < SHARED_POOL_RESERVED_MIN_ALLOC
    或者REQUEST_FAILURES 等于0 并且LAST_FAILURE_SIZE < SHARED_POOL_RESERVED_MIN_ALLOC
         那么是因为在库高速缓冲缺少连续空间导致ORA-04031 错误  
         第一步应该考虑降低SHARED_POOL_RESERVED_MIN_ALLOC 以放入更多的对象到共享池保留空间中并且加大SHARED_POOL_SIZE。


       

  • 相关阅读:
    留言板
    文件操作1
    JQUERY与JS的区别
    PHP 练习租房
    PHP 投票练习
    PHP,单项查询及多项查询
    PHP 增删改查 import!!
    PHP 数据访问
    PHP 对象及其三大特性
    正则表达式和数组
  • 原文地址:https://www.cnblogs.com/lanzi/p/1935358.html
Copyright © 2011-2022 走看看