sga_target设置大于100G遇到的一个bug ORA-00064: object is too large

主机内存256G,sga_target准备设置为160G,DBCA创建数据库时一直报错ORA-00064: object is too large to allocate on this O/S (1,15429280)

直接使用DBCA默认参数把库建好后,再次使用命令来修改,报错依旧。经查,参考文档Database startup can fail with ORA-00064 Errors with huge sga_target of over 40Gig (文档 ID 886312.1),也就是与SGA Granule Size相关,设置_ksmg_granule_size=33554432解决此问题。

文档部分内容:

CAUSE

The cause of this problem has been identified in Bug:5051962,
which has been closed as not-a-bug. It is caused by the granule size needed for the new SGA size to be different than the one currently in use by the instance at the time the ALTER SYSTEM SET SGA_TARGET command is run.

SOLUTION

This is expected behaviour: the granule size is set based on the size of the SGA. If you set a SGA parameter (such as SGA_TARGET) to a value which exceeds the value of the granule size that was calulcated at instance startup, then you must set
the _ksmg_granule_size instance parameter as well to choose a larger granule size. As this parameter is not dynamically changeable, an instance restart is required.

The following table, shows granule sizes for specific SGA sizes and releases of Oracle:

SGA size 10g granule size 11g granule size 11g granule size

with fix 8813366 installed

<= 1GB 4MB 4MB 4MB
1GB - 4GB 16MB 16MB 16MB
4GB - 8GB 16MB 64MB 16MB
8GB - 16GB 16MB 64MB 32MB
16GB - 32GB 16MB 256MB 64MB
32GB - 64GB 16MB 256MB 128MB
64GB - 128GB 16MB 512MB 256MB
128GB - 256GB 16MB 512MB 512MB
> 256GB 16MB 512MB 512MB

See also document:947152.1 for details
on the granule size and its impact.

The following SQL statement can be used to check the actual granule size in use by the instance:

SQL> select bytes from v$sgainfo where name like ‘Granule Size‘;

So in order to implement the solution for the issue at hand, either:

  1. set SGA_TARGET to a value less than or equal to the previous one, or:
  2. set _ksmg_granule_size to a higher value (in this case the value was set to 32MB). When using a text parameter file, add the following parameter:

    _ksmg_granule_size=33554432

    When using a server parameter file, issue:

    alter system set "_ksmg_granule_size"=33554432 scope=spfile;

    In either case, restart the instance for the changes to take effect.

时间: 2024-10-31 22:23:07

sga_target设置大于100G遇到的一个bug ORA-00064: object is too large的相关文章

医生加号页改版,就一个Bug, 看医生工作台一期需求

8/8日报 分级埋点: [MobClick event:UmengPagePlusDoctor attributes:@{@"page":@"plusPage"}]; 弹层适配小屏幕, 标题比较长,太靠近左右两边了 使用中文标点符号 学习关于保险,超过50岁,重疾险就不好买了,这个"不好买”有两层意思,第一层,有的保险直接不卖给50岁以上的人,第二层,50岁以上的人重疾险非常昂贵,而且赔付的钱最多十万. 保险应该趁年轻买 看知乎,李元霸推荐的两款重疾险,父

C#.Net ComboBox控件设置DropDownList之后背景颜色问题,以及发现的微软的一个BUG

先说背景颜色问题怎么处理. C#.Net WinForm中如果设置ComboBox的DropDownStyle为DropDownList,控件背景色会变成灰色,并且这个时候ComboBox控件的BackColor背景色属性则不会起作用,用户体验不好,可能以为是不能点击的,在不引用第三方控件库,和不重绘控件的情况下,我们可以修改下ComboBox的FlatStyle属性使用户体验提升. 并且FlatStyle属性修改后可以设置BackColor属性 微软的小BUG是 先设置DropDownStyl

Win10系统菜单打不开问题的解决,难道是Win10的一个Bug ?

Win10左下角菜单打不开,好痛苦,点击右下角的时间也没反应,各种不爽,折磨了我好几天,重装又不忍心,实在费劲,一堆开发环境要安装,上网找了很多方法都不适用.今天偶然解决了,仔细想了下,难道是Win10的一个Bug? 1.问题和现象 右下角菜单点不开,下面的状态栏的右键也没有反应.时间日期也点不开,音频喇叭同样点不开....各种烦人,百度一堆都无果.... 说明:Win10是正式版,已激活:杀毒也全盘扫描过,因为电脑是开发和办公用,几乎不上其他网站,所以中毒的可能性几乎为0. 2.解决方法 晚上

Universal-Image-Loader的一个BUG

使用UIL的内置圆角图片的功能时,发现一个BUG,就是它会拉伸图片,造成图片失真.费了一下午的功夫,重写了RoundedBitmapDisplayer,总算解决这个问题. 代码如下: public class RoundedBitmapDisplayer implements BitmapDisplayer { protected final int cornerRadius; protected final int margin; public RoundedBitmapDisplayer(i

memory_limit的一个bug | 风雪之隅

原文:memory_limit的一个bug | 风雪之隅 27 Nov 09 memory_limit的一个bug 作者: Laruence( ) 本文地址: http://www.laruence.com/2009/11/27/1164.html 转载请注明出处 PHP 5.2x中, 由于错误的选用了zend_atoi, 导致memory_limit不能设置为超过4G的值. 今天同事分享给我一个问题(thans to yanmi), 一段代码(PHP 5.2.11 Linux/X86_64),

亚马逊AWS学习——多网络接口下配置EC2实例连接公网的一个“bug”

之前在<亚马逊AWS学习--EC2的自定义VPC配置>这篇文章中讲述了如何设置自定义VPC并使自己的EC2实例能够连接公网.本篇说一下连接公网时会出现的一个小问题. 如题所示,在一个EC2实例具有多个网络接口的环境下,如果为其配置公网连接会有一个"bug".其实也不能说是"bug",而是AWS网络环境的限制. 1. 主网络接口 我们知道,很多时候我们的一台主机需要有多个网络接口,以使其同时架设在不同的网络中.EC2实例创建时会有一个主网络接口,默认描述为

Curl的毫秒超时的一个”Bug”

Curl的毫秒超时的一个”Bug” 2015-12-15 PHP老杨 最近我们的服务在升级php使用的libcurl, 期望新版本的libcurl支持毫秒级的超时, 从而可以更加精细的控制后端的接口超时, 从而提高整体响应时间. 但是, 我们却发现, 在我们的CentOS服务器上, 当你设置了小于1000ms的超时以后, curl不会发起任何请求, 而直接返回超时错误(Timeout reached 28). 原来, 这里面有一个坑, CURL默认的, 在Linux系统上, 如果使用了系统标准的

由一个bug引出java包装类型

工作中遇到过一个bug,用两个POJO的 Integer 字段 做 == 判断,明明"数值"相等结果返回 false.检查代码,调试,看源码搞了好久,才知道是Java包装类理解不够惹的祸. 为了弄清楚其中的本质,先上一段代码: 1 int a = 5; 2 Integer b = 5; 3 Integer c = Integer.valueOf(5); 4 Integer d = Integer.valueOf(5); 5 Integer e = new Integer(5); 6 7

(知识分享)软硬件调试九法:第九条规则 如果你不修复一个bug,它将永远 存在

1.查证问题确已被修复 如果遵循了“制造失败”这条规则,就知道如何验证你确实修复了问题.无论问题和修复看起来多么明显,你都无法保证修复是有效的,直到做了测试并验证. 2.查证确实你的修复措施解决了问题 如果你取消这个修复,系统再次出现失败,再应用这个修复,问题消失,才能够证明你确实修复了问题.这样做的原因是,在调试期间,往往会改变一些不属于修复的地方,有时这些改变会隐藏问题,如果没有意识到这一点,发现测试起作用了,就高高兴兴的回家了,因为你做的修复和问题消失毫无关系,因此修复方案到达客户后,可能