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

 以下是我阅读《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个用途。

你可能感兴趣的:(oracle,编程,数据库,System,磁盘)