博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 后台进程(二)DBWR进程
阅读量:7223 次
发布时间:2019-06-29

本文共 869 字,大约阅读时间需要 2 分钟。

一、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分区。

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

转载于:https://www.cnblogs.com/xibuhaohao/p/10918959.html

你可能感兴趣的文章
SQL2005中时,Diagrams的问题
查看>>
每个分类取最新的几条的SQL实现
查看>>
智慧医疗“验血查癌”或会实现
查看>>
linux中时间精度的获取问题【转】
查看>>
Windows Workflow Foundation学习资源
查看>>
把字符串转化为类型
查看>>
Azure PowerShell (2) 修改Azure订阅名称
查看>>
ss命令使用示例
查看>>
http的请求和响应过程3
查看>>
借用Snippet插件美化博客中的代码
查看>>
Java:文件类File的详解
查看>>
watir学习--baidu搜索示例
查看>>
Hadoop Hive与Hbase关系 整合
查看>>
06.GitHub实战系列~6.过滤器过滤掉的文件如何上传
查看>>
HTML与XML总结
查看>>
ASP.NET 程序安全性 (一) web.config加密与解密
查看>>
计算机中的颜色XII——快速计算纯色的色相值(新的公式)
查看>>
swift:入门知识之枚举和结构体
查看>>
insert/update/delete与undo的关系
查看>>
深度神经网络(DNN)的正则化
查看>>