1、测试环境:单实例,oracle release 1102000100
2、11G dbca建库时默认使用AMM=Auto Mem Manage技术
show parameter memory_target --1856M(此值必须<=memory_max_target)
show parameter pga_aggregate_target,sga_target,sga中的子池全为0
3、11g中pga_aggregate_target是软限制,12C的pga_aggregate_limit是硬限制。
4、11G在UNIX上SGA<=1G时Granule Size=4M,SGA >1G时Granule Size=16M
5、MMM ( Manual Mem Mange )这个缩写是为了简便, 我没在官方文档中看到
6、测试结果如下,欢迎补充、指正
一、方法一分两步:AMM->ASMM->MMM
第一步:把11G的AMM新特性关掉,降为10G的ASMM技术
create pfile from spfile;
alter system set memory_target=0;
alter system set memory_max_target=0 scope=spfile;
startup force
数据库会根据历史统计信息自动为sga和pga指定一个值
show parameter sga_target --1104M
show parameter db_cache_size --SGA中的各pool=0是自动的
show parameter _pool --SGA中的各pool=0是自动的
第二步:把10G的ASMM新特性关掉,降为9i的MMM=Manual Mem Manage技术
alter system set sga_target= 0;
数据库会根据历史统计信息自动为sga中的pool指定一个值
show parameter db_cache_size --784M
show parameter _pool
--java_pool_size --16M 默认是一个Granule Size
--large_pool_size --16M 默认是一个Granule Size
--shared_pool_size --272M
--streams_pool_size --0
--olap_page_pool_size --0
select trunc(bytes/1024/1024),'MB' from v$sgainfo where name='Granule Size'; --16 MB
二、方法二只要一步:AMM->MMM
1、关闭自动内存管理特性
create pfile from spfile;
alter system reset memory_target;
alter system reset memory_max_target scope=spfile;
startup force;
2、数据库自动为sga中的pool指定一个值(偏差太大)
show parameter db_cache_size --48M
show parameter _pool
--java_pool_size --24M
--large_pool_size --0M
--shared_pool_size --128M
--streams_pool_size --0
--olap_page_pool_size --0
show sga --Total SGA 207 MB
select trunc(bytes/1024/1024),'MB' from v$sgainfo where name='Granule Size'; --4 MB
3、如果偏差太大,请根据经验指定,分配思路 (以64G总内存为例):
(1)OS=32G
含OS、n个监听程序、几十~数百个oracle后台进程等所占用的内存。
(2)DB=32G(OLTP: SGA70% PGA30%;OLAP: SGA50% PGA50%)
本文链接: http://blog.itpub.net/210154/viewspace-1281006/
zcs0237
2014.09.25.北京
More cleaner and more efficient!
2、11G dbca建库时默认使用AMM=Auto Mem Manage技术
show parameter memory_target --1856M(此值必须<=memory_max_target)
show parameter pga_aggregate_target,sga_target,sga中的子池全为0
3、11g中pga_aggregate_target是软限制,12C的pga_aggregate_limit是硬限制。
4、11G在UNIX上SGA<=1G时Granule Size=4M,SGA >1G时Granule Size=16M
5、MMM ( Manual Mem Mange )这个缩写是为了简便, 我没在官方文档中看到
6、测试结果如下,欢迎补充、指正
一、方法一分两步:AMM->ASMM->MMM
第一步:把11G的AMM新特性关掉,降为10G的ASMM技术
create pfile from spfile;
alter system set memory_target=0;
alter system set memory_max_target=0 scope=spfile;
startup force
数据库会根据历史统计信息自动为sga和pga指定一个值
show parameter sga_target --1104M
show parameter db_cache_size --SGA中的各pool=0是自动的
show parameter _pool --SGA中的各pool=0是自动的
第二步:把10G的ASMM新特性关掉,降为9i的MMM=Manual Mem Manage技术
alter system set sga_target= 0;
数据库会根据历史统计信息自动为sga中的pool指定一个值
show parameter db_cache_size --784M
show parameter _pool
--java_pool_size --16M 默认是一个Granule Size
--large_pool_size --16M 默认是一个Granule Size
--shared_pool_size --272M
--streams_pool_size --0
--olap_page_pool_size --0
select trunc(bytes/1024/1024),'MB' from v$sgainfo where name='Granule Size'; --16 MB
二、方法二只要一步:AMM->MMM
1、关闭自动内存管理特性
create pfile from spfile;
alter system reset memory_target;
alter system reset memory_max_target scope=spfile;
startup force;
2、数据库自动为sga中的pool指定一个值(偏差太大)
show parameter db_cache_size --48M
show parameter _pool
--java_pool_size --24M
--large_pool_size --0M
--shared_pool_size --128M
--streams_pool_size --0
--olap_page_pool_size --0
show sga --Total SGA 207 MB
select trunc(bytes/1024/1024),'MB' from v$sgainfo where name='Granule Size'; --4 MB
3、如果偏差太大,请根据经验指定,分配思路 (以64G总内存为例):
(1)OS=32G
含OS、n个监听程序、几十~数百个oracle后台进程等所占用的内存。
(2)DB=32G(OLTP: SGA70% PGA30%;OLAP: SGA50% PGA50%)
本文链接: http://blog.itpub.net/210154/viewspace-1281006/
zcs0237
2014.09.25.北京
More cleaner and more efficient!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/210154/viewspace-1281006/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/210154/viewspace-1281006/