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

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

对DBWR的一些理解


首先从名称上,DBWR全称是Database Writer Process,属于Oracle后台进程的一种,有的地方也叫DBWn,我想这里是出于DBWR进程个数的原因,DBWR进程在一个Oracle Server中可以最多有20个,编号是DBW1-DBW9和DBWa-DBWj,下面根据不同文档、官方手册以及高手帖的理解,总结关于DBWR的一些关键点:

1、DBWR是将数据库buffer cache中的dirty数据块写到磁盘中,这里dirty表示的是buffer cache中被修改的buffer缓存,DBWR是根据LRU算法实现从缓存写到磁盘的,与dirty相对的还有cold(或clean)块的概念,即未修改的缓存。根据LRU算法,DBWR会将最近最少被使用的buffer写入磁盘,以让其它的数据内容可以写入该缓存,也就是free buffer增加,否则一味地占用buffer cache,新的数据就不能利用buffer cache了。

2、新增的DBWn不能在单处理器中使用,对于数量,每8个CPU可以至少利用一个DBWR进程,如果是处理器组,那么有多少个处理器组,就应该有多少个DBWR进程。DBWR的个数可以由初始化参数DB_WRITER_PROCESSES决定。总结来讲,DBWR的个数如果没有在启动时由用户指定,那么Oracle会根据CPU和处理器组的个数来设置DB_WRITER_PROCESSES参数。

3、DBWR进程会将dirty缓存写入磁盘,条件是:

(1)、服务进程在扫描buffer个数阈值(由隐藏参数:_db_block_max_scan_pct,代表已经扫描的buffer header的个数占整个LRU链表上buffer header总数的百分比)后还没找到一块clean未用的缓存时,会触发DBWR。当执行其它处理时,DBWR会异步地将dirty缓存写入磁盘。

(2)、当出现checkpoint时,DBWR会将dirty的缓存写到磁盘。

(3)、数据文件或表空间离线。

(4)、表空间在备份。

(5)、表空间只读。

(6)、超时。

(7)、表被删除或截断。

4、DBWR是批量(多块)写入,以提高性能。块的数量在不同的操作系统有不同的设置。

5、关于DB_WRITER_PROCESSES,官方文档注明它的默认值是1或CPU数量/8,以及任何大于它的值,范围是1到20。

最重要的一点就是不是每次交易执行commit时,都会立即调用DBWR,换句话说,commit时DBWR不会做任何事情。

目录
相关文章
|
7月前
|
缓存 Linux Shell
Linux进程解析(冯诺依曼体系结构,操作系统,进程初步解析)
Linux进程解析(冯诺依曼体系结构,操作系统,进程初步解析)
88 1
|
7月前
|
存储 缓存 Linux
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
|
4月前
|
存储 SQL Oracle
初步了解oracle的体系结构
初步了解oracle的体系结构
41 1
|
5月前
|
存储 缓存 安全
【Linux】冯诺依曼体系结构与操作系统及其进程
【Linux】冯诺依曼体系结构与操作系统及其进程
174 1
|
7月前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
116 7
|
7月前
|
消息中间件 分布式计算 负载均衡
软件体系结构 - 架构风格(6)进程通信架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(6)进程通信架构风格
180 0
|
7月前
|
存储 SQL Oracle
Oracle系列十九:Oracle的体系结构
Oracle系列十九:Oracle的体系结构
|
Linux Shell
Linux进程理解(冯诺依曼体系结构,操作系统,进程概念和基本操作)(下)
Linux进程理解(冯诺依曼体系结构,操作系统,进程概念和基本操作)
114 14
|
存储 Linux Windows
Linux进程理解(冯诺依曼体系结构,操作系统,进程概念和基本操作)(上)
Linux进程理解(冯诺依曼体系结构,操作系统,进程概念和基本操作)
117 10
|
7月前
|
存储 安全 Linux
【Linux】:体系结构与进程概念
【Linux】:体系结构与进程概念
71 0