UNDO表空间的作用和管理
概述
UNDO表空间用于存放UNDO数据,当执行DML操作(INSERT,UPDATE和DELETE)时,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写回的数据段中。<