参数分析
memory_max_target
- 代表oracle数据库实例的可以使用的最大内存大小
- 如果没有设置
memory_max_target
参数,那么会自动取memory_target
的参数值 - 此参数为静态参数,修改后需重启数据库实例才能生效
- 默认值为系统的shm值,而shm值默认为系统物理内存的一半
- 注意,
memory_max_target
参数值不能超过系统shm值,否则启动数据会报ORA-00845
错误
memory_target
- 代表oracle数据库实例使用的实际内存大小,但是不能大于
memory_max_target
参数值 - 如果
memory_target
设为非0,则表示启用自动内存管理(AMM),如设为0,则表示不启用AMM - 此参数为动态参数,可以随时修改,不需要重启数据库实例
memory_target
,memory_max_target
,系统shm
三者的大小关系为memory_target
<=memory_max_target
<=系统shm
- 要增大
memory_target
的大小,需要先调整系统shm的值,然后修改memory_max_target
,最后调整memory_target
sga_max_size
- 代表SGA可以使用的最大内存大小
- 此参数为静态参数,修改后需重启数据库实例才能生效
sga_target
- 表示SGA可以实际使用的内存大小,不能大于
sga_max_size
的参数值 - 如果
sga_target
设为0,则表示不启用自动共享内存管理(ASMM),所有相关的内存组件需要手动设定大小(前提是在也不开启AMM的情况下) - 此参数为动态参数,可以随时修改,不需要重启数据库实例
其他说明
ASMM与AMM区别
ASMM
- 代表自动共享内存管理,10G版本出现
- 支持HugePage
- 只能管理
SGA
的大小 - 开启方式为将
memory_target
设为0,sga_target
设为非0,statistics_level
参数设置为typical
或者all
AMM
- 代表自动内存管理,11G版本出现
- 不支持HugePage
- 数据库完全管理
SGA
,PGA
的大小 - 开启方式为将
memory_target
设为非0值,需注意,如果手动设置了SGA
和PGA
,则自动调整时的大小不小于手动设定的值
memory_target参数对SGA/PGA的影响
memory_target没有设置或设置为0
- 仅
sga_target
设置大小- 自动调节SGA中的shared pool,redo log buffer,buffer cache,larger pool,java pool等内存大小。
PGA
由pga_aggregate_target
的大小决定sga
和pga
不能自动增长和自动缩小
sga_target
和pga_aggregate_target
都没有设置- SGA中的各组件大小都要明确设定,无法自动调整各组件大小
- PGA不能自动增长和收缩
memory_target设置为非0值
表示启动用自动内存管理AMM
sga_target
设置大小,pga_aggregate_target
没有设置大小
pga_aggregate_target
=memory_target
–sga_target
sga_target
没有设置大小,pga_aggregate_target
设置大小
sga_target
=memory_target
–pga_aggregate_target
sga_target
和pga_aggregate_target
都没有设置大小,Oracle会根据数据库运行状况进行分配大小。但在数据库启动时会有默认比例
sga_target
=memory_target
*60%
pga_aggregate_target
=memory_target
*40%sga_target
和pga_aggregate_target
已经设置大小,则这两个参数自动调整的值将不小于设置的大小
memory_target
=sga_target
+pga_aggregate_target
如何修改/dev/shm值,可以参考这篇文章CentOS7修改/dev/shm挂载点大小
© 版权声明
非商业转载或引用请标注本文链接,商业转载或引用请联系站长
部分文章内容可能来自互联网,如有侵权,请通过邮件联系
部分文章内容可能来自互联网,如有侵权,请通过邮件联系
THE END
暂无评论内容