日期:2014-05-16 浏览次数:20460 次
一、重做日志文件的作用:
1、 记录所有数据的改变
2、 提供恢复机制
3、 组方式管理(最少两组,默认为3组,每组一个重做日志文件, oracle官方建议,所有的每组重做日志文件大小最好相同;当然如果是为重做日志文件组添加成员的时候不能指定大小,因为每个重做日志文件相互冗余,所以必须一致)
二、重做日志文件状态
通过lgwr写到日志文件里面
日志组1写满了,就会切换到日志组2,然后到3;3再到1,循环使用。反正日志组是不停的工作。
重做日志文件一般具有4种状态(也可以分为6种)
1、 unused:说明此重做日志文件组没被用过
2、 current:说明是当前重做日志组,lgwr正在写
3、 active:说明此重做日志文件组刚写完,记录在重做日志文件组中的事务所造成的数据块的改变,没有完全从缓冲区写入到数据文件,重做日志文件组属于这种状态,是不允许被覆盖的,一旦写完成,就变问inactive状态。
4、 inactive:说明记录在重做日志文件组中的事务所造成的数据块的改变,已经从缓冲区写入到数据文件,这种状态允许被覆盖。
上面4中状态是重做日志文件常见的状态,下面两种状态是在重做日志组损坏或者特殊情况下的状态。
5、clearing:说明该重做日志文件正被重建(重建后状态变为unused)
6、clearing_cyrrent:说明此重做日志文件重建是出现错误
下面是日志大小设置问题
日志文件设置大小问题,值得我们思考
v$log_history 这个动态视图查询日志切换的频率,根据这个频率来判断日志的大小是否合适
SQL> desc v$log_history;
Name