图解Oracle数据库(一)
下列情况预示DBWR 要将弄脏的缓冲区写入磁盘: 1、当一个服务器进程将一缓冲区移入“脏”表,该脏表达到临界长度 时,该服务进程将通知DBWR进行写。该临界长度是为参数DB-BLOCK-WRITE-BATCH 的值的一半。2、 当一个服务器进程在LRU表中查找DB-BLOCK-MAX-SCAN-CNT缓冲区时,没有查到未用的缓冲区,它停止查找并通知DBWR进行写。
3、出现超时(每次3秒),DBWR 将通知本身。
4、 当出现检查点时,LGWR将通知DBWR
在前两种情况下,DBWR将脏表中的块写入磁盘,每次可写的块数由初始化参数 DB-BLOCK-WRITE-BATCH所指定。如果脏表中没有该参数指定块数的缓冲区,DB WR从LUR表中查找另外一个脏缓冲区。
如果DBWR在三秒内未活动,则出现超时。在这种情况下DBWR对LRU表查找指定数目的缓冲区,将所找到任何脏缓冲区写入磁盘。每当出现超时,DBWR查找一个新的缓冲区组。每次由DBWR查找的缓冲区的数目是为寝化参数DB-BLOCK-WRITE-BATCH的值的二倍。如果数据库空运转,DBWR最终将全部缓冲区存储区写入磁盘。在出现检查点时,LGWR指定修改缓冲区表必须写入到磁盘。
页:
[1]