ehxz 发表于 2007-3-25 17:03:06

ORACLE安装参数说明

<font size="2">关于Linux 下kernel&#46;shmmax 的设置问题<br /><br /></font><p><font face="verdana, arial, helvetica" size="2"><span class="javascript" id="text4300689" style="FONT-SIZE: 12px">下面是Oracle 文档上的解释, <a href="http://download-west&#46;oracle&#46;com/docs/html/A96167_01/pre&#46;htm#sthref107">http://download-west&#46;oracle&#46;com/docs/html/A96167_01/pre&#46;htm#sthref107</a></span></font></p><p><font face="verdana, arial, helvetica" size="2"><span class="javascript" style="FONT-SIZE: 12px"><br />SHMMAX Available physical memory Defines the maximum allowable size of one shared memory segment&#46; <br /><br />The SHMMAX setting should be large enough to hold the entire SGA in one shared memory segment&#46; A low setting can cause creation of multiple shared memory segments which may lead to performance degradation&#46; <br /><br /><br />shmmax 的含义是单个共享内存段的最大尺寸, 设置shmmax=1G,sga分配了1&#46;2G,当启动实例的时候就分配 2 块共享内存给Oracle &#46;<br />如果物理内存是 2 G, 假设这台DB Server上还有Apache 在运行,那么shmmax 中设置的内存也会被Apache 来使用,那么分配的 2 块共享内存段给Oracle 是否就是 2 * 1G , 还是仅仅满足 SGA需求的 1&#46;2 G就停止分配 , 其他的内存的一部分分配给Oracle PGA 和软件 Apache 来使用 ?</span></font></p><font face="verdana, arial, helvetica" size="2">答:<br /></font><font face="verdana, arial, helvetica" size="2"><span class="javascript" id="text4300814" style="FONT-SIZE: 12px">看Oracle Document 说法 , 当需要分配多个 ( creation of multiple shared memory segments ) 共享内存段的时候会导致性能下降 。 <br />如果偶尔分配需要 2 个共享内存段 ,性能应该不会受到太大影响吧 。</span></font> <br /><br />shmmax内核参数定义单个共享内存段的最大值,如果该参数设置小于Oracle SGA设置,那么SGA就会被分配多个共享内存段。这在繁忙的系统中可能成为性能负担,带来系统问题。<br /><br /><span style="BACKGROUND-COLOR: rgb(255,0,0)">设置:</span><br /><span style="FONT-SIZE: 13px">一些资料说内存大过2g的,就按shmmax=shmall*1*1024(shmall=实际内存*1024) ,有的说大过2g的就按2g的算,shmall=2097152=2048*1024,shmmax=shmall*1*1024=2147483648<br /><br />现在的情况是我按第一种说法安装9i,我的服务器内存是8G的设,到最后报ORA-27012<img src="http://bbs2&#46;chinaunix&#46;net/images/smilies/icon_surprised&#46;gif" align="absMiddle" border="0" />ut of memory 错误,数据库无法启动,而按第二种就没事,请高手指点,这个值到底怎么设置合理?<br /><br />答:<br /></span><span style="FONT-SIZE: 13px">对于32bit的linux来说,不管实际的内存有多大,shmmax的最大值不应该超过 4294967295。<br /><br />对于rh3,正常情况下oracle的sga只能开到1&#46;7G左右(即使你有8G的memory),即使经过某些调整,如Hugetlb,最多也只能将SGA<3G&#46;<br /><br />oracle在设置sga的时候,会参考系统的内核参数,如shmmax等。<br /><br /><br /></span><span id="fontzoom"><span style="COLOR: rgb(255,255,255); BACKGROUND-COLOR: rgb(0,0,255)">配置Linux的内核参数</span><br />#vi/etc/sysctl&#46;conf<br />#ForOracle<br />kernel&#46;shmmax=1073741824(改成服务器内存的一半,我的服务器是1G,所以都算进去了,1024*1024*1024)<br />kernel&#46;shmmni=4096<br />kernel&#46;shmall=1073741824<br />kernel&#46;sem=25032000100128<br />fs&#46;file-max=65536<br />net&#46;ipv4&#46;ip_local_port_range=102465000<br /><br />修改/etc/sysctl&#46;conf文件。其中的几个参数的含义是:<br />kernel&#46;shmmax表示最大共享内存,如果小的话可以按实际情况而定,一般为物理内存的一半,不过我的虚拟机只有256M,所以就全部算进去了。<br />shmmni表示最小共享内存固定4096KB<br />shmall表示所有内存大小<br />sem4个参数依次是SEMMSL:每个用户拥有信号量最大数,SEMMNS:系统信号量最大数,SEMOPM:每次semopm系统调用操作数,SEMMNI:系统辛苦量集数最大数。这4个参数为固定内容大小。<br />file-max固定大小65536<br />ip_local_port_range表示端口的范围,为指定的内容。</span>
页: [1]
查看完整版本: ORACLE安装参数说明