Oracle体系结构(二)---日志处理机制

来源:互联网 发布:后期用什么软件 编辑:程序博客网 时间:2024/06/05 03:24


   上篇博文中我们对Oracle的体系结构有了宏观了解,对PGA、SGA的共享池、数据缓存区的工作机制做了详细介

绍。接下来介绍一下日志缓冲区、日志文件和后台进程LGWR、ARCH的作用。即下图中标记出的方框部分。



  作用:日志缓冲区保存了数据库相关操作的日志,记录了这个动作,然后由LGWR后台进程将其从日志缓冲区
这个

内存区写进磁盘的日志文件里。

  

  目的:为了便于将来出现异常情况时,可以根据日志文件中记录的动作,再继续执行一遍,从而保护数据的安

全。举个简单的例子:

1)新建animal表(id,name,count)

2)insert一条记录(id,name,count)->('001','龙猫',20)

3)修改龙猫的数量为25

  将1、2、3步都记录到日志文件中,假如龙猫记录被人误删了,那么根据日志把2、3步再执行一遍就好了。由此可

见Oracle写日志真的很重要,而LGWR进程是联系日志缓冲区和日志文件的桥梁。


  一直从缓冲区向日志文件输入,那么问题来了。如下图,日志文件的容量是有限的。我们把日志文件分别标注为1、2、3、4。

  就像我们想的那样,一开始我们写日志文件1,1满了切换到2,2满了切换到3,3满后切换到4。那么4满了呢?如果4

满了再写1那么1的数据将会被覆盖。这时候怎么办呢?我们注意到连接日志文件的除了LGWR还有一个ARCH。这个ARCH

就是1在被重写时先备份出去的文件,命名为归档文件,2、3、4依次类推。另外,ARCH文件也需要定时转移到新的存

储介质,这个存储介质里的ARCH就是我们将来数据库故障恢复的法宝了。



2 0
原创粉丝点击