一、DBWR进程介绍

DBWR进程执行将数据块缓冲区写入数据文件的工作,是负责缓冲存储管理的一个Oracle后台进程。在修改DB Cache中的某个缓冲区时,会将它标志为“DIRTY”,DBWR的主要任务将这些标为“DIRTY”的缓冲区写入磁盘,使缓冲区保持“CLEAN”。

由于缓冲区填入数据库或被用户进程弄脏,未用的缓冲区数目会减少,最终可能导致用户进程从磁盘读入块到内存存储区时无法找到未用的缓冲区。DBWR将管理缓冲存储区,使用户进程总能得到未使用的缓冲区。

二、缓冲物刷盘算发

Oracle采用LRU算发(最近最少使用)保持内存中的数据块时最近使用的,使I/O最小。

下面情况预示DBWR要将弄脏的缓冲区写入磁盘

1、当服务进程将缓冲区移入“DRITY”链,此“DRITY”链达到临界长度,该服务进程通知DBWR进行写入操作。这个临界长度是数据库隐含参数_DB_BLOCK_WRITE_BATCH的一半

2、服务进程在LRU表中查找可用的数据块缓冲时,查找了参数_DB_BLOCK_MAX_SACN_CNT所定义数量的缓冲区后,仍然没有查到,那么它将停止查找,并通知DBWR进行数据写入。

3、如果DBWR在3秒内未活动,则出现超时。在这种情况下,DBWR对LRU表查找指定数目的缓冲区,将所找到的任何脏的缓冲区写入磁盘。查找的缓冲区为_DB_BLOCK_WRITE_BATCH的两倍。

4、再出现检查点时,LGWR指定一修改缓冲区表必须写入到磁盘,而DBWR负责将制定的缓冲区写入磁盘。

三、DBWR设置

初始化参数db_writer_processe决定了启动多少个DBWn进程。

在多CPU,那么一个实例可以设置多个DBWR。这样的实例中,DB Cache被分为多个区,每个DBWR管理一个或者几个DB Cache分区。

这样的结构可以让一些数据块写入一个磁盘,另一些数据块写入其他磁盘,从而提升并发写入的性能。

Oracle 后台进程(二)DBWR进程的更多相关文章

  1. Oracle 后台进程(四)CKPT进程

    一.CKPT简介 检查点是一个数据库事件,它把修改数据从高速缓存写入磁盘,并更新控制文件和数据文件.检查点分为三类:1)局部检查点:单个实例执行数据库所有数据文件的一个检查点操作,属于此实例的全部脏缓 ...

  2. 【Oracle】-【体系结构】-【DBWR】-DBWR进程相关理解

    对DBWR的一些理解 首先从名称上,DBWR全称是Database Writer Process,属于Oracle后台进程的一种,有的地方也叫DBWn,我想这里是出于DBWR进程个数的原因,DBWR进 ...

  3. oracle后台进程详解

    oracle后台进程伴随实例的启动而启动,他们主要是维护数据库的稳定,相当于一个企业中的管理者及内部服务人员.他们并不会直接给用户提供服务.   一:database write--数据写入  DBW ...

  4. oracle后台进程2

    oracle中的进程共分为三类:用户进程.服务进程.后台进程.其中后台进程伴随实例的启动而启动,他们主要是维护数据库的稳定,相当于一个企业中的管理者及内部服务人员.他们并不会直接给用户提供服务. 一: ...

  5. Oracle 后台进程 详细说明

    一. 进程概述 先来看一下Oracle 11g 的架构图. 看起来比较模糊,我已经上传到了csdn 的下载. 是个pdf 文件, 2m 多. 那个看起来比较清楚. 也对每个进程做了解释. 下载地址:O ...

  6. 【ora10,4】oracle后台进程介绍:

    一.SMON(System MONitor) 系统监控进程:      在数据库启动过程中,SMON排在CKPT进程之后,在Oracle9i中排在第六号的位置: PMON started with p ...

  7. Oracle 后台进程介绍

    一 进程分类: 1.服务器进程(server process): 依据客户请求完毕工作.如接收和处理应用发送的SQL语句 2.后台进程(background process): 随数据库而启动,用于完 ...

  8. Oracle后台进程

    后台进程简介 启动例程时,Oracle不仅会分配SGA,还会启动后台进程:关闭例程时,Oracle不仅会释放SGA所占用的内存空间,而且还会释放后台进程所占用的Cpu和内存资源.Oracle提供了很多 ...

  9. Oracle GoldenGate 二、配置和使用

    Oracle GoldenGate 二.配置和使用 配置和使用GoldenGate的步骤 1 在源端和目标端配置数据库支持GoldenGate 2 在源端和目标端创建和配置GoldenGate实例 3 ...

随机推荐

  1. python学习-21 集合 2

    集合的其他方法 1.交差补集 math = {'xm','xh','xg','xx'} english ={'xm','xh','dm','john'} print(math.symmetric_di ...

  2. HADOOP 与 jupyterlab 链接

    首先     咱们先把jdk1.0.0_60.tar.gz     和       hadoop-2.7.2.tar.gz    的压缩包放到root根目录下的opt文件夹下      如图: 然后  ...

  3. SysTick 定时实验(非中断)

    实验目的:利用 SysTick 产生 1s 的时基,LED 以 1s 的频率闪烁. 编程要点 1.设置重装载寄存器的值 2.清除当前数值寄存器的值 3.配置控制与状态寄存器 过程 我们创建了两个文件: ...

  4. 从零开始学ios开发(二):Hello World!

    今天看了书的第二章,主要介绍了一下Xcode的使用方法和一些必要的说明,最后做了一个“Hello World!”的小程序,其实就是在屏幕上用一个Label显示“Hello World!”,一行代码都没 ...

  5. IE6/7下Select控件Display属性无效解决办法

    HTML的Select控件,C#的DropDownList服务器控件 设置父类型Display属性之后,在IE6/7上无效 直接将下段javascript脚本添加到页面中即可 <script t ...

  6. ant Windows下环境变量配置 安装 编译

    下载 官网:[http://ant.apache.org/] 其他版本:[http://archive.apache.org/dist/ant/binaries/] 点击这个进入下载页面 Window ...

  7. opencv-02--图像的邻域操作

    图像的邻域操作 很多时候,我们对图像处理时,要考虑它的邻域,比如3*3是我们常用的,这在图像滤波.去噪中最为常见,下面我们介绍如果在一次图像遍历过程中进行邻域的运算. 下面我们进行一个简单的滤波操作, ...

  8. 编程模型&编程思想

    编程模型 1.面向对象编程OOP 2.面向切面编程AOP Java静态接口,Java动态代理,字节码提升. 面向切面的两个方面: 拦截判断:方法,注解,参数,异常 拦截执行:前置,后置,返回,异常 3 ...

  9. win8怎么强制删除文件

    转自:https://www.jizhuba.com/zhichanglicai/20180119/5705.html 方法/步骤1.例如我们想删除桌面上的“123”文件夹,发现无法删除.2.可以这样 ...

  10. 常用的virsh管理命令

    常用的virsh管理命令 列出所有的虚拟机 [root@ubuntu ~]# virsh list --all 显示虚拟机信息 [root@ubuntu ~]# virsh dominfo CentO ...