码迷,mamicode.com
首页 > 其他好文 > 详细

redo 和 undo

时间:2014-11-07 14:41:51      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:style   http   io   color   ar   使用   sp   for   strong   

redo->记录所有操作,用于恢复(redo records all the database transaction used for recovery)

Redo的作用是恢复已提交的事务,从而保证无论在介质失败还是实例失败时,都可以恢复用户已提交的事务,使数据库达到一致状态。

Redo功能的实现依赖于以下三个组件:

 log buffer

 lgwr

 联机重做日志文件和归档日志文件

 

 

 

undo->记录所有的前印象,用于回滚(undo is used to store uncommited data infor used for rollback)

 

Undo的作用是:

 

回滚操作;

 

支持读一致性;

 

恢复失败的事务。

 

Undo的实现是通过Undo表空间内的undo段来实现的。每个事务只被分配一个undo段,undo段可以服务于多个事务。

 

Undo机制只是逻辑地把数据恢复到修改前的状态,而不是物理地恢复。

 

 

 

 

redo的原因是:每次commit时,将数据的修改立即写到online redo中,但是并不一定同时将该数据的修改写到数据文件中。因为该数据已经提交,但是只存在联机日志文件中,所以在恢复时需要将数据从联机日志文件中找出来,重新应用一下,使已经更改数据在数据文件中也改过来!

 

undo的原因是:在oracle正常运行时,为了提高效率,假如用户还没有commit,但是空闲内存不多时,会由DBWR进程将脏块写入到数据文件中,以便腾出宝贵的内存供其它进程使用。这就是需要UNDO的原因。因为还没有发出commit语句,但是oracle的dbwr进程已经将没有提交的数据写到数据文件中去了。

redo 和 undo

标签:style   http   io   color   ar   使用   sp   for   strong   

原文地址:http://www.cnblogs.com/grantliu/p/4081113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!