数据库恢复方面, 遇到系统故障时候,比如断电, 1 一些未完成的transaction可能已经被送到物理数据库,这种情况下需要undo这些未完成transaction 2 一些已经完成的transaction可能还在缓冲区,没有写到物理磁盘。这种情况下需要重做已经提交的transaction。
问题:一个transaction完成与否的标准是什么? 不是是否已经写入到物理磁盘,commit成功吗?
谢谢。
问题:一个transaction完成与否的标准是什么? 不是是否已经写入到物理磁盘,commit成功吗?
谢谢。
当然是你commit了,就算完成了
>2 一些已经完成的transaction可能还在缓冲区,没有写到物理磁盘。这种情况下需要重做已经提交的transaction
你commit了,但是数据只写进了data buffer中,此时断电了,就要用redo来恢复>1 一些未完成的transaction可能已经被送到物理数据库,这种情况下需要undo这些未完成transaction
事务大,数据块已经被更改了,此时做一个rollback, 就要用undo来还原数据《oracle9i 10g 编程艺术>>讲的比较细