在安装oracle数据库时需要设置如下几个系统内核参数。
参数值保留在文件/etc/sysctl.conf:
说明:
kernel.shmmax
oracle sga 由共享内存组成,如果错误设置 shmmax可能会限制sga 的大小,shmmax设置不足可能会导致以下问题:ora-27123:unable to attach to shared memory segment,如果该参数设置小于oracle sga设置,那么sga就会被分配多个共享内存段。这在繁忙的系统中可能成为性能负担,带来系统问题。oracle建议kernel.shmmax最好大于sga,以让oracle共享内存区sga在一个共享内存段中,从而提高性能.
kernel.shmall
表示系统共享内存总大小,以页为单位.一个32位的linux系统,8g的内存,可以设置kernel.shmall = 2097152,即为:2097152*4k/1024/1024 = 8g,就是说可用共享内存一共8g,这里的4k是32位操作系统一页的大小,即4096字节.
kernel.shmmni
表示系统中共享内存段的最大数量。系统默认是4096,一般无需修改,在sun os下还有kernel.shmmin参数,表示共享内存段最小尺寸.
以上各参数的配置可以通过修改/proc/sys/kernel/shmmax来实现,如:
# echo 1073741824 > /proc/sys/kernel/shmmax,但系统重新启动后会复位,要想修改永久生效需要在/etc/sysctl.conf文件中添加kernel.shmmax=1073741824,这里设置的是1g.