sga_target与shmmax的关系 参考原文: relationship between sga_target and shmmax (文档 id 1527109.1) 适用于: oracle database - enterprise edition - version 10.1.0.2 to 11.2.0.3 [release 10.1 to 11.2] information in this document applies to a
sga_target与shmmax的关系
参考原文:
relationship between sga_target and shmmax (文档 id 1527109.1)
适用于:
oracle database - enterprise edition - version 10.1.0.2 to 11.2.0.3 [release 10.1 to 11.2]
information in this document applies to any platform.
目的:
解释了参数文件中的参数sga_target 和 操作系统内核参数shmmax 之间的关系
q1)shmmax 限制是怎么影响sga_target的?
a1)shmmax 是以byte为单位的单个共享内存段的最大大小(shared memory segment)。理想情况下,我们可以通过设置 sga_target 如果sga_target > shmmax, oracle 会尝试使用连续的多个共享内存段 来与 sga_target 相匹配,如果该尝试失败,oracle 会使用非连续的多个共享内存段,此时,oracle 不得不在已使用空间中抓取(grab)空闲的内存段
q2)如果我设置shmmax 为16gb,这个16gb是 sga_target 允许设置的最大值么?
a2)与上一个问题一样,请注意:oracle不推荐shmmax 使用如此大的值。请见如下的文章:
maximum shmmax values for linux x86 and x86-64 (doc id 567506.1)
q3)若是我需要在一个db server上运行多个database,每一个database的sga是12gb,我该怎么设置shmmax参数?
a3)这种情况下,你需要保证的是:设置shmmall (而不是shmmax )的值为 大于 所有database上的sga总和的一个值。shmmall 是共享内存段(以page为单位)的总计大小。这里需要注意的是:shmmax 是以 bytes为单位,而 shmmall 是以pages为单位
