undo 与redo的问题

[复制链接]
查看11 | 回复5 | 2012-11-1 15:21:29 | 显示全部楼层 |阅读模式
在看一本joanthan的书。里面讲到了redo 和 undo的关系。 他说,oracle在数据修改的时候要做4件事 ,翻译过来就是
1.生成一个redo记录以描述对数据块的更改。
2.生成一个undo记录。3.生成一个redo记录来描述undo的修改。4.修改数据。
对第三步非常非常不理解。难道说我们的undo变化在redo log中也会有记录吗?这有什么意义呢? redo不是为了修复数据文件而存在的吗?记录undo 的变化难道是为了修复undo? 可是undo有什么好修复的?

第二个问题,我在itpub首页登录之后怎么进论坛还要登录,难道这就是传说中的非SSO?




回复

使用道具 举报

千问 | 2012-11-1 15:21:29 | 显示全部楼层
undo变化在redo log中有时是有记录的。
如果执行了一个较长的删除数据的事务,修改的数据块较多,在未提交或回滚前,实例宕机了,实例恢复时就可以从REDO LOG中的UNDO内容恢复没提交的删除的数据。其实在未提交或回滚前,LGWR会增量写REDO LOG,这样才不会在提交时一古脑地写一大堆LOG。
回复

使用道具 举报

千问 | 2012-11-1 15:21:29 | 显示全部楼层
为了保证数据的一致性。。。。。
回复

使用道具 举报

千问 | 2012-11-1 15:21:29 | 显示全部楼层
这个需要看看
回复

使用道具 举报

千问 | 2012-11-1 15:21:29 | 显示全部楼层
咋没人回复我第二个问题
回复

使用道具 举报

千问 | 2012-11-1 15:21:29 | 显示全部楼层
2.存放异动未commit的资料,以供当有人查寻。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行