ORA-12853 / ORA-4031 or ORA-4030 on Instance Startup With Increased SGA_MAX_SIZE_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 8286 | 回复: 0   主题: ORA-12853 / ORA-4031 or ORA-4030 on Instance Startup With Increased SGA_MAX_SIZE        下一篇 
匿名用户
发表于: IP:您无权察看 2012-6-6 14:28:39 | [全部帖] [楼主帖] 楼主

适用版本:Oracle Server - Enterprise Edition - Version: 10.2.0.3 and later [Release: 10.2 and later ]
数据库启动失败源于SGA_MAX_SIZE参数从900MB增加值1200MB
错误1:当没有设置大池参数时

ORA-04030: out of process memory when trying to allocate 32 bytes (sql area,tmp)


报错ORA-04030:当试图分配32bytes时进程内存溢出
错误2:当设置有大池参数时

ORA-12853: insufficient memory for PX buffers: current 0K, max needed 354288K


报错ORA-12853:缓冲区内存不足:当前OK,最大需要354288K

ORA-04031: unable to allocate 21544 bytes of shared memory ("large pool","unknown object","largepool","PX msg pool")


报错ORA-04031:无法分配21544 bytes共享内存(“大池”,“未知对象”,“大池”,“PX MSG池”)

尝试修改实例SGA最大值从900MB到1200MB,但由于CPU_COUNT参数过高和增加粒度大小引起错误4031或者4030
oracle内存大小取决于CPU_COUNT参数中最小缓冲区大小

10g : max (CPU_COUNT, number of processor groups) * max(Granule size, 4MB)
11g : max (4MB * CPU_COUNT, Granule size * number of processor groups)


当参数PARALLEL_AUTOMATIC_TUNING 为真值(默认为真),大池被使用,否则共享池被用在这个区域。
o _PARALLEL_MIN_MESSAGE_POOL 参数可通过以下两种算法设置大小
1. CPU_COUNT*PARALLEL_MAX_SERVERS*1.5*(OS msg bufr size)
2. CPU_COUNT*5*1.5*(OS message size)
* _PARALLEL_MIN_MESSAGE_POOL参数可根据算法的内部因素设置大小,额外的2MB给共享池为每个cpu_count参数

粒度大小设置
如果SGA_MAX_SIZE参数设置超过1GB,粒度大小通常会从4MB增长到16MB
SGA组件例如共享池用多种增加粒度大小,所以每个组件往往需要更多的内存。尤其是,最低缓冲区要增加一倍,
这样会导致较小的内存给其他组件使用,从而出现错误ORA-4031。
例Sun Solaris T5XXX has threaded CPUs有2个物理CPU、8核心、每个核心8线程,Oracle评估CPU_COUNT参数值为128。
当SGA_MAX_SIZE=900MB时,高速缓冲区大小最低等于512MB,共享池可以用338MB
当SGA_MAX_SIZE=1200MB时,高速缓冲区大小最低等于1024MB,共享池可以用176MB,所以报ORA-4031错误即使SGA_MAX_SIZE参数大小较大。
因此Oracle开发审查通过8316255个错误的情况。这个错误被关闭不是一个错误。
开发表明,你必须谨慎调整cpu_count参数的值:
“......我们强烈建议您不要调整cpu_count参数,因为它会影响其他功能和Oracle参数。
例如,每个CPU处理能力可能不足以维持高负载(如高速缓存融合消息)。此外,一些等相关参数如GC锁存器将根据设定。”
在11g中修复了一些类似的个案,应有助于缓解CUP_COUNT有关缓冲区高速缓存大小的问题。
在10G的解决办法可以手动设置DB_CACHE_SIZE和其他SGA组件,并删除了ASMM(将SGA_TARGET参数设置为0)功能。



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论