Oracle DBWn(DBWR)写数据文件

本文介绍了Oracle数据库中的DBWn进程,它负责将缓冲区的脏缓冲写入数据文件。DBWn根据LRU算法管理缓冲,当脏列表达到一定阈值或扫描LRU列表未找到足够空闲缓冲时,会触发DBWn写脏数据。此外,讨论了DBWn写数据文件的过程,包括空闲数据块的管理和行迁移、行链接的情况。
摘要由CSDN通过智能技术生成
Oracle DBWn(DBWR)写数据文件
 

首先介绍下DBWn(和DBWR是一个概念,DBWR就是database writer,就是写数据文件的进程, 后来允许多进程写data file,所以改成DBWn了):

DBWn:数据块写进程,负责将Oracle数据库缓冲区的脏缓冲写到数据文件内(脏缓冲是已经被修改,但未写入数据文件的数据)为了保证缓冲区能有空余缓冲供用户使用

DBWn会根据LRU(最近最少使用)算法找出相应的脏缓冲,并将其写入数据文件,初始参数DB_WRITER_PROCESSES,可以设定Oracle的DBWn进程个数(最大20)

DBWn在将脏缓冲写入的时候,一次可以写入多个数据块的数据

DBWn触发的条件:

1、当dirty list达到一定数量(阀值25%),,导致Server Proceess通知DBWn写赃数据

2、当扫描LRU list达到一定数量还未找到free buffer 时,停止搜索free buffer,直接通知DBWn写脏数据

3、checkpoint写数据

       通常数据的访问和修改都是需要通过buffer cache来完成的,当一个server process访问数据的时候,首先需要确定的是,我们所需要的数据在buffer cache是否存在,如果存在我们还需要根据data buffer的状态来判断是否进行db block gets 还是consistent gets,如果不存在,则我们需要在buffer cache中寻找足够

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值