ITPub博客

首页 > 数据库 > Oracle > flashback六大技术之flashback version query

flashback六大技术之flashback version query

原创 Oracle 作者:幕南风 时间:2014-07-03 13:26:59 0 删除 编辑

环境:

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_operation I: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行。


 

<!-- Baidu Button BEGIN -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26515977/viewspace-1207794/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: flashback六大技术之flashback query
下一篇: flash_recovery_area过小引起的日志无法归档的处理方案
请登录后发表评论 登录
全部评论
腾讯数据库工程师

注册时间:2012-05-10

最新文章