ITPub博客

首页 > 数据库 > Oracle > 闪回技术查询数据

闪回技术查询数据

原创 Oracle 作者:skyin_1603 时间:2016-09-29 21:32:09 0 删除 编辑
闪回技术查询数据,在我们的工作生产当中也会经常用到。一般情况下,我们常用两种方式作为确定条件,
一个是基于时间戳Timestamp的闪回查询,另一种是基于scn的闪回查询,当然他们也可以相互转化,则利用
timastamp_to_scn与scn_to_timestamp相互转化,便于大家运用。往后再另作这两个的相互转化用法。

在此,我们首先在scott用户下的dept表作为实验数据来源:
进入到Scott用户:
SQL> conn scott/tiger0520
Connected.

SQL> show user
USER is "SCOTT"

创建表test1:
SQL> create table test1  as select * from dept;
Table created.
SQL> select * from test1;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

1、基于时间点的闪回查询:
这种情况是基于我们记得打给的时间范围:(在此我们通过set time on )来显示时间
SQL> set tima on 
21:05:05 SQL> 
21:05:42 SQL> delete test1 where deptno=10;
1 row deleted.
21:06:10 SQL> select * from test1;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
21:06:20 SQL> commit;
以上看出,我们已经成功删除一条数据,大概3分钟过后,我们在此查询3分钟前的数据
21:08:53 SQL> select * from test1 as of timestamp sysdate -3/1440;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
以上通过时间点,可以查看会我们删除之前的数据,这就是基于时间点的闪回查询。

2、基于scn 的闪回查询:
这里,我们通过打开一个oracle数据库系统的包来帮助我们查询scn码:如下
grant execute on dbms_flashback to scott;
Grant succeeded.

SQL> select dbms_flashback.get_system_change_number as scn
  2  from dual;

       SCN
----------
    742826
SQL> delete test1;

3 rows deleted.
SQL> commit;
Commit complete.
SQL> select dbms_flashback.get_system_change_number as scn
  2  from dual;

       SCN
----------
    742899

SQL> select * from test1;

no rows selected



现在我们查询scn码为 742826 状态下表test1中的数据
SQL> select * from test1
  2  as of scn 742826;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
由此我们看出,我们通过删除之前的scn码,作为一个参考点,当我们成功全部删除表中的
数据之后,我们依然能查看到删除之前的数据,这就是基于scn的闪回查询技术。

谢谢大家观赏,祝大家工作学习愉快!











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

上一篇: 没有了~
下一篇: 闪回表技术
请登录后发表评论 登录
全部评论

注册时间:2016-09-06

  • 博文量
    231
  • 访问量
    215112