知识大全 如何解决ORA-04031错误(1)

Posted

篇首语:博观而约取,厚积而薄发。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何解决ORA-04031错误(1)相关的知识,希望对你有一定的参考价值。

如何解决ORA-04031错误(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  当我们在共享池中试图分配大片的连续内存失败的时候 Oracle首先清除池中当前没使用的所有对象 使空闲内存块合并 如果仍然没有足够大单个的大块内存满足请求 就会产生ORA 错误     当这个错误出现的时候你得到的错误解释信息类似如下:     unable to allocate %s bytes of shared memory (\\ %s\\ \\ %s\\ \\ %s\\ \\ %s\\ )   // *Cause: More shared memory is needed than was allocated in the shared  // pool   // *Action: If the shared pool is out of memory either use the  // dbms_shared_pool package to pin large packages   // reduce your use of shared memory or increase the amount of  // available shared memory by increasing the value of the  // INIT ORA parameters shared_pool_reserved_size and  // shared_pool_size   // If the large pool is out of memory increase the INIT ORA  // parameter large_pool_size      共享池相关的实例参数    在继续之前 有必要理解下面的实例参数:    SHARED_POOL_SIZE    这个参数指定了共享池的大小 单位是字节 可以接受数字值或者数字后面跟上后缀 K 或 M K 代表千字节 M 代表兆字节     SHARED_POOL_RESERVED_SIZE    指定了为共享池内存保留的用于大的连续请求的共享池空间 当共享池碎片强制使 Oracle 查找并释放大块未使用的池来满足当前的请求的时候 这个参数和SHARED_POOL_RESERVED_MIN_ALLOC 参数一起可以用来避免性能下降     这个参数理想的值应该大到足以满足任何对保留列表中内存的请求扫描而无需从共享池中刷新对象 既然操作系统内存可以限制共享池的大小 一般来说 你应该设定这个参数为 SHARED_POOL_SIZE 参数的 % 大小     SHARED_POOL_RESERVED_MIN_ALLOC 这个参数的值控制保留内存的分配 如果一个足够尺寸的大块内存在共享池空闲列表中没能找到 内存就从保留列表中分配一块比这个值大的空间 默认的值对于大多数系统来说都足够了 如果你加大这个值 那么Oracle 服务器将允许从这个保留列表中更少的分配并且将从共享池列表中请求更多的内存 这个参数在Oracle i 和更高的版本中是隐藏的 提交如下的语句查找这个参数值: SELECT  nam ksppinm NAME val ksppstvl VALUE  FROM x$ksppi nam x$ksppsv val  WHERE nam indx = val indx AND nam ksppinm LIKE %shared%   ORDER BY ;     g 注释 Oracle g 的一个新特性叫做 自动内存管理 允许DBA保留一个共享内存池来分shared pool buffer cache java pool 和large pool 一般来说 当数据库需要分配一个大的对象到共享池中并且不能找到连续的可用空间 将自动使用其他SGA结构的空闲空间来增加共享池的大小 既然空间分配是Oracle自动管理的 ora 出错的可能性将大大降低 自动内存管理在初始化参数SGA_TARGET大于 的时候被激活 当前设定可以通过查询v$sga_dynamic_ponents 视图获得 请参考 g管理手册以得到更多内容      诊断ORA 错误    注 大多数的常见的 ORA 的产生都和 SHARED POOL SIZE 有关 这篇文章中的诊断步骤大多都是关于共享池的  对于其它方面如Large_pool或是Java_pool 内存分配算法都是相似的 一般来说都是因为结构不够大造成     ORA 可能是因为 SHARED POOL 不够大 或是因为碎片问题导致数据库不能找到足够大的内存块     ORA 错误通常是因为库高速缓冲中或共享池保留空间中的碎片 在加大共享池大小的时 候考虑调整应用 使用共享的SQL 并且调整如下的参数     SHARED_POOL_SIZE   SHARED_POOL_RESERVED_SIZE   SHARED_POOL_RESERVED_MIN_ALLOC     首先判定是否ORA 错误是由共享池保留空间中的库高速缓冲的碎片产生的 提交下的查询     SELECT free_space avg_free_size used_space avg_used_size request_failures   last_failure_size  FROM v$shared_pool_reserved;    如果:    REQUEST_FAILURES > 并且 LAST_FAILURE_SIZE > SHARED_POOL_RESERVED_MIN_ALLOC  那么ORA 错误就是因为共享池保留空间缺少连续空间所致 要解决这个问题 可以考虑加大SHARED_POOL_RESERVED_MIN_ALLOC 来降低缓冲进共 享池保留空间的对象数目 并增大 SHARED_POOL_RESERVED_SIZE 和 SHARED_POOL_SIZE 来加大共享池保留空间的可用内存     如果     REQUEST_FAILURES > 并且 LAST_FAILURE_SIZE < SHARED_POOL_RESERVED_MIN_ALLOC    或者    REQUEST_FAILURES 等于 并且 LAST_FAILURE_SIZE < SHARED_POOL_RESERVED_MIN_ALLOC    那么是因为在库高速缓冲缺少连续空间导致ORA 错误     第一步应该考虑降低SHARED_POOL_RESERVED_MIN_ALLOC 以放入更多的对象到共享池保留空间中并且加大SHARED_POOL_SIZE      解决ORA 错误    ORACLE BUG    Oracle推荐对你的系统打上最新的PatchSet 大多数的ORA 错误都和BUG 相关 可以通过使用这些补丁来避免     下面表中总结和和这个错误相关的最常见的BUG 可能的环境和修补这个问题的补丁 cha138/Article/program/Oracle/201311/17548

相关参考

知识大全 网路连不上是什么问题,我家是笔记本直接插网线的,连线网路时显示错误651.怎么解决

网路连不上是什么问题,我家是笔记本直接插网线的,连线网路时显示错误651.怎么解决?错误程式码651意思为您的调变解调器(或其它连线装置)报告了一个错误。既未找到指定的埠。解决办法:1、远端访问记事簿

知识大全 ORA-006002662错误解决

ORA-006002662错误解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果我们的当前

知识大全 如何解决ora-60012700错误问题

简单描述了解决过程对类似错误起一个抛砖引玉的作用    一问题现象  在报警文件中从早上开始一直到处理问题时出现大量的ORA错误通过TRC文

知识大全 ORA-12714错误解决总结

ORA-12714错误解决总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  目前数据库升级到了

知识大全 ORA-04098错误解决方法

ORA-04098错误解决方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库版本平台SO

知识大全 ORA-00600 [2662]错误解决过程

ORA-00600[2662]错误解决过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库

知识大全 解决SQL Server 5120 5123错误

解决SQLServer51205123错误  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  原因是

知识大全 电信网络电视itv出现错误代码1302后重启机顶又恢复正常了 怎么解决

电信网络电视itv出现错误代码1302后重启机顶又恢复正常了怎么解决1、EPG主页地址没有通过有效性检测。2、针对EPG主页地址的域名解析失败。3、多次重试连接EPG主页地址失败,无法与其建立连接。故

知识大全 ORA-600(17069)错误的解决过程

ORA-600(17069)错误的解决过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天在

知识大全 Eclipse导入工程错误的解决方法

Eclipse导入工程错误的解决方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n