在linux下安装oracle,需要配置一些内核参数,这些参数也是oracle正常工作所必须的。
下面以我测试机器为例介绍这几个参数。
我的测试机器是redhat liunx 4.8 32位的系统,1GB的内存。
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144

在linux上安装oracle设置内核参数的说明_oracle

kernel.shmall = 2097152
该参数表示系统任意时刻可以分配的所有共享内存段的总和的最大值(以页为单位).
其值应不小于shmmax/page_size.缺省值就是2097152,如果服务器上运行的所有实例的
SGA总和不超过8GB(通常系统可分配的共享内存的和最大值为8GB),通常不需要修改.

kernel.shmmax = 2147483648
该参数定义了共享内存段的最大尺寸(以字节为单位)。
其值应>=sga_max_size初始化参数的大小,否则SGA由多个内存段构成,效率降低,
还要不小于物理内存的一半,默认情况下在32位x86系统中,Oracle SGA最大不能超过1.7GB.
缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G

kernel.shmmni = 4096
这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096.
此值也是在系统中可以启动的Oracle实例的最大数量,通常不需要更改,
因为显然在生产环境下,一个服务器上同时启动的实例个数达不到这个数量.

kernel.sem = 250 32000 100 128 // 表示设置的信号量
fs.file-max = 65536 // 表示一个进程可以打开的文件句柄的最大数量.
net.ipv4.ip_local_port_range = 1024 65000 //专用服务器模式下与用户进程通信时分配给用户的端口区间

net.core.rmem_default=262144 // 默认接收缓冲区大小
net.core.rmem_max=262144 // 接收缓冲区最大值
net.core.wmem_default=262144 // 默认的发送缓冲区大小
net.core.wmem_max=262144 // 发送缓冲区最大值
以上四个值的设置是Oracle安装时推荐的.
修改好内核参数后,执行如下命令使新的设置生效
/sbin/sysctl -p