即最大8G(2097152*4/1024/1024),(在调整SGA时需要注意,SGA大小设置不可超过该值),根据系统内存大小和使用的不同可以参考如下:设置的一般规律
kernel.shmall = 8G/4k=8388608k/4k=2097152 ---内存8G
kernel.shmall = 16G/4k=16777216k/4k=4194304 ---内存16G
kernel.shmall = 32G/4k=33554432k/4k=8388608 ---内存32G
(RedHat linux系统中页大小为4096即4K,实际环境以getconf PAGE_SIZE结果为准)
kernel.shmmni
shmmni ��系统共享内存段的最大数量
oracle设置默认值为4096,一般是足够用了,不需要调整
文件句柄数的相关内核参数设置
fs.file-max
fs.file-max指系统能够打开最大的文件句柄数
oracle建议设置为65536,一般不用修改
信号的相关内核参数设置
kernel.sem
kernel.sem是指 semmsl,semmns,semopm,semmni这4个参数
semmsl 指每个线号集的最大信号数,Oracle建议是设置为oracle的最大进程数+10
semmni 指整个系统的信号集的最大数量
semmns 指整个系统的信号总数,也就是semmni*semmsl的结果
semopm 指每个semop系统调用可以执行的信号操作的最大数量
oracle默认设置
semmsl=250
semmns=3200
semopm=100
semmni=128
即kernel.sem= 250 3200 100 128
例:在oracle ora.init文件参数中设置PROCESSES参数为5000
则semmsl=5010,semmni=128,semmns=semmsl* semmni=641280
另外semopm建议设置等于semmsl值即5010
那么kernel.sem=5010 641280 5010 128
网络相关的内核参数设置
net.core.rmem_default
net.core.rmem_default 指网络套接字的默认接收缓冲区的大小,oracle建议设置为265K即262144
net.core.rmem_max
net.core.rmem_max 指网络套接字的最大接收缓冲区的大小,oracle10g及以前版本建议设置为256k即262144
oracle11g建议设置为4M 即4194304
net.core.wmem_default
net.core.wmem_default指网络套接字的默认发送缓冲区的大小,oracle建议设置为265K即262144
net.core.wmem_max
net.core.wmem_max 指网络套接字的最大发送缓冲区的大小,oracle10g及以前版本建议设置为256k即262144
oracle11g建议设置为1M即1048576
net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range ,指本地的允许打开随机端口范围
oracle10g前建议端口范围为1024 65000,oracle11g建议端口范围为:
65500 并忽略oracle安装程序任何关于这个参数的警告
Asynchronous I/O相关的内核参数设置
fs.aio-max-nr
fs.aio-max-nr 指系统允许的最大的异步IO请求大小
oracle默认设置为1M即1048576,一般不用更改
修改前最后先备份一下/etc/sysctl.conf,以防万一。
[root@getoraclelnx01 ~]# cp /etc/sysctl.conf /etc/sysctl.conf.bak
[root@getoraclelnx01 ~]# vi /etc/sysctl.conf 添加或修改下面参数
kernel.shmmax = 68719476736
kernel.shmall = 6029312
kernel.shmmni = 4096
kernel.sem =250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
net.ipv4.ip_local_port_range =9000 65500
fs.file-max=65536
fs.aio-max-nr=1048576
kernel.shmall =physical RAM size / pagesize (getconf PAGESIZE) -- If the defaults are greater then leave it.
kernel.shmall = 内存大小/4k=23G*1024*1024/4k = 6029312
kernel.shmmax = 20*1024*1024=20971520 而默认的为68719476736,那么使用默认值
修改完成后保存,然后运行sysctl -p 命令使之生效
4.5 设置用户限制
在/etc/security/limits.conf中添加如下配置。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
Add the following line to the "/etc/pam.d/login" file,
if it does not already exist.
session required /lib/security/pam_limits.so
session required pam_limits.so
Add the following to
/etc/profile if Oracle user will use the bash shell.
if [ $USER = "oracle" ]; then
ulimit -u 16384
ulimit -n 65536
fi
4.6 配置环境变量
首先切换到oracle账户 ,编辑修改主目录下 .bash_profile