
在Oracle中,Redo日志文件(Redo Log Files)的作用是什么?
Redo日志文件包含所有的数据库变化历史记录,例如所有的DML变化(INSERT、UPDATE、DELETE和SELECT FOR UPDATE)和所有DDL语句造成的数据字典对象的更改及递归语句的更改等,所以,日志文件可以最大限度地保证数据的一致性与安全性。当发生提交动作时,后台进程LGWR将Redo日志缓冲区中的数据刷到Redo日志文件里。
需要注意的是,部分SELECT操作也会产生少量的Redo日志,例如,会话A对表T执行DML操作而没有提交,然后会话B对表T执行查询操作,那么此时会话B的SELECT语句就会生成Redo日志,并且会话B的SELECT查询语句的性能也会受到影响。SELECT操作产生Redo日志的情况主要包括延迟块清除(Delayed Block Cleanout)以及一些递归调用。
Redo日志文件主要包含联机Redo日志文件(Online Redo Log Files)和归档Redo日志文件件(Archive Redo Log Files)。联机Redo日志文件也叫联机Redo日志文件,包含对数据库所做的更改记录。万一数据库出现故障可以启用数据恢复。一个数据库至少需要两个Redo日志组,一个Redo日志组至少包含一个文件。归档Redo日志文件是联机Redo日志文件的脱机副本,是介质恢复所必要的文件。
Redo日志的数据是按照THREAD来组织的,对于单实例系统来说,只有一个THREAD;对于RAC系统来说,会存在多个THREAD。每个数据库实例拥有一组独立的Redo日志文件,拥有独立的Log Buffer,某个实例的变化会被独立的记录到一个THREAD的Redo日志文件中。
Redo日志文件一般用于数据库恢复(在实例恢复中利用Redo做前滚;在介质恢复中利用归档日志做RECOVER恢复操作实现完全或不完全恢复)、LogMiner、DG、OGG等。
& 说明:
有关未提交数据引起SELECT查询性能的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2125034/
有关Redo日志文件(Redo Log Files)的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2141163/。
有关延迟块清除的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2080746/。
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:230161599
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。




