【翻译自mos文章】SGA_TARGET与SHMMAX的关系

本文探讨了Oracle数据库参数SGA_TARGET与操作系统内核参数SHMMAX之间的关系,详细解答了SHMMAX如何影响SGA_TARGET的设置,包括在单一数据库及多数据库环境下如何合理配置SHMMAX。
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 < SHMMAX 来让 SGA_TARGET 与一个共享内存段相匹配(fit in)。
如果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为单位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值