一、AMM相关知识:

1.从oracle 11.1开始oracle提供了通过MEMORY_TARGET参数实现自动SGA和PGA自动管理的功能,从此版本开始不再需要明确设置SGA_TARGET及PGA_AGGREGATE_TARGET,这个被支持在linux、windows、solaris、hpux、aix。

2.在使用MEMORY_TARGET参数的linux机器上,在oracle启动时遇到ORA-00845是由于/dev/shm的大小小于memory_target所致(df -k /dev/shm),如果设置memory_max_target>memory_target,则需要确保/dev/shm至少memory_max_target

3.从11.1.0.6.0开始ASM实例默认实现自动管理SGA及PGA,(禁用ASM实例的自动内存管理,必须手动设置memory_target到0,DBCA界面将不支持此更改,这个bug被修正在11.1.0.7.0)

4.10.1版本之前shared pool在SGA中分配的大小=shared_pool_size+内部SGA的开销,此开销被用来维护SGA中各组件的状态,从10.1开始shared_pool_size将包括内部SGA的开销

5.在手动内存管理模式下,由于shared_pool_size太小不足以容纳内部SGA开销将导致ORA-00371

6.在非windows32位的操作系统上SGA_MAX_SIZE默认被设置为memory_target和memory_max_target中的最大值,在windows32操作系统上sga_max_size=60%memory_target+60%memory_max_target+25%可用虚拟地址空间

7.当lock_sga初始化参数被设置为true时将不能启用自动内存管理

二、启用、配置AMM:

SQL>show parameter lock_sga  ------确保lock_sga为false

SQL>show parameter target  ------确定当前SGA_TARGET及PGA_AGGREGATE_TARGET的值

SQL>select value from v$pgastat where name='maximum PGA allocated'; ---确定从上次启动DB后的最大实例的PGA

memory_target = sga_target + max(pga_aggregate_target, maximum PGA allocated)

为MEMORY_MAX_TARGET确定一个尽可能大的值,等于或大于SGA_TARGET

当DB使用spfile时:ALTER SYSTEM SET MEMORY_MAX_TARGET = nM SCOPE = SPFILE;  当DB使用pfile时:编辑pfile设置memory_max_target = nM  memory_target = mM

关闭并重启DB

ALTER SYSTEM SET MEMORY_TARGET = nM;  ALTER SYSTEM SET SGA_TARGET = 0;  ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0;

-------!!!如果你在pfile中设置了MEMORY_TARGET没有设置MEMORY_MAX_TARGET,则数据库自动设置MEMORY_MAX_TARGET值为MEMORY_TARGET的值

-------!!!如果你在pfile中设置了MEMORY_MAX_TARGET而没有设置MEMORY_TARGET,则MEMORY_TARGET默认为0,在DB启动后可以动态改变MEMORY_TARGET不超过MEMORY_MAX_TARGET的值

-------!!!也可以设置SGA_TARGET或PGA_AGGREGATE_TARGET为一个非0的值,这个值将作为SGA或PGA分配的最小值

三、监视、优化AMM:

SQL> select * from v$memory_target_advice order by memory_size;

-------MEMORY_SIZE_FACTOR表示假设替代的MEMORY_TARGET大小

-------ESTD_DB_TIME表示在此预计的MEMORY_TARGET大小下所需的DB time二、ASMM相关知识:

1.SGA_MAX_SIZE设置:如果不设置则oracle在初始化的时候将选择所有指定组件的总和或者默认值,如果设置的值比分配给所有组件的内存小,那么数据库将忽略此设置的值

2.SGA_TARGET设置:在设置之前,同时为了启用自动共享内存管理的功能,STATISTICS_LEVEL必须被设置为TYPICAL (the default)或ALL,如果此参数被设置那么必须设置自动调整大小的组件的大小为0或最小值

3.SGA中能自动调整大小的组件:Fixed SGA、SHARED_POOL_SIZE、LARGE_POOL_SIZE、JAVA_POOL_SIZE、DB_CACHE_SIZE、STREAMS_POOL_SIZE

4.SGA中不能自动调整(固定)大小的组件:LOG_BUFFER、DB_KEEP_CACHE_SIZE、DB_RECYCLE_CACHE_SIZE、DB_nK_CACHE_SIZE

5.SGA中分配内存的单位:在SGA中动态分配各组件大小的最小单元是颗粒,通常来说在多数平台上如果SGA的大小<=1G,则颗粒大小是4M,SGA>1G,则颗粒大小为16M(32位NT上SGA>1G,则颗粒大小为8M)

6.查询V$SGAINFO或V$SGA_DYNAMIC_COMPONENTS看颗粒的大小,如果手动给SGA中组件分配的内存不是颗粒的倍数,则DB实际给该组件分配(四舍五入到最小粒度的倍数)大于分配值为其颗粒倍数的是小值

7.SGA_MAX_SIZE不能被动态修改

三、启用、配置ASMM:

从MSMM到ASSM:

1.获得SGA_TARGET的值SELECT ((SELECT SUM(value) FROM V$SGA) - (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)) "SGA_TARGET" FROM DUAL;

2.修改pfile中sga_target的值并重启DB,或者ALTER SYSTEM SET SGA_TARGET=value [SCOPE={SPFILE|MEMORY|BOTH}]

3.通过修改pfile中各自动调优组件对应的初始化参数的值为0或最小分配量,或者alter system set %_size=0——————期望的最小值

从AMM到ASMM:

1.ALTER SYSTEM SET MEMORY_TARGET = 0

2.通过修改pfile中各自动调优组件对应的初始化参数的值为0或最小分配量,或者alter system set %_size=0-期望的最小值

---------启用ASMM后可以动态调整相应自动调整组件的最小值,该值只限制该组件大小不能减小到此值以下,但不限制组件的最大值

---------动态设置sga_target一个非0值之前,也就是启用ASMM之前最好重启DB,因为共享池不能被动态收缩,因为其中含有一些打开的游标、PL/SQL包及sql的执行状态

---------手动调整大小的组件也可以动态改变,但增加或减少的相应值都从自动调整大小组件中动态获取或释放,而且设置的是一个精确的值

四、监视、优化ASMM:

SQL> select * from v$sga_target_advice order by sga_size;

五、建议参考(from Yong Huang):

配置总大小时参考如下:

在现在操作系统内存比较充足的情况下,初始一般将shared pool设置为1至3G,其余的分配给buffer cache

10gASMM中db_cache_size至少2G

11g中将禁用AMM使用ASMM,因为能够使用大的缓冲页

oracle amm和asmm,AMM与ASMM相关推荐

  1. oracle内存管理模式amm,Oracle 11g自动内存管理(AMM)相关的初始化参数

    Oracle对内存的管理越来越趋向智能化.自动化,从9i通过PGA_AGGREGATE_TARGET参数实现PGA的自动管理,10g通过Automatic Shared Memory Manageme ...

  2. oracle amm和asmm,AMM和ASMM理解 | 学步园

    oracle11g新出参数  MEMORY_MAX_TARGET 和  MEMORY_TARGET 进行自动管理PGA 和SGA 称之为 自动化内存管理(Automatic MemoryManagem ...

  3. Oracle 自动共享内存管理(ASMM)与自动内存管理(AMM)

    相关参数: MEMORY_MAX_TARGET:不可动态调整,代表内存(SGA+PGA)的最大值. SQL>ALTER SYSTEM SET MEMORY_MAX_TARGET = 1000M ...

  4. oracle内存管理模式amm,【读书笔记】ORACLE 内存管理

    <Administrator's Guide>第6章介绍了ORACLE实例的内存管理,在11g中,ORACLE默认使用自动内存管理(AMM)来管理SGA和PGA的大小.除了默认的方法之外, ...

  5. Oracle 11g AMM与ASMM切换

    现在的Oracle正在往智能化方向发展.如果我们现在找一些8i/9i时代的Oracle书籍,怎么样配置合适的数据库各内存池大小是非常重要的话题.但是进入10g之后,自动内存池调节成为一个重要Oracl ...

  6. Oracle ASMM和AMM

    Oracle ASMM和AMM ASMM(Automatic Shared Memory Management,自动共享内存管理)是Oracle 10g引入的概念.通过使用ASMM,就不需要手工设置相 ...

  7. oracle amm和asmm,在Oracle中,什么是ASMM和AMM?

    A答案 ASMM(Automatic Shared Memory Management,自动共享内存管理)是Oracle 10g引入的概念.通过使用ASMM,就不需要手工设置相关内存组件的大小,而只为 ...

  8. ORACLE ASMM与AMM的总结

      概念对比介绍 相信有些人会对ORACLE当中的AMM(Automatic Memory Management)与ASMM(Automatic Shared Memory Management)有些 ...

  9. 关于ASMM和AMM

    关于ASMM和AMM http://blog.itpub.net/29800581/viewspace-1263875/ http://blog.csdn.net/deanza/article/det ...

最新文章

  1. linux 脚本 符号,Shell脚本 入门 —— 符号篇
  2. 全国大学生智能汽车竞赛-讯飞赛道线下赛开始报名啦!
  3. linux RTX2080显卡驱动
  4. linux操作系统分析实验—基于mykernel的时间片轮转多道程序实现与分析
  5. Linux常用系统备份、恢复命令
  6. Kafka笔记:kafka原理简介以及架构
  7. 写时拷贝(Copy On Write)方案详解
  8. define宏定义和const定义之间的区别
  9. exit与return区别
  10. Android Studio中进行单元测试
  11. 关于阿里云短信验证服务完整的教程
  12. Spring Boot 2.x基础教程:进程内缓存的使用与Cache注解详解
  13. python实现——视频转桌面壁纸
  14. 大神TP_萌新到大神的必修课---分路篇v
  15. 【Java实战小项目】考试系统
  16. 招银网络2018笔试分享
  17. iOS-App Logo和闪屏图尺寸
  18. 互联网电影院带来新突破,5G+4K’
  19. 解决VUE在浏览器全屏下监听不到Esc键盘事件
  20. FusionCharts 参数设置

热门文章

  1. 世界互联网大会“互联网之光”博览会-蚂蚁金服展台掠影
  2. 搭建hadoop3.x报错 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
  3. eclipse常用插件在线安装地址或下载地址
  4. blender script mmd_tool 自动重命名刚体到合适的名字
  5. 基于SSM+MYSQL写的javaWeb房屋租赁管理系统,包括系统前端和后台,页面美观,功能完善,非常高端的SSM源码
  6. 【观察】中国跨境电商出海再加速背后,如何破解行业同质化竞争困局?
  7. 爬取企查查和boss直聘数据
  8. ABP vNext 实现租户Id自动赋值插入
  9. docker 安装与初步使用
  10. 失物招领系统,校园失物招领系统,失物招领系统毕业设计