学习一个知识点时,最好先了解其历史。ORACLE近期的版本都对内存管理做了简化,从9i通过PGA_AGGREGATE_TARGET参数实现PGA的自动管理,10g通过Automatic Shared Memory Management(ASMM)实现SGA的自动管理,到11g通过Automatic Memory Management(AMM)实现内存(SGA+PGA)的自动管理。目前的11G版本,DBA只需要设置2个或者一个参数,就可以实现ORACLE对内存的自动管理。

Oracle的内存管理方式

  Oracle 11g 引入参数mymory_max_target 和memory_target 就是oracle的新特性自动内存管理,AMM 的引入,组合出来有 5 种内存管理形式。

  • 自动内存管理(AMM): memory_target=非0,是自动内存管理,如果初始化参数 LOCK_SGA = true ,则 AMM 是不可用的。
  • 自动共享内存管理(ASMM): 在memory_target=0 and sga_target=非0 是自动内存管理
  • 手工共享内存管理: memory_target=0 and sga_target=0   指定 share_pool_size 、db_cache_size 等 sga 参数
  • 自动 PGA 管理: memory_target=0 and workarea_size_policy=auto  and PGA_AGGREGATE_TARGET=值
  • 手动 PGA 管理: memory_target=0 and workarea_size_policy=manal  然后指定 SORT_AREA_SIZE 等 PGA 参数,一般不使用手动管理PGA

ASMM管理方式

1.1 ASMM的管理对象为SGA(shared pool;buffer pool;large pool;java pool;stream pool;redo buffer pool).注:不包含缓冲池(Keep buffer pool;Recycle buffer pool;nK buffer pool)
1.2 设置ASMM的管理i)从手动共享内存管理模式下启用ASMMi1) 获取SGA_TARGET的值: SELECT ((SELECT SUM(value) FROM V$SGA) - (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)) "SGA_TARGET" FROM DUAL;         i2) 使用该值设置SGA_TARGET。i3) 将(SHARED_POOL_SIZE,LARGE_POOL_SIZE,JAVA_POOL_SIZE,DB_CACHE_SIZE,STREAMS_POOL_SIZE)值设置为0。             ii)从自动内存管理模式(AMM)切换到ASMMii1)将初始化参数MEMORY_TARGET 设置为0。ALTER SYSTEM SET MEMORY_TARGET = 0;数据库将根据当前的SGA 内存分配设置SGA_TARGET。ii2)将自动设置大小的SGA组件(shared pool;buffer pool;large pool;java pool;stream pool;redo buffer pool)的值设置为0。完成后,重新启动实例

AMM管理方式:

1.1 AMM的管理对象为SGA(shared pool;buffer pool;large pool;java pool;stream pool;redo buffer pool)+PGA。注:此时sga_target为0无意义
1.2 设置AMM的管理 1.用sqlplus以sysdba链接数据库2.计算MEMORY_TARGET的最小值a.确定当前的 SGA_TARGET 和 PGA_AGGREGATE_TARGETSQL> show parameter targetNAME                                 TYPE        VALUE------------------------------------ ----------- ----------------archive_lag_target                   integer     0db_flashback_retention_target        integer     1440fast_start_io_target                 integer     0fast_start_mttr_target               integer     0memory_max_target                    big integer 0memory_target                        big integer 0parallel_servers_target              integer     16pga_aggregate_target                 big integer 90Msga_target                           big integer 272Mb.查询从数据库启动以来最大的PGA  select value from v$pgastat where name='maximum PGA allocated';c.计算MEMORY_TARGETmemory_target = sga_target + max(pga_aggregate_target, maximum PGA allocated)例如:SGA_TARGET = 272M ; PGA_AGGREGATE_TARGET = 90M , 且 maximum PGA allocated 为 120M, 那么 MEMORY_TARGET >= 392M (272M + 120M). 3.参照2c,修改memory_target的值ALTER SYSTEM SET MEMORY_TARGET=392M;1.3 MEMORY_TARGET,SGA_TARGET和PGA_AGGREGATE_TARGET之间的关系如果将SGA_TARGET和PGA_AGGREGATE_TARGET设置为非零值,则可将其分别视为SGA和PGA大小的下限值。MEMORY_TARGET 可以采用从SGA_TARGET+PGA_AGGREGATE_TARGET到MEMORY_MAX_SIZE的值

转载于:https://www.cnblogs.com/aity007/p/9516225.html

oracle 内存管理相关推荐

  1. ORACLE 内存管理 之二 PGA v$pgastat

    ORACLE 内存管理 PGA v$pgastat PGA 自动管理 需要设置两个基本点参数 : WORKAREA_SIZE_POLICY=AUTO,默认就是AUTO, PGA_AGGREGATE_T ...

  2. Oracle内存管理PGA详解

    当用户进程连接到数据库并创建一个对应的会话时,Oracle服务进程会为这个用户专门设置一个PGA区,用来存储这个用户会话的相关内容.当这个用户会话终止时,系统会自动释放这个PGA区所占用的内存.这个P ...

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

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

  4. Oracle内存管理(修改SGA与PGA)

    目录: Oracle11g数据库内存管理 一.Oracle数据库内存管理概念: 二.内存管理方式的切换: 三.修改实例SGA与PGA大小(ASMM) 1.使用sqlplus命令在数据库中修改 (1). ...

  5. ORACLE 内存管理 之六 SGA Multiple Block Sizes,Large Pool

    ORACLE DBA 内存管理 SGA Multiple Block Sizes,Large Pool Multiple Block Sizes 9i前只能设置一种blocksize,如果想改变只能重 ...

  6. Oracle内存管理(五)

    [深度分析--eygle]学习笔记 1.4. 2其他内存组件 Large Pool-大池是SGA的一个可选组件,通经常使用于共享server模式(MTS). 并行计算或 RMAN的备份恢复等操作. J ...

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

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

  8. oracle自动内存管理要不要开,Oracle 11g的自动内存管理

    Oracle 的 9i/10g 中已经对内存管理逐步做了很大的简化,11g 则更进一步,引入了一个新的概念自动化内存管理(Automatic Memory Management,AMM) . 如果 D ...

  9. oracle启用amm,【内存管理】Oracle AMM自动内存管理详解

    一. Oracle 的三种内存管理方式 oracle 内存管理有三种方式,每一个 instance 只能够选择一种.这三种管理方式分别是 AMM 自动内存管理( Automatic Memory Ma ...

  10. ORACLE内存结构简介

    ORACLE数据库作为世界上一款功能强大的数据库管理软件,功能体系特别庞大.我们有必要对它的每一部分学习了解,然后才从全局的角度进行有效把握.我们会着重从理论基础体系角度再逐步到实战应用.实际上,如果 ...

最新文章

  1. HTML5原生拖拽/拖放 Drag Drop 详解
  2. 如何在Python中调用Windows的cmd命令?
  3. STL Priority_Queue
  4. MySQL_常见函数
  5. vue与node和npm关系
  6. 【三维激光扫描】实验01:环境搭建CAD2014+StonexSiScan软件安装
  7. FreeMarker的优点和缺点
  8. Nginx的安装和设置
  9. [bzoj4826][Hnoi2017]影魔
  10. do{} while(0)
  11. 英尺英寸和厘米的换算_英寸、英尺与厘米如何换算
  12. 我们应能在哪个层次使用计算机,福师20秋《计算机应用基础》在线作业一题目【标准答案】...
  13. CC00039.scala——|HadoopScala.V01|——|Scala.v01|特质|作为接口|使用特质|
  14. 关于医疗影像的mhd和dcm格式图像的读取和坐标转换
  15. 继承父类求解矩形,圆形的面积和周长
  16. android的wifi网卡移植详细过程已经通用驱动的问题
  17. python实现凤凰新闻监控
  18. AcWing 616. 两点间的距离
  19. 院士给自己博士生写的一封信:博士生每天工作12小时只是一个下限
  20. php查询google pr值接口api介绍,最新 google pr值查询 接口 php版 示例

热门文章

  1. 1161 Problem J 《C语言程序设计》江宝钏主编-习题3-9-利滚利
  2. 孙正义:中国电子商务五年内超过美国
  3. 寻找培育新ICT领域精英 华为云培训认证服务上线
  4. 运维之监控与安全篇------2.SELinux安全防护 、 加密与解密
  5. 全球及中国航空航天保险行业“十四五”规划动向与运营效益分析报告2021年版
  6. 一款Linux服务器、数据库、Redis、MongoDB统一管理平台,再也不用一台台记密码了。
  7. 华为matex鸿蒙,华为MateX推迟至9月上市,或预装鸿蒙系统
  8. 通信相关知识(二) 传输网-微波卫星通信
  9. 汽车制造业上下游协作时 外发数据如何防泄露?
  10. prior oracle 10g,Oracle 10G 新特性——增强的CONNECT BY子句