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

oracle amm和asmm,AMM和ASMM理解 | 学步园oracle11g新出参数MEMORY_MAX_TARGET和MEMORY_TARGET进行自动管理PGA和SGA称之为自动化内存管理(AutomaticMemoryManagement,AMM)MEMORY_MAX_TARGET:MEMORY_TARGET所能设定的最大值。非动态可调MEMORY_TARGET:操作系统上Oracle所能使用的最大内存值。动态参数,M…

大家好,又见面了,我是你们的朋友全栈君。

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

MEMORY_MAX_TARGET  :MEMORY_TARGET所能设定的最大值。非动态可调

MEMORY_TARGET :操作系统上 Oracle 所能使用的最大内存值。动态参数,MEMORY_TARGET 是PAG 和SGA的总和.memory_target 为 0 是手动管理,非0为自动管理

sga_max_size : sga_max_size 是sga的最大值

sga_target  :  sga_target   是自动和手段管理 sga_target 为0 是手动管理,非0 是自动管理

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

SQL> show parameter result_cache_size

用来缓存sql语句结果

NAME         TYPE          VALUE

———————————— ——————————— ——————————

client_result_cache_size      big integer         0

如果指定了memory_target 而没有指定memory_max_target 重启后,memory_max_target 和memory_target 大小相等

如果指定了memory_max_target 而没有指定 memory_target重启后memory_target 为0

SQL> show parameter memory

NAME                                 TYPE        VALUE

———————————— ———– —————————

hi_shared_memory_address             integer     0

memory_max_target                    big integer 1232M

memory_target                        big integer 1232M

shared_memory_address                integer     0

当设置  memory_max_target < memory_target 时:

SQL> alter system set memory_max_target=1000M scope=spfile;

系统已更改。

SQL> shut immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL>

SQL>

SQL>

SQL> startup

ORA-00837: Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET

11g AMM管理方式:

SQL> select name,bytes/1024/1024 from v$sgainfo;

NAME                             BYTES/1024/1024

——————————– —————

Fixed SGA Size                        1.31111908

Redo Buffers                            5.015625

Buffer Cache Size                            496

Shared Pool Size                             216

Large Pool Size                                8

Java Pool Size                                 8

Streams Pool Size                              8

Shared IO Pool Size                            0

Granule Size                                   8

Maximum SGA Size                      742.328125

Startup overhead in Shared Pool               64Free SGA Memory Available                      0

SQL> show parameter sga

NAME                                 TYPE        VALUE

———————————— ———– ——-

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 744M

sga_target                           big integer 0

SQL> show parameter memory

NAMETYPE

VALUE———————————— ———– ——-

hi_shared_memory_address             integer     0

memory_max_target                    big integer 1232M

memory_target                        big integer 1232M

shared_memory_address                integer     0

从上面的参数可以看出,memory_target 非0 说明 sga和pga是统一自动管理

就不用看sga_target 为0的意义

在10g管理方式是自动共享内存管理(Automatic Share Memory Manage) ASMM

ASMM 方式管理,把memory_target 设置为0

SQL> alter system set memory_target=0 scope=spfile;

SQL> show parameter memory

NAME                                 TYPE        VALUE

———————————— ———– ———

hi_shared_memory_address             integer     0

memory_max_target                    big integer 0

memory_target                        big integer 0

shared_memory_address                integer     0

说明 AMM管理方式和ASMM管理方式一样

只要设置memory_target 为 0 是oracle内存手动管理,非0oracle内存自动管理

SQL> show parameter sga

NAME                                 TYPE        VALUE

———————————— ———– ——-

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 144M

sga_target                           big integer 144M

说明在memory_target=0的情况下,oracle内存的手动管理,sga_target=144M,sga的自动管理

SQL> show parameter memory

NAME                                 TYPE        VALUE

———————————— ———– ———–

hi_shared_memory_address             integer     0

memory_max_target                    big integer 0

memory_target                        big integer 0

shared_memory_address                integer     0

SQL> alter system set sga_target=0 ;

系统已更改。

SQL> show parameter sga

NAME                                 TYPE        VALUE

———————————— ———– ——————–

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 144M

sga_target                           big integer 0

说明在memory_target=0的情况下,oracle内存的手动管理,sga_target=0M,sga是手动管理

SQL> show parameter sga

NAME                                 TYPE        VALUE

———————————— ———– ——————————

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 144M

sga_target                           big integer 0

SQL> alter   system set sga_target=120;

系统已更改。

SQL> show parameter sga

NAME                                 TYPE        VALUE

———————————— ———– ——————————

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 144M

sga_target                           big integer 144M

SQL> select component, granule_size/1024/1024 M from v$sga_dynamic_components;

COMPONENT                                                                 M

—————————————————————- ———-

shared pool                                                               4

large pool                                                                4

java pool                                                                 4

streams pool                                                              4

DEFAULT buffer cache                                                      4

KEEP buffer cache                                                         4

RECYCLE buffer cache                                                      4

DEFAULT 2K buffer cache                                                   4

DEFAULT 4K buffer cache                                                   4

DEFAULT 8K buffer cache                                                   4

DEFAULT 16K buffer cache                                                  4

COMPONENT                                                                 M

—————————————————————- ———-

DEFAULT 32K buffer cache                                                  4

Shared IO Pool                                                            4

ASM Buffer Cache                                                          4

已选择14行。

granule size 是 4M大小

SQL> alter   system set sga_target=120M;

alter   system set sga_target=120M

*

第 1 行出现错误:

ORA-02097: 无法修改参数, 因为指定的值无效

ORA-00827: 无法将 sga_target 压缩到指定值

SQL> alter   system set sga_target=0;

系统已更改。

SQL> show parameter sga

NAME                                 TYPE        VALUE

———————————— ———– ————

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 144M

sga_target                           big integer 0

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137517.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL配置文件路径

    MySQL配置文件路径一、文件名和路径1.Linux中:/etc/my.cnf2.windows中:C:\ProgramData\MySQL\MySQLServer5.7\my.ini二、常见问题:1.windows下mysql配置文件my.ini的位置(1)找到“服务”,搜索MySQL(2)右击属性查看位置可以看到在可执行文件的路径是C:\ProgramData\MySQL\MySQLServer5.7\my.ini,即mysql的配置文件在该目录下。2.c盘没有ProgramData这个文件夹

    2022年5月29日
    63
  • android armeabi armeabi-v7a(v7a和x86)

    了解起因昨天师傅问,你知道这俩个是什么么?有什么作用么?(如下图所示)现在还记得我那一脸蒙比的样子,诺诺的回答不晓得。师傅说这个是为了兼容一些手机,(此处省略滔滔不绝若干。。。)。听的我更加蒙比了,之前只是知道要把.so库扔进去,但是为什么扔,就不懂了,何谈我怎会知道那目录?(PS:还是自己差太多了。。。)好尴尬。。。查询前期准备首先按照四个部分来查询,分别如下:一.lib…

    2022年4月13日
    132
  • phpstome2021.5.1 激活码(最新序列号破解)[通俗易懂]

    phpstome2021.5.1 激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    45
  • python字符串替换replace函数

    python字符串替换replace函数python字符串替换replace函数replace(old,new,count)old,旧字符或字符串new,新字符或字符串count,最大替换数量,从起始位置开始计数,默认替换所有注意:replace函数替换字符串,不影响原字符串示例1:默认替换所有s1=’2019.10.30’s2=s1.replace(‘.’,’-‘)s2’2019-10-30’…

    2022年6月7日
    35
  • javaweb之每次访问的时候都在浏览器上返回上次访问的时间,原码

    javaweb之每次访问的时候都在浏览器上返回上次访问的时间,原码需求:第一次访问的时候返回一个welcome,第二次访问及以后则返回上一次的访问时间首先做一个工具类,这个类的功能是找到特定名字的cookie,当然你也可以用工具类,直接将这个方法写在原码的下面直接应用,但是这个工具类还是比较有用的,很多时候都会用到,所以把它封装成了一个工具类。packagetools;importjavax.servlet.http.Cookie;publ…

    2022年7月8日
    19
  • Tomcat面试题+http面试题+Nginx面试题+常见面试题

    Tomcat面试题+http面试题+Nginx面试题+常见面试题Tomcat面试题1、Tomcat的缺省端口是多少?怎么修改?答:缺省端口是8080,若要修改,可以进入Tomcat的安装目录下找到conf目录下的server.xml文件,找到该文件中的Connector字段中的port。2、Tomcat有哪几种connector运行模式(服务的请求方式)?答:三种。修改它的运行模式需要在主配置文件中找到connector字段中的protocol进行修改…

    2022年5月29日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号