ORACLE内核参数详解..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ORACLE内核参数详解.

ORACLE内核参数 服务器内存为4G的情况下? 修改/etc/sysctl.conf文件 (ROOT账户)? kernel.shmmax = 2147483648? //公式:2G*1024*1024*1024=2147483648(字节)? //表示最大共享内存,如果小的话可以按实际情况而定,一般为物理内存的一半(单位:字节)? kernel.shmmni=4096? //表示最小共享内存固定4096KB(由于32位操作系统默认一页为4K)? kernel.shmall=1048576? //公式:4G*1024*1024/4K = 1048576(页)? //表示所有内存大小(单位:页)? kernel.sem=250 32000 100 128? //4个参数依次是SEMMSL:每个用户拥有信号量最大数,SEMMNS:系统信号量最大数,SEMOPM:每次semopm系统调用操作数,SEMMNI:系统辛苦量集数最大数。这4个参数为固定内容大小? fs.file-max=65536? //file-max固定大小65536? net.ipv4.ip_local_port_range=1024 65000? //ip_local_port_range表示端口的范围,为指定的内容? 以上步骤做完执行?/sbin/sysctl -p?使内核生效? 验证参数(root账户执行):? #/sbin/sysctl -a | grep shm? #/sbin/sysctl -a | grep sem? #/sbin/sysctl -a | grep file-max? #/sbin/sysctl -a | grep ip_local_port_range ????unix操作系统中Semaphores问题只是针对和oracle相关问题作一些解释。对于信号量和共享内存段参数在不同的系统中可能有不同的参数对应,具体你去查询对应的OS文档。 在解决这类问题的时候我发现大部分问题都是因为在安装oracle时没有仔细阅读针对指定OS的安装说明造成安装实例失败,一般oracle的官方文档都详细说明在对应操作系统上如何设置这些内核参数。还有就是因为其他原因OS管理人员调整了参数,但是没有通知DBA,一旦oracle崩溃再次重新启动的时候就可能因为新的内核参数不合适而无法启动。?如果是oracle意外停机之后重新启动不成功,并出现类似ora-27123的错误那么一定要询问是否有其他人修改过内核参数,有时候你没有修改并不代表其他人没有修改! ?1、与oracle相关的信号量和共享内存段参数 ???一般unix系统中和信号量相关的是三个参数SEMMNI SEMMSL SEMMNS。他们相互关联决定系统可以分配的信号量。Oracle使用信号量完成内部进程之间的通信。 ???关于共享内存段使用shmmx参数进行总体控制。它指定了系统可以分配的共享内存段最大大小,实际并没有分配那么多只是给出一个可以使用的最大限制。 ???对于类核参数的修改必须要重新启动系统之后才会生效。 2、出现信号量和共享内存段相关问题的情况 ?? oracle只有在startup nomount的时候才会请求os的这些资源,用于建立SGA和启动后台进程。 ???有些情况下因为oracle崩溃之后os没有清除oracle分配的SGA,也可能造成共享内存段不足,需要人工清除。 3、如何解决相关的问题 ???你可以简单的修改init参数减少oracle对共享内存段和信号量的需求。 ???对于控制信号量的三个参数SEMMNI SEMMSL SEMMNS?。最终可以使用的信号量由下面公式?提取?(semmsl * semmni)?或者?semmns中最小的值。 ????例如在linux下. 进入目录/proc/sys/kernel;用cat命令或more命令查看semaphore当前参数的值:? cat sem? 命令运行后将会出现如下的结果:? 250 32000 32 128? 其中, 250 是参数SEMMSL的值,32000是参数SEMMNS的值, 32是参数SEMOPM的值,而128则是参数SEMMNI的值。250*128=32000 对于oracle7需要信号量的设置等于init中processes的设置。对于8i 9i需要等于processes*2。 对于信号量参数的设定一定要小心,因为不正确的设置可能会让系统使用默认值。这个值一般比oracle系统要求的低。在HP unix上遇到过这样的问题,当时在参数配置的时候指定两个不同的sem-mni造成系统使用默认的设置。 对于共享内存段,系统的设置至少要等于SGA的大小。 ? Semaphores and Shared Mem

文档评论(0)

xznh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档