cat >>/etc/sysctl.conf =SGA(32Bit 系统是否支持到1.7G 以上SGA 需要注意) ,缺省为32M,
如果是64Bit 的Linux 操作系统,shmmax 设置为大于SGA_MAX_SIZE即可。
Ipcs -sa 可以看到共享内存段个数
kernel.shmmni =4096
//这个内核参数用于设置系统范围内共享内存段的最大数量。
kernel.shmmni----shmmni 内核参数是共享内存段的最大数量(注意这个参数不是shmmin,是shmmni, shmmin 表示内存段最小大小 ) 。shmmni 缺省值4096 。
此值也是在系统中可以启动的Oracle实例的最大数量,通常不需要更改,
因为显然在生产环境下,一个服务器上同时启动的实例个数达不到这个数量.
kernel.shmall = 2097152
//该参数表示系统任意时刻可以分配的所有共享内存段的总和的最大值(以页为单位).
kernel.shmall----kernel.shmall 参数是控制共享内存页数 。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB/4KB=4194304 (页),也就是64Bit 系统下16GB 物理内存,设置 kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax 参数调整到 16G 了,同时可以修改SGA_MAX_SIZE 和SGA_TARGET为 12G(您想设置的SGA 最大大小,当然也可以是2G~14G 等,还要协调PGA参数及OS 等其他内存使用,不能设置太满,比如16G)。
其值应不小于shmmax/page_size.缺省值就是2097152,如果服务器上运行的所有实例的
SGA总和不超过8GB(通常系统可分配的共享内存的和最大值为8GB),通常不需要修改.
kernel.sem = 250 32000100 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安装时推荐的.(应在安装完后把最大值改为524288)
修改好内核参数后,执行如下命令使新的设置生效
/sbin/sysctl -p