首页 > 维修 > 主板 > 正文

unix数据库安装前共享内存参数设置问题总结

2020-06-20 11:36:01
字体:
来源:转载
供稿:网友

我们知道,数据库是与操作系统紧密相关的软件,所以很多数据库功能的实现均需要操作系统支持,尤其是现在主流数据库都在运行中创建大容量的缓冲内存,提供数据库的查询或操作的命中率,那么操作系统的内存无疑是一个很大的瓶颈,在此我们更多的是讨论,在主流的unix平台系统中主要是hp-ux和solaris安装数据库需要设置的共享内存的内核参数问题,适用于所有的RDBMS数据库。

基本参数介绍:

shared memory:共享内存段:

  一个内存区域,可以被不同的进程读取。

  1. 使用单个共享内存段。

  2. 使用连续多个共享内存段。

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

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

Semaphore:

可以看作一个标记。可以有On和Off两种状态。database使用semaphores来实现服务器进程对共享缓冲内存的存取控制。

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

其细化具体参数项的含义和字段解释如下:

shmmax

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

设置方法:通常保证0.5*物理内存,各unix平台的参数名称:

solaris:shminfo_shmmax

[size=3] [size=2]HP-UX[/size]:shnmax[/size]

  shmmin

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

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

  shmmni

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

solaris : shminfo_shmmin

HP-UX:shmmin

 shmseg

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

solaris:shminfo_shmseg

HP-UX:shmseg

  semmni

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

  设置方法:把这个变量的值设置为这个系统上的所有database的实例的相关processes的那个值加10。

solaris: seminfo_semmni

HP-UX:semni (等于nproc)

  semmns

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

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

  solaris:seminfo_semmns

HP-UX:semmns

semmsl:

含义:一个set中semaphore的最大个数。

设置方法:设置成为10+所有database最大的Processes的值。

solaris:seminfo_semmsl

HP-UX:semmsl

至于具体的修改在solaris一般修改/etc/system文件,solaris 10版本或以上动态修改projmod,HP-UX可以通过/usr/sbin/kcweb -F[font=宋体][size=10.5pt]命令修改,也可以通过sam修改,但是修改后请记住需要重启系统以让修改生效。[/size][/font]

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表