代码改变世界

Online Redo Log File(联机重做日志)

2009-08-24 10:54  hyddd  阅读(2719)  评论(0编辑  收藏  举报

一.Online Redo Log File作用

1.记录对数据所做的所有更改

2.提供恢复机制

 

二.Redo Log File Groups(联机重做日志组)

    Oracle允许把Redo Log Files划分不同的组,而且要正常运行Oracle至少需要两个组,所以Oracle至少要有两个联机重做日志,而同一组的Redo Log File文件内容是一样的,由LGWR后台进程负责把相关信息写入Redo Log File(由于LGWR是对同组的所有Log文件进行写操作,所以同组的Log文件的内容都是一致的),而Redo Log File中的每条记录(entries)都有一个Log sequence numbers(LSN:相当于一个流水号)。

 

三.Online Redo Log File相关

1.Online Redo Log File是以循环方式使用的(一旦某个重做日志文件被写满,LGWR就会切换到下一个日志组)。

2.LGWR会在以下情况下进行写Redo Log File文件:

(1).当提交事务处理时(Transaction commit)。

(2).每3秒钟写一次。

(3).当重做日志缓冲区(Redo Log Buffer )被写满三分之一时。

(4).当重做日志缓冲区(Redo Log Buffer )内的已更改记录超过1MB时。

(5).在DBWn将数据库缓冲区高速缓存中修改的块写入数据文件之前(写Data file之前)。

3.LGWR在切换日志组时,还会触发:

(1).执行检查点(checkpoint:writing of dirty/mdified block from the buffer cache to disk)操作。

(2).将信息写入控制文件(Control file)。

4.Redo Log File的相关命令

(1).增加Redo Log File Group及其相应Redo Log Files:

alter database add logfile group 3
(
'$HOME/Oradata/u01/log3a.rdo',
'$HOME/Oradata/u02/log3b.rdo')
(2).对某个Group增加Redo Log File文件:
alter database add logfile member 
'$HOME/Oradata/u04/log1c.rdo' to group 1,
'$HOME/Oradata/u04/log2c.rdo' to group 2,
'$HOME/Oradata/u04/log3c.rdo' to group 3,
(3).删除Redo Log File Member(每个Redo Log File Group中的每个Log文件都称为一个Member)
alter database drop logfile member 
'$HOME/Oradata/u04/log3c.rdo';
(4).删除Redo Log File Group
alter database drop logfile group 2;
5.Redo Log File建议用“.rdo”结尾。
6.可通过动态性能视图(Dynamic Performance View)查询Redo Log File的相关信息。
(1).v$log:Display the redo log fileinformation from the control file.
Select * from v$logfile;
(2).v$logfile:Identifies redo log froups and menbers an menbers status.
select group# ,thread#,sequence#,status from v$log;
7.只有一个Group中还有一个Redo Log File是正常的,Oracle就可以正常运行。这和Control File不同,如果其中一个Control File损坏,Oracle就不能正常运行。