• Oracle 的ASMM && AMM


    Oracle 的内存管理机制:

    ORACLE 9i及之前 : PGA自动管理,SGA手动管理 

    ORACLE 10g : PGA自动管理,SGA自动管理(ASMM,自动共享内存管理)

    ORACLE 11g : PGA,SGA统一自动管理(AMM,自动内存管理)

    ORACLE 12c : 跟11g一样,没有变化 ## ASMM && AMM 的区别:

      ASMM (Automatic Shared Memory Management): 设置一个SGA的目标值以及SGA的最大值,数据库来动态调整其中的各个组件,如Database buffer cache、Shared pool等等通过使用ASMM,就不需要手工设置相关内存组件的大小,而只为SGA设置一个总的大小,Oracle的MMAN进程(Memory Manager Process,内存管理进程)会随着时间推移,根据系统负载的变化和内存需要,自动调整SGA中各个组件的内存大小。

      AMM (Automatic Memory Management): 让数据库完全管理SGA、PGA的大小,而对于管理员只需要设置一个总的大小(memory_target),数据库会动态的调整SGA、PGA的大小以及其中包含的各个组件大小,如Database buffer cache、Shared pool等等。 ## 进行操作设置: [Oracle 的ASMM && AMM](https://www.cnblogs.com/Leo-Cjh/p/13471083.html)

    设置AMM

    注:参数LOCK_SGA=TRUE  则AMM是不可用的 

    • MEMORY_TARGET  != 0
    • SGA_TARGET=0  (或最小值)
    • PGA_AGGREGATE_TARGET=0  (或最小值)
    1.Memory_TARGET约等于数据库消耗的SGA和PGA内存总和
    2.查找当前SGA值
        show parameter sga_target
    3.查找当前PGA值   
        SELECT VALUE/1024/1024/1024 FROM V$PGASTAT WHERE name='maximum PGA allocated';
    4.将两值相加得到MEMORY_TARGET参数  例如(1200MB/)
    5. 用如下命令修改
       alter system set MEMORY_MAX_TARGET=8G SCOPE=SPFILE;
       alter system set MEMORY_TARGET=4G SCOPE=SPFILE;
       alter system set SGA_TARGET=0 SCOPE=SPFILE;
       alter system set PGA_AGGREGATE_TARGET=0 SCOPE=SPFILE;

    SGA_TARGET, PGA_AGGREGATE_TARGET 参数值为零,可以使数据库自动调整SGA和PGA值

    补充: 可使用 select * from v$memory_target_advice order by memory_size; 根据建议设置memory_target值。
     

    设置ASMM

    • SGA_TARGET  != 0    
    • PGA_AGGREGATE_TARGET !=0
    • MEMORY_TARGET = 0

    设置MEMORY_TARGET参数为0,ALTER SYSTEM SET MEMORY_TARGET = 0;
    记下来设置SGA_TARGET的值,也可以设置各个组件的最小值。

    ALTER SYSTEM SET SGA_TARGET = 992M;
    ALTER SYSTEM SET SHARED_POOL_SIZE = 0;
    ALTER SYSTEM SET LARGE_POOL_SIZE = 0;
    ALTER SYSTEM SET JAVA_POOL_SIZE = 0;
    ALTER SYSTEM SET DB_CACHE_SIZE = 0;
    ALTER SYSTEM SET STREAMS_POOL_SIZE = 0;

    SGA中的各个组件值可以自定义,自定义为该组件的最小值,然后数据库根据运转情况进行调整相应的值。

    设置手动管理

     
     
  • 相关阅读:
    任意进制间的转换
    判断线段相交 hdu 1086
    大数(高精度)加减乘除取模运算
    sqlserver2008透明书库加密
    数据库质疑
    sql2005 和sql2008 同时安装
    editrules
    sqlserver 表值函数
    sqlserver释放内存
    sql2008查看备份进度
  • 原文地址:https://www.cnblogs.com/Leo-Cjh/p/13471083.html
Copyright © 2020-2023  润新知