数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

SunSolaris运行Oracle数据库所需的内核参数


发布日期:2018年02月26日
 
SunSolaris运行Oracle数据库所需的内核参数

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

一些预备知识

shared memory(共享内存段)

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

使用单个共享内存段

使用连续多个共享内存段

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

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

设置方法*物理内存

例子Set shmsys:shminfo_shmmax=

shmmin

含义共享内存的最小大小

设置方法一般都设置成为

例子Set shmsys:shminfo_shmmin=

shmmni

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

例子Set shmsys:shminfo_shmmni=

shmseg

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

例子Set shmsys:shminfo_shmseg=

信号量:

semmni

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

设置方法固定

例子Set semsys:seminfo_semmni=

semmsl:

含义一个set中semaphore的最大个数系统范围内信号量集中信号量的数目

设置方法设置成为+所有Oracle实例的InitSIDora中最大的Processes的值

例子Set semsys:seminfo_semmsl=

semmns

含义系统中semaphores的最大个数

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

例子Set semsys:seminfo_semmns=

semopm

set semsys:seminfo_semopm=

semvmx

set semsys:seminfo_semvmx=

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

$reboot

然后检查当前的参数

$sysdef I

如果系统参数仍旧没有改变得话使用以下命令

$modload /kernel/sys/shmsys

上一篇:Oracle初始参数中三个License的设置

下一篇:动态SQL和PL/SQL的EXECUTE IMMEDIATE选项