您现在的位置: 天下网吧 >> 网吧天地 >> 天下码农 >> 微信小程序 >> 正文

Oracle和SUN Solaris内核参数

2011-4-24vczx佚名

  本文描述了Sun Solaris上运行Oracle数据库所需要设置的一些内核参数。

  一些预备知识

  shared memory:(共享内存段)

  一个内存区域,可以被不同的进程读取。Oracle使用它来构成SGA。Oracle使用以下三种方法来创建一个SGA区:

  1.使用单个共享内存段。
  2.使用连续多个共享内存段。
  3.使用多个不连续共享内存段。

  Oracle优先使用的第一种方法,如果成功,则继续初始化,不成功则使用第二种方法,再不成功则使用第三种方法。如果再不成功,则初始化失败,Oracle报告错误代码。

  Semaphore:(信号量)

  可以看作一个标记。可以有On和Off两种状态。Oracle使用semaphores来实现服务器进程对SGA区的存取控制。

  Shared memory 和semaphore 是Oracle在Unix上运行的重要资源。如果Oracle 实例得不到所需要的资源,实例启动就会失败。

  参数:

  对于运行一个Oracle实例的Solaris系统,改变/etc/system文件中的一些关于共享内存的参数,以使Oracle实例可以正常运行。如果有多个实例的话,还需根据下面方法重新计算某些值。

  共享内存:

  shmmax

  含义:这个设置并不决定究竟Oracle数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数目。这个设置也不影响操作系统的内核资源。max shared memory segment size (SHMMAX) bytes

  设置方法:0.5*物理内存

  例子:Set shmsys:shminfo_shmmax=10485760

  shmmin

  含义:共享内存的最小大小。

  设置方法:一般都设置成为1。

  例子:Set shmsys:shminfo_shmmin=1:

  shmmni

  含义:系统中共享内存段的最大个数。

  例子:Set shmsys:shminfo_shmmni=100

  shmseg

  含义:每个用户进程可以使用的最多的共享内存段的数目。

  例子:Set shmsys:shminfo_shmseg=20:

  信号量:

  semmni

  含义:系统范围内设置信号量集的最大数目. UNIX将信号量分配到个信号量集.分配的信号量数目的范围为1到semmsl参数所设置的值.

  设置方法:固定

  例子:Set semsys:seminfo_semmni=100

  semmsl:

  含义:一个set中semaphore的最大个数。系统范围内信号量集中信号量的数目.
  
  设置方法:设置成为10+所有Oracle实例的InitSID.ora中最大的Processes的值。

  例子:Set semsys:seminfo_semmsl=200

  semmns

  含义:系统中semaphores的最大个数。

  设置方法:这个值可以通过以下方式计算得到:各个Oracle实例的initSID.ora里边的processes的值的总和(除去最大的Processes参数)+最大的那个Processes×2+10×Oracle实例的个数。

  例子:Set semsys:seminfo_semmns=200

  semopm

  set semsys:seminfo_semopm=100

  semvmx

 set semsys:seminfo_semvmx=32767

  改变了/etc/system里边以上参数以后,重新启动计算机:
$reboot

  然后检查当前的参数:
$sysdef -I

  如果系统参数仍旧没有改变得话,使用以下命令:
$modload /kernel/sys/shmsys

欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛 https://bbs.txwb.com

关注天下网吧微信/下载天下网吧APP/天下网吧小程序,一起来超精彩

本文来源:vczx 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系邮箱:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧 网吧天下