oracle重做日志文件详细 redo log file
1 redo log file的作用
redo log file记录了对数据库的所有修改信息。有了这些修改信息,我们就可以用于恢复数据。如果数据库所在主机突然断电,导致实例失败,通电启动后oracle会使用在线重做日志将系统恢复到断电前的那个时刻。如果包含数据文件的磁盘驱动器出现了永久性故障,oracle会使用归档重做日志以及在线重做日志,将磁盘驱动器的备份恢复到适当的时间点。另外,如果你“无意地”删除了一个表,或者删掉了一些重要的信息,而且提交了操作,则可以恢复一个备份,并让oracle使用这些在线和归档重做日志文件将其恢复到意外发生前的那个时刻。
前面提到了两种类型的重做日志文件:在线(online)和归档(archived)。下面进行介绍。
2 在线重做日志
每个oracle数据库都至少有两个在线重做日志文件组。每个重做日志组都包含一个或多个重做日志成员,组里的重做文件成员之间是镜像关系,也就是内容是一样的,不过所在磁盘位置不一样。oracle循环使用在线重做日志文件组,假设有3个重做日志文件组,oracle会先往重做日志文件组1写,写满后会切换至重做日志文件组2。同样,重做日志文件组2写满后切换至组3。组3也写满后会切换回组1。
从重做日志文件组1切换至组2时,oracle会启动一个检查点。此时,dbwr开始将重做日志组1所保护的所有脏块写至磁盘。在dbwr完成此操作之前,oracle不能重用组1。若在dbwr完成此操作之前企图使用组1,会在alert日志中得到以下消息