flashback六大技术之flashback version query

环境:

23:47:03 hr@ORCL (^ω^) select * from v$version where rownum=1;

BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod


1 原理介绍

flashback query只能“穿越”到过去的某个时间点上的数据库版本,但是在当前时间和过去的某个时间点上,一个表中的数据可能已经被变更多次,单一版本可能无法满足恢复的需求。通过flashback version query能够查看指定时间段内undo表空间中被提交的记录的不同版本。

flashback version query的伪列说明

versions_startscn

versions_starttime

记录了操作时的SCN或时间,如果为空,表示在查询范围外创建的

versions_endscn

versions_endtime

记录了失效时的SCN或时间,配合version_operation列查看,如果为空,或者被删除、或者

该记录当前时间在当前表不存在

versions_operationI:insert D:delete U:update
versions_operation事务ID

2 实验

23:38:26 hr@ORCL (^ω^) select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
                 3930808

23:38:48 hr@ORCL (^ω^) update t1 set empno=122 where ename='Water';

已更新 1 行。

23:39:42 hr@ORCL (^ω^) commit;

提交完成。

23:40:06 hr@ORCL (^ω^) delete t1 where rownum<5;

已删除4行。

23:40:25 hr@ORCL (^ω^) commit;

提交完成。

23:40:29 hr@ORCL (^ω^) insert into t1 values(155,'qao');

已创建 1 行。

23:40:56 hr@ORCL (^ω^) insert into t1 values(156,'qinqin');

已创建 1 行。

23:41:19 hr@ORCL (^ω^) commit;

提交完成。

23:41:22 hr@ORCL (^ω^) select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
                 3931066

23:46:34 hr@ORCL (^ω^) select empno,ename,versions_startscn,versions_endscn,versions_operation,versions_xid
23:47:00   2              from t1 versions between scn 3930808 and 3931066;

     EMPNO ENAME      VERSIONS_STARTSCN VERSIONS_ENDSCN VE VERSIONS_XID
---------- ---------- ----------------- --------------- -- ----------------
       155 qao                  3930985                 I  04002000D4030000
       111 Linshuibin           3930897                 D  06002F00B6040000
       122 Water                3930897                 D  06002F00B6040000
       122 Water                3930883         3930897 U  02001100BD040000
       111 Water                                3930883
       111 Linshuibin                           3930897
      7566 JONES                3930897                 D  06002F00B6040000
      7521 WARD                 3930897                 D  06002F00B6040000
      7521 WARD                                 3930897
      7566 JONES                                3930897
      7788 SCOTT
      7844 TURNER
      7900 JAMES
      7902 FORD
       156 qinqin               3930985                 I  04002000D4030000
       110 Think

已选择16行。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值