ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle温故知新--buffer cache(一)特性及参数

oracle温故知新--buffer cache(一)特性及参数

原创 Linux操作系统 作者:bbs159 时间:2011-06-15 08:48:07 0 删除 编辑

这段时间没事,把以前的一些调优的资料,翻出来看看,重新整理了

一、buffer cache特性

1.工作原理:

Buffer cache是Oracle SGA中的重要组成部分, 所有用户都可以共享这些块,server process进程访问数据时,S erver process一次性可以读取多个数据块;DBwn负责往数据文件读写文件
     这里在给出一份更详细的总结.通常数据的访问和
     修改都是需要通过buffer cache来完成的,
     当一个server process访问数据的时候,
     首先需要确定的是,我们所需要的数据在
     buffer cache中是否存在,如果数据在buffer中存在呢
     ,我们还需要根据data buffer的状态,
     来判断是否进行db block gets还是consistent gets,
     如果数据在buffer中不存在,
     则我们需要在buffer cache中寻找足够的空间来
     加载我们所需要的数据,
     如果在buffer cache中我们找不到足够的空间,
     那么我们就需要触发DBWn进程,
     去写出脏数据,用来释放我们的buffer空间

2 buffer在BC有四种状态: 
       pinned:正在写,占用,只能被一个进程占用
       clear:干净的数据,与数据库文件中CR 快照是同步的,没有被进程使用
       feee/unused:空闲
       dirtyL脏数据块,与clear相对的
3  使用两个列表管理缓冲区高速缓存中的块
 – 最近最少使用的 (LRU) 列表用于保持内存中最近访问的块 列表中的块
 按照从最近最常使用 (MRU) 到最近最少使用的顺序组织
 – 灰数据列表指向缓冲区高速缓存中的块 这些块虽已修改但尚未写入 磁盘
4  DB_BLOCK_CHECKNUM 参数
        如果DB_BLOCK_CHECKNUM设置为true的话,那么在数据库底层,会给造成系统带来2%左右系统开销,增加系统可靠性

二 初始化参数

    1)db_block_size 规定主块的大小,决定了system中
      primary buffer cache(recycle keep default) 表BLOCK大小
      db_cache_size
      db_keep_cache_size
      db_recycle_cache_size
      2)动态调整参数      
       db_clock_checksum(1% 2%)
       db_cache_advice(off/ready/on) 打开预测参考值,动态收集数据性
       能资料,为设置db_cache,提供参考。该参数只能在session级别使用
       状态由off---ready -------on
       alter system set db_cache_advice=''
      3) v$db_cache_advice 视图
         关于该视图,可以参考帮助文档

三 附上buffer cache 结构图,

     以便加深理解

BUFFER CACHE结构图.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13824386/viewspace-697951/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-05-11

  • 博文量
    26
  • 访问量
    40761