关于oracle11G的自动内存管理MEMORY_TARGET和MEMORY_MAX_TARGET
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于oracle11G的自动内存管理MEMORY_TARGET和MEMORY_MAX_TARGET,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4952字,纯文字阅读大概需要8分钟。
内容图文
MEMORY_TARGET:动态控制SGA和PGA时,Oracle总共可以使用的共享内存大小,这个参数是动态的,因此提供给Oracle的内存总量是可以动态增大,也可以动态减小的。它不能超过MEMORY_MAX_TARGET参数设置的大小。默认值是0。
MEMORY_MAX_TARGET:这个参数定义了MEMORY_TARGET最大可以达到而不用重启实例的值,如果没有设置MEMORY_MAX_TARGET值,默认等于MEMORY_TARGET的值。
使用动态内存管理时,SGA_TARGET和PGA_AGGREGATE_TARGET代表它们各自内存区域的最小设置,要让Oracle完全控制内存管理,这两个参数应该设置为0。
memory_max_target是一个非动态参数,不能在memory范围动态改变,只能通过指明 scope=spfile这个条件来达到数据库在下次启动后让改变生效的目的。
但是memory_target这个参数是可以动态调节的...也就是说不需要重新启动DB,就可以让其生效。
MEMORY_MAX_TARGET 是设定Oracle能占OS多大的内存空间
SGA_MAX_SIZE是Oracle SGA 区最大能占多大内存空间
10g 的sga_max_size 是动态分配 Shared Pool Size,database buffer cache,large pool,java pool,redo log buffer 大小的,是根据Oracle 运行状况来重新分配SGA 各内存块的大小。PGA在10g中需要单独设定。
11g MEMORY_MAX_TARGET 参数包含SGA和PGA两部分。
在手动创建数据库时,只需要在创建数据库之前设置合适的MEMORY_TARGET和MEMORY_MAX_TARGET初始化参数。
在一个系统上启用自动内存管理其实很简单,不需要事先做太多的事情,可以使用下面的计算公式来计算: MEMORY_TARGET=SGA_TARGET+GREATEST(PGA_AGGREGATE_TARGET,"maximumPGAallocated");
下面的查询语句向你展示有关的信息,以及如何计算出需要的值:
1.SELECT name, value
FROM v$parameter
WHERE name IN (‘pga_aggregate_target‘, ‘sga_target‘)
UNION
SELECT ‘maximum PGA allocated‘ AS name, TO_CHAR(value) AS value
FROM v$pgastat
WHERE name = ‘maximum PGA allocated‘;
2.SELECT sga.value + GREATEST(pga.value, max_pga.value) AS memory_target
FROM (SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = ‘sga_target‘) sga,
(SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = ‘pga_aggregate_target‘) pga,
(SELECT value FROM v$pgastat WHERE name = ‘maximum PGA allocated‘) max_pga;
除现有的用于内存管理的V$视图外,Oracle 11g还新增加了下面4个视图用于自动内存管理:
V$MEMORY_CURRENT_RESIZE_OPS
V$MEMORY_DYNAMIC_COMPONENTS
V$MEMORY_RESIZE_OPS
V$MEMORY_TARGET_ADVICE
为每个动态组件分配的内存大小使用视图V$MEMORY_DYNAMIC_COMPONENTS显示:
SELECT component, current_size, min_size, max_size
FROM v$memory_dynamic_components
WHERE current_size != 0;
V$MEMORY_CURRENT_RESIZE_OPS和V$MEMORY_RESIZE_OPS分别显示了组件当前改变大小操作的信息和上一次改变大小操作的信息。
V$MEMORY_TARGET_ADVICE提供了帮助调整MEMORY_TARGET参数的信息,它显示了一段MEMORY_TARGET设置可用的范围,根据当前的设置,估算完成当前负载所需要的DB Time值。
SELECT * FROM v$memory_target_advice ORDER BY memory_size;
下面来看看在11g 中Memory_target 设置和不设置对SGA/PGA 的影响:
如果Memory_target 设置为非0 值
1、sga_target 和 pga_aggregate_target 已经设置大小
Memory_Target =SGA_TARGET+PGA_AGGREGATE_TARGET ,大小和 memory_max_size 一致
2、sga_target 设置大小, pga_aggregate_target 没有设置大小
pga_aggregate_target初始化值=memory_target-sga_target
3、sga_target 没有设置大小, pga_aggregate_target 设置大小
sga_target 初始化值=memory_target-pga_aggregate_target
4、sga_target 和 pga_aggregate_target 都没有设置大小
两个值没有最小值和默认值,Oracle 将根据数据库运行状况进行分配大小,但在数据库启动是会有一个固定比例来分配:
sga_target =memory_target *60%
pga_aggregate_target=memory_target *40%
如果Memory_target 没有设置为0
11g 中默认为0 则初始状态下取消了Memory_target 的作用,完全和10g 在内存管理上一致,完全向下兼容。
1、SGA_TARGET设置值
自动调节SGA 中的shared pool,buffer cache,redo log buffer,java pool,larger pool等内存空间的大小。PGA 则依赖pga_aggregate_target 的大小。
2、SGA_target 和PGA_AGGREGATE_TARGET 都没有设置
SGA 中的各组件大小都要明确设定,不能自动调整各组件大小。PGA不能自动增长和收缩
3: MEMORY_MAX_TARGET 设置而MEMORY_TARGET =0 这种情况先和10g 一样。
在11g 中可以使用下面看各组件的值:
SQL> show parameter target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 18G
memory_target big integer 18G
parallel_servers_target integer 256
pga_aggregate_target big integer 8G
sga_target big integer 9G
如果需要监视Memory_target 的状况则可以使用下面三个动态试图:
V$MEMORY_DYNAMIC_COMPONENTS
V$MEMORY_RESIZE_OPS
v$memory_target_advice
一张能直观体现10g和11g的自动内存管理的参数之间的关系的参数关系图:
关于oracle11G的自动内存管理MEMORY_TARGET和MEMORY_MAX_TARGET
标签:memory_max_target
本文系统来源:http://11106335.blog.51cto.com/11096335/1857623
内容总结
以上是互联网集市为您收集整理的关于oracle11G的自动内存管理MEMORY_TARGET和MEMORY_MAX_TARGET全部内容,希望文章能够帮你解决关于oracle11G的自动内存管理MEMORY_TARGET和MEMORY_MAX_TARGET所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。