您的位置:首页 > 数据库 > Oracle

Oracle学习笔记:Undo数据的作用

2009-01-07 16:44 393 查看
以下是我阅读《Oracle 9i&10g编程艺术:深入数据库体系结构》的部分心得。

undo保存在数据库里面,而不是像redo那样是单独的文件。所以undo也是受到redo保护的。

undo用在一下的情况
1 回滚
系统事务的更新已经更新了缓冲和磁盘数据,如果回滚,需要从undo里面逐个的反向执行,恢复到指定的点,比如事务开始的状态,或者某个保存点(Save Point).

2 MVCC 多版本并发控制。
oracle在为了提供读的一致性,你在第二次读取相同的数据时,如果发现当前数据已经修改,则会从undo里面逐步恢复到当初的状态(通过SCN,SCN,这是指系统修改号(System Change Number)或系统提交号(System Commit Number))。 这样,你的这个事务就可以保证能看到一致的数据,而不会受到别的事务的影响。

这2个是我想到的最主要的2个用途。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: