喜欢就来多看看
关于REDO日志
上一篇 /
下一篇 2007-02-13 00:00:00
/ 个人分类:RDBMS
在Oracle发生问题、需要复原时不可或缺的REDO日志。REDO日志含有许多要素,对于Oracle来说,它不仅是维持生命的装置,也可说是Oracle结构中影响性能最重要的因素。这一系列前期以介绍“REDO日志的基本结构”为主,后期重点介绍“REDO日志的调优技巧”。
<存储复原信息的联机REDO日志的构造>
构成REDO日志的要素包括REDO日志缓冲区和REDO日志文件。此外,LGWR程序会将复原信息写入REDO日志,并且和DBWR(将数据库缓冲区数据写回数据文件的程序)与ARCH(把REDO日志文件当成更新履历,将其复制到归档文件的程序)进行消息通信,所以必须了解这些程序的工作原理。
下图说明REDO日志的基本处理流程。 
----------------------------------------------------------------------
1. 由于用户请求更新,所以后台进程会从数据文件将对应的数据块复制到数据库缓冲区。
2. 执行UPDATE处理,被更新的新信息和更新前的旧信息都被写入日志缓冲区。
3. 更新前的旧讯息写入到数据库缓冲区内分配的回滚段。
4. 更新后的新讯息会覆盖数据库缓冲区内分配的数据块。
5. 接收到Commit要求,把日志缓冲区内的变更写入REDO日志文件 (除了Commit之外还有其他情况会进行往REDO日志文件的写入处理)(以后会进一步介绍)。
6. REDO日志文件满了之后,就会出现checkpoint。
7. 出现checkpoint的时候,LGWR会向DBWR发送消息。
8. DBWR收到[出现checkpoint]的通知,把数据库缓冲区内的未清空的数据块全部写回数据文件。
9. 写回数据文件的步骤结束之后,通知LGWR处理已经结束。
10. LGWR会把被写入日志缓冲区变更的REDO日志文件从1改为2(log switch)。
11. 如果以归档模式运行数据库,在纪录数据库变更后已满的REDO日志文件会被写出到归档文件。
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: