日期:2014-05-16  浏览次数:20481 次

Oracle Undo表空间介绍

UNDO表空间的作用和管理

概述

UNDO表空间用于存放UNDO数据,当执行DML操作(INSERTUPDATEDELETE)时,oracle会将这些操作的旧数据写入到UNDO段,在oracle9i之前,管理UNDO数据时使用(Rollback Segment)完成的。从oracle9i开始,管理UNDO数据不仅可以使用回滚段,还可以使用UNDO表空间,因为规划和管理回滚段比较复杂,所有oracle database 10g已经完全丢弃用回滚段。并且使用UNDO表空间来管理UNDO数据。

UNDO数据也称为回滚(ROLLBACK)数据,它用于确保数据的一致性。当执行DML操作时,事务操作前的数据被称为UNDO记录。UNDO段用于保存事务所修改数据的旧值,其中存储着被修改数据块的位置以及修改前数据。

?

UNDO数据的作用

1、回退事务

当执行DML操作修改数据时,UNDO数据被存放到UNDO段,而新数据则被存放到数据段中,如果事务操作存在问题,旧需要回退事务,以取消事务变化。假定用户A执行了语句UPDATE emp SET sal=1000 WHERE empno=7788后发现,应该修改雇员7963的工资,而不是雇员7788的工资,那么通过执行ROLLBACK语句可以取消事务变化。当执行ROLLBACK命令时,oracle会将UNDO段的UNDO数据800写回的数据段中。<