暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle ASMM

原创 不吃草的牛_Nick 2022-05-13
465

初始化参数 SGA_TARGET,通过指定这个参数,让 Oracle 自动管理 SGA 中以下大多数的内存分配。SGA_TARGET 是个动态参数,但是该参数不能超过SGA_MAX_SIZE 参数的设置


并非所有 SGA 组件都可以自动调整,可以自动分配的内存包括 Buffer Cache、Shared Pool、Java Pool、 Large Pool


启用自动共享内存管理,我们可以估算一个 SGA 的总大小,然后设置 SGA_TARGET 参数为非零值, Oaracle 将启用自动共享内存管理。自动共享内存管理需要 STATISTICS_LEVEL参数设置为 TYPICAL 或者 ALL.。


以下相关初始化参数还是需要手工配置的: 非标准 BLOCK_SIZE 的 Cache、Keep/Recycle Buffer Cache、Redo Log Buffer、Streem Pool


自动的共享内存管理引入了一个新的后台进程:MMAN(Memory Manager)。该进程用以动态调整内存组件。动态调整的依据来自系统不间断收集的内存建议。


如果不想使用自动共享内存管理的新特性,Oracle 也允许使用手工管理,只需要简单的将SGA_TARGET 参数设置为 0,Oracle 就会回到手工管理的模式,当前的各内存组件值会被计入spfile,做为手工管理的初始值使用.


设置了 SGA_MAX_SIZE 参数,启用了自动共享内存管理之后,相关内存参数值会处于未设置状态:

select name,value from v$parameter where name in ('large_pool_size','java_pool_size', 'shared_pool_size','streams_pool_size','db_cache_size');


而真正决定各组件大小的,是由一组新引入的参数决定:

set linesize 132

column name format a30

column value format a25

column description format a60

SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc description

  FROM SYS.x$ksppi x, SYS.x$ksppcv y

 WHERE x.inst_id = USERENV('Instance')

   AND y.inst_id = USERENV('Instance')

   AND x.indx = y.indx

   AND x.ksppinm like '%pool_size%';


__shared_pool_size

335544320

Actual size in bytes of shared pool

__large_pool_size

16777216

Actual size in bytes of large pool

__java_pool_size

16777216

Actual size in bytes of java pool

__streams_pool_size

33554432

Actual size in bytes of streams pool

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论