日期:2014-05-16  浏览次数:20449 次

oracle 物理结构之redo log

一、重做日志文件的作用:

1、  记录所有数据的改变

2、  提供恢复机制

3、  组方式管理(最少两组,默认为3组,每组一个重做日志文件, oracle官方建议,所有的每组重做日志文件大小最好相同;当然如果是为重做日志文件组添加成员的时候不能指定大小,因为每个重做日志文件相互冗余,所以必须一致)

二、重做日志文件状态

    通过lgwr写到日志文件里面

 

日志组1写满了,就会切换到日志组2,然后到33再到1,循环使用。反正日志组是不停的工作。

重做日志文件一般具有4种状态(也可以分为6种)

1、  unused:说明此重做日志文件组没被用过

2、  current:说明是当前重做日志组,lgwr正在写

3、  active:说明此重做日志文件组刚写完,记录在重做日志文件组中的事务所造成的数据块的改变,没有完全从缓冲区写入到数据文件,重做日志文件组属于这种状态,是不允许被覆盖的,一旦写完成,就变问inactive状态。

4、  inactive:说明记录在重做日志文件组中的事务所造成的数据块的改变,已经从缓冲区写入到数据文件,这种状态允许被覆盖。

上面4中状态是重做日志文件常见的状态,下面两种状态是在重做日志组损坏或者特殊情况下的状态。

5clearing:说明该重做日志文件正被重建(重建后状态变为unused

6clearing_cyrrent:说明此重做日志文件重建是出现错误

 

下面是日志大小设置问题

日志文件设置大小问题,值得我们思考

v$log_history  这个动态视图查询日志切换的频率,根据这个频率来判断日志的大小是否合适

SQL> desc v$log_history;

 Name