ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 日志管理-3

日志管理-3

原创 Linux操作系统 作者:xhailiang 时间:2006-11-24 00:00:00 0 删除 编辑
上次我们说明了执行REDO日志文件写入处理的LGWR进程的工作机理,这次要说明DBWR与LGWR在物理I/O方面的不同点。

很多人可能会想到:延迟写入减少了对数据文件的物理I/O。但是,这些减少的物理I/O最终仍然会在REDO日志文件上执行。这就是实际情况。因为,DBWR对数据文件执行的物理I/O与LGWR对REDO日志文件执行的物理I/O的差异很大。



下图说明了两者的不同点。


主要的两大差异是:
1. DBWR会对几个数据文件执行随机任意写入,LGWR只会对当前在线REDO日志文件进行顺序写入。
2. Server进程会对数据文件进行写入,但是不会对REDO日志文件进行写入(执行instance恢复处理的时候, SMON会执行REDO日志文件的写入,通常REDO日志文件可以视为“写入专用”)。

根据上面的差异,请大家想想频繁执行更新处理的网站。

频繁执行更新处理,代表对数据文件(磁盘)会产生频繁的I/O,也就是会数据文件频繁的写入和读取。每次执行写入和读取的时候,磁盘head就会移动到目的位置,也就是发生“seek overhead”。如果统计seek overhead所花费的时间(计入磁盘I/O),你就会发现,这就可能是降低性能的原因。

然而,对日志文件的读取操作完全不会发生(数据库出现故障执行复原处理的情况除外),因此REDO日志文件因读取而发生的seek overhead完全不存在。再则,REDO日志文件都是顺序写入的,即总是从head的所在位置开始写入。 因此,无须将head移到要写入的位置而产生seek overhead,所以相较于对数据文件的写入,REDO日志文件执行写入处理更快(如果REDO日志文件所在的磁盘上还有其他文件的话就另当别论)。此外,对REDO日志文件执行的写入是以512byte为单位(OS文件的数据块尺寸)执行同步写入。这也是REDO日志文件的写入处理比较快的原因之一。

下次我们将分析写入REDO日志缓冲区(文件)中的数据。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/308563/viewspace-171946/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 日志管理-2
下一篇: 日志管理-4
请登录后发表评论 登录
全部评论

注册时间:2008-02-17

  • 博文量
    270
  • 访问量
    417284