Oracle.内存管理相关参数

上一篇 / 下一篇  2008-06-13 00:05:31 / 个人分类:ORACLE

测试中遇到压力上不去的问题,查看AWR报告,Top 5 Events里面"free buffer waits"AVG-wait times很高。

关于free buffer wait的分析和调优云云,就不多说了。后来经过检查,本人遇到的问题主要是虽然提高了sga_max_size的大小和意愿使用ASSM,但是由于初始化参数里设置SGA_TARGET=0,造成数据库内存分配不合理,并没有真正动态调整内存使用,而一些SGA参数设置不合理从而引起"free buffer wait event"

重新设置SGA_TARGET的值(>0,略小于SGA_MAX_SIZE),问题解决。整理了一下学习过程中的知识点,如下:

 

1. SGA

auto-tuned parameters,可动态分配参数

·        SHARED POOL

·        LARGE POOL

·        JAVA POOL

·        DB CACHE (using the DB_BLOCK_SIZE value)

·        STREAMS_POOL_SIZE (Oracle10gR2)

manual parameters,必须预定义参数

·        DB_<KEEP/RECYCLE>_CACHE_SIZE

·        DB_nK_CACHE_SIZE (non default block size)

·        LOG_BUFFER

·        FIXED SGA

·        STREAMS_POOL_SIZE (Oracle10gR2)

 

2. ASMM, Automatic Shared Memory Management

·        ORACLE 10g以前,数据库需要人工设置buffer cache, shared pool, java pool, and large pool

·        ORACLE 10g开始,引用了ASMM机制,通过SGA_TARGET参数的设定,可以实现数据库自动分配buffer cache (default pool), Shared pool,Large pool and Java pool的大小。

·        10R2后,streams pool也包含进ASSM,实现自动分配。

·        如果使用ASMM,则数据库设置必须满足以下2个条件:

STATISTICS_LEVEL=TYPICAL or ALL

SGA_TARGET > 0

 

3. SGA_TARGET

·        SGA_TARGET的默认值为0。如果值为0,则ASSM不起作用,必须自定义buffer cache, shared pool, java pool, and large pool的值

·        SGA_TARGET值非0ASMM才可以自动分配调节内存。

·        SGA_TARGET是动态参数,可以使用"alter system set sga_target=** ;"命令调整

·        SGA_TARGET始终<= SGA_MAX_SIZE

·        INSTANCE已经OPEN后,SGA_MAX_SIZE不可再修改

 

4.      关于free buffer wait调优的重要参数

·        Buffer cache

·        DB_BLOCK_WRITE_BATCH

·        DB_WRITER_PROCESSES

 


TAG:

引用 删除 me   /   2008-07-11 14:00:24
自己汗一个,ASMM是自动内存管理。ASSM是自动段管理
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-08-22  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 1104
  • 日志数: 647
  • 影音数: 1
  • 建立时间: 2008-01-18
  • 更新时间: 2008-08-01

RSS订阅

Open Toolbar