oracle 11G memory_max_target参数无效

帮忙看看我设置的几个参数:
show parameter sga
NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
lock_sga                             boolean                          FALSE
pre_page_sga                         boolean                          FALSE
sga_max_size                         big integer                      12G
sga_target                           big integer                      10G
SQL> show parameter mem
NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
hi_shared_memory_address             integer                          0
memory_max_target                    big integer                      12G
memory_target                        big integer                      12G
select 'SGA' AS NAME,ROUND(sum(value)/1024/1024/1024,2)||'G' AS "SIZE(G)" from v$sga                                                                                                         
UNION                                                                                                                                                                                   
select 'PGA' AS NAME,ROUND(value/1024/1024,2)||'M' AS "SIZE(M)" from v$pgastat where name='total PGA allocated'                                                                        
UNION                                                                                                                                                                                   
select 'TOTAL' AS NAME,((SELECT ROUND(sum(value)/1024/1024/1024,2) from v$sga)+(select ROUND(value/1024/1024/1024,2) from v$pgastat where name='total PGA allocated'))||'G' AS "SIZE(M)" FROM DUAL
UNION                                                                                                                                                                                                                                                                                                                                                                        
SELECT NAME,TO_CHAR(VALUE) FROM V$PGASTAT WHERE NAME='process count';
NAME                                                             SIZE(G)
---------------------------------------------------------------- -----------------------------------------
PGA                                                              621.62M
SGA                                                              11.95G
TOTAL                                                            12.56G
process count                                                    196
[oracle@bpmora ksession]$ free -m
             total       used       free     shared    buffers     cached
Mem:         15953      15796        156          0         60      11516
-/+ buffers/cache:       4219      11734
Swap:        17178       4704      12474
我想问一下我memory_max_target设置的是12G,为什么oracle总共用的内存会多于12G啊,还有我这台主机共16G,这台机器上就跑了一个oracle,
其他什么都没跑,如果oracle共用了12.5G,那应该还有内存的,为什么就剩这么点内存了啊,才156M,这个有什么方法能排查一下哪里把其他的
内存占用了吗?
参与8

4同行回答

冯帅冯帅数据库管理员贝壳金服
一:关于memory_max_target设置的是12G,为什么oracle总共用的内存会多于12G你的查询中用到的性能视图1.v$pgastat  total PGA allocated 表示了当前实例已分配的PGA内存总量。一般来说,这个值应该小于PGA_AGGREGATE_TARGET,但是如果进程需求的PGA快速增长,它可以在超...显示全部
一:关于memory_max_target设置的是12G,为什么oracle总共用的内存会多于12G
你的查询中用到的性能视图
1.v$pgastat  
total PGA allocated 表示了当前实例已分配的PGA内存总量。一般来说,这个值应该小于PGA_AGGREGATE_TARGET,但是如果进程需求的PGA快速增长,它可以在超过PGA_AGGREGATE_TARGET的限定值。
2.v$sga
关于SGA的三个动态性能视图:v$sga和v$sgastat和 v$sgainfo  我觉得你这里可以用sgainfo更合适吧
3.即使超过了memory_max_target 也是有可能的 有些bug也有可能造成内存泄漏

二:其他的内存哪去了
oracle的pga和sga是实例所需要的内存 除了实例本身之外的当然也要内存 不过你当前这个环境少了三个g有点夸张 你可以看一下除了这个实例 还有没有别的运行的实例 你也可以用top/topas等os命令来看一下消耗在了哪里收起
融资租赁 · 2015-09-14
浏览1579
liulei_oracleliulei_oracle数据库管理员lgcns china
看你的系统应该是linux,内存可用于多方面。sga_target 设置了 sga_maxsize就会失效吧,既然memory target都设置了为啥不给pga留点空间其它的不要想太多啦显示全部
看你的系统应该是linux,内存可用于多方面。

sga_target 设置了 sga_maxsize就会失效吧,既然memory target都设置了为啥不给pga留点空间

其它的不要想太多啦收起
系统集成 · 2015-09-16
浏览1556
张东焕张东焕技术总监IBM官方授权讲师
用操作系统命令看看都是那些进程使用内存,AIX和Linux的命令不太一样。显示全部
用操作系统命令看看都是那些进程使用内存,AIX和Linux的命令不太一样。收起
IT咨询服务 · 2015-09-14
浏览1690
royalwzyroyalwzy技术经理海通证券股份有限公司
操作系统本身也是消耗内存的显示全部
操作系统本身也是消耗内存的收起
证券 · 2015-09-14
浏览1564

提问者

db2菜菜
交互工程师山东禹城

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-09-14
  • 关注会员:1 人
  • 问题浏览:3998
  • 最近回答:2015-09-16
  • X社区推广