Oracle中IO的产生解析

   

  I/O 包括了读、写两部分,先介绍 Oracle数据库 中写操作的产生。
 
2.1. 写
  介绍写操作之前,先简单的看下 Oracle 的物理结构:Oracle 的物理文件包括以下三种文件:控制文件(Control
  Files)、重做日志文件(Redo Log Files)、数据文件(datafiles)。而数据文件中,根据功能的不同,还可以
  分为:系统数据文件、用户数据文件、临时空间文件和回滚段文件。另外,如果数据库的 Archive  Log 模
  式被激活,还存在归档日志文件。Oracle 的 I/O 产生,就是对这些文件的数据读、写操作。下面再详细看
  下几种主要写操作的产生及其过程。
 
2.1.1.  控制文件
  控制文件中记录了整个数据库的物理结构信息。同时控制文件还记录系统和各个数据文件的 SCN(System
  Change  Number,关于 SCN 可以参见文章《Orac le  SCN 机制详解》)信息,以用于数据恢复,因此数据文
  件上的 SCN 变化后, Oracle数据库 也会相应修改控制文件上的 SCN 信息。
 
2.1.2.  Redo Log
  在非直接写(Direct Write)的情况下,事务中的写操作都会产生 Redo Log,作为数据块异常关闭时的恢复
  记录。同样,和写用户数据类似,Redo Log 也不会被直接写入 Redo Log 文件,而是先写入 Log Buffer 中。
  Log Buffer 是一个可以循环重用的缓存区。LGWR 进程负责将 Log Buffer 中的记录写入 Redo Log File 中去。
  一旦 Log Buffer 中的条目被写入了 Redo Log 文件中,就可以被重用了。
  为了保证事务尽快获得 Log Buffer,LGWR 进程一般会尽快将 Log  Buffer 中的数据写入 Redo Log 文件中去。
  在以下几种情况下,LGWR 会将一个连续的 Log  Buffer 写入 Redo Log 文件中去:
  A.当一个事务提交(COMMIT)时。
  B.每 3 秒钟写一次 Log Buffer。
  C.当 Log Buffer 满 1/3 时。
  D.当 DBWn 进程将“脏”数据写入磁盘时。

你可能感兴趣的:(oracle,oracle,IO,职场,休闲)