Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 闪回特性(Flashback Version、Flashback Transaction)

--==========================================================-- Oracle 闪回特性(Flashback Version、Flashback Transaction)--==========================================================        Oracle闪回特性为数据的快速回复某一对象的特定数据提供了更多的便利。前面介绍了闪回的几种特性,包括flashback database,    flashback drop ,flashback query ,flashback table 。接下来本文将介绍Flashback Version与Flashback Transaction。    一、Flashback Version Query(闪回版本查询)    闪回版本查询指的是Oracle可以针对特定的对象来查询某一特定段内该对象的变化的所有情况,可以对此跟踪该对象的变更情况。也可以根    据特定的需要来将该对象修正到特定的时刻。闪回版本查询同闪回查询,闪回表一样,同样是使用了UNDO段的数据,即数据变更的多次镜像    ,当UNDO段的数据由于空间压力而被清除,则产生无法闪回的情况。        1.闪回版本查询语法,使用VERSIONS BETWEEN 关键字        SELECT <columns>        FROM <schema_name.table_name>        VERSIONS BETWEEN SCN <minimum_scn> AND <maximum_scn>   --基于SCN的版本查询        [WHERE <column_filter>]        [GROUP BY <non-aggregated_columns>]        [HAVING <group filter>        [ORDER BY <position_numbers_or_column_names>]                SELECT <columns>        FROM <schema_name.table_name>        VERSIONS BETWEEN timestamp to_timestamp("start_timestamp") and to_timestamp("end_timestamp") --基于TIMESTAMP的版本查询        [WHERE <column_filter>]        [GROUP BY <non-aggregated_columns>]        [HAVING <group filter>        [ORDER BY <position_numbers_or_column_names>]            2.创建演示环境         --对表tb1作如下操作,插入empno为的记录后,更新其职务,然后再删除该记录,最后再次插入该记录            flasher@ORCL>create table tb1 tablespace users as select empno,ename,job,deptno from scott.emp; --创建表tb1                        flasher@ORCL> insert into tb1 values(1000,"Jack","Clerk",20);  --插入记录             flasher@ORCL> commit;     --提交事务             flasher@ORCL> update tb1 set job="Manager" where empno=1000;   --将职务更新为Manager             flasher@ORCL> commit;     --提交事务             flasher@ORCL> delete from tb1 where empno=1000;    --删除该记录             flasher@ORCL> commit;    --提交事务             flasher@ORCL> insert into tb1 values(1000,"Jack","President",20);  --重新插入该记录             flasher@ORCL> commit;     --提交事务        3.使用Version Query(闪回版本查询)        --通过使用versions关键字来获得版本信息            flasher@ORCL> select empno,ename,job,versions_xid xid,versions_startscn v_stcn,              2  versions_endscn v_edcn,versions_operation v_ops              3  from tb1 versions between scn minvalue and maxvalue where empno=1000;               EMPNO ENAME    JOB       XID                  V_STCN     V_EDCN V_OPS             ----- -------- --------- ---------------- ---------- ---------- -----              1000 Jack     President 0A000C007E010000    1124320            I                  1000 Jack     Manager   09000C00EE010000    1124301            D                  1000 Jack     Manager   0A0009007E010000    1124282    1124301 U                  1000 Jack     Clerk     06000E00A9010000    1124245    1124282 I                上面的示例通过为表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      --记录被修改的终止时间            --也可以修改查询的条件来获取更多不同的版本,如下查询则为查询该记录一个小时以内的不同版本            flasher@ORCL> select empno,ename,job,versions_xid xid,versions_startscn v_stcn,              2  versions_endscn v_edcn,versions_operation v_ops              3  from tb1 versions between timestamp              4  to_timestamp(systimestamp-1/24) and systimestamp where empno=1000;    
  • 1
  • 2
  • 下一页
Oracle 闪回特性(Flashback Query、Flashback Table)Oracle 基于用户管理恢复的处理相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数