首页 > Linux操作系统 > Linux操作系统 > SGA与共享内存的关系
SGA的设置在Linux/Unix上和一个操作系统内核参数有关,这个参数就是shmmax,不同的操作系统,该参数设置的位置不同。在Solaris上,该参数由/etc/system文件中的shmsys:shminfo_shmmax定义;在Linux上,则由/proc/sys/kernel/shmmax参数定义。
Shmmax内核参数定义的是系统允许的单个共享内存段的最大值,如果该参数设置小于Oracle SGA的设置值,那么SGA可以创建成功,但是会被分配到多个共享内存段。通常推荐通过调整shmmax的设置,将SGA限制在一个共享内存段中。
在Linux下通过以下命令来查看:
#more /proc/sys/kernel/shmmax
可以通过修改/etc/sysctl.conf文件来永久更改shmmax参数的值:
Kernel.shmmax=68719476736(64G,一般应该大于SGA的设置值)
实际在新的Redhat Linux 5.4上安装Oracle11gR2时,安装脚本自动设置的该参数值为64G,而操作系统内存只有16G,看来今后基本不用担心SGA超过该参数了!
参数设置完成后,在数据库运行时,可以通过以下命令来查看共享内存模块的分配,看Oracle是否被分配在同一段共享内存段里:
#ipcs -sa
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11954956/viewspace-668844/ ,如需转载,请注明出处,否则将追究法律责任。