Oracle 闪回特性(Flashback Version、Flashback Transaction)

2014-11-24 18:00:11 · 作者: · 浏览: 0

--==========================================================


--==========================================================



Oracle闪回特性为数据的快速回复某一对象的特定数据提供了更多的便利。前面介绍了闪回的几种特性,包括flashback database


flashback drop flashback query flashback table 。接下来本文将介绍Flashback VersionFlashback Transaction



一、Flashback Version Query(闪回版本查询)


闪回版本查询指的是Oracle可以针对特定的对象来查询某一特定段内该对象的变化的所有情况,可以对此跟踪该对象的变更情况。也可以根


据特定的需要来将该对象修正到特定的时刻。闪回版本查询同闪回查询,闪回表一样,同样是使用了UNDO段的数据,即数据变更的多次镜像


,当UNDO段的数据由于空间压力而被清除,则产生无法闪回的情况。



1.闪回版本查询语法,使用VERSIONS BETWEEN 关键字



2.创建演示环境




3.使用Version Query(闪回版本查询)



上面的示例通过为表tb1中插入一条empno=1000记录,并更新其职务,接下来对该记录进行删除,最后再次添加empno=1000,且职务不


同的记录,可以看出对empno=1000所作的不同的修改被全部记录下来。



注意,一个事务中,如果多次对该记录进行了修改,则查询中仅仅显示最后一次提交的状态,我们可以通过使用versions between关键


字来查询对该表中的某条特定记录修改的不同版本



查看不同的版本使用了类似于rowid的伪列


versions_xid --记录指定版本的事务的唯一标识符


versions_startscn --记录的起始SCN


versions_endscn --记录的终止SCN


versions_operation --记录的操作类型(DML操作,I表示插入,U表示更新,D表示删除)


versions_starttime --记录被修改的起始时间


versions_endtime --记录被修改的终止时间