数据库崩溃后对redo log的使用

用户对数据库做的任何操作均会产生redo log,事实上是先把redo log写到redo log cache中,再把实际数据更改写至buffer cache中。

Redo log会在以下情况从redo log cache写至online redo log file中:

l 每隔3秒钟

l Redo log cache使用了1/3

l 当数据库定写入器通知重做记录需要写入磁盘时。即在数据写入数据文件前。

但若此时数据库发生崩溃,而部分数据未写至data file,则:

1)对于未提交事务,执行撤销操作。(是否有可能未commit,但数据已经写入data file。若yes,则有可能buffer cache满了,下次读取数据从data file读取,导致未commit更改生效了。因此不可能yes。但若no,则有部分未提交数据一直占据buffer cache,若满了怎么办?)

2)对于已提交事务,但数据未写至data file的,根据redo log执行重做。

也就是说一切操作均产生redo log,不管是否commit

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28494616/viewspace-1060177/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28494616/viewspace-1060177/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值