閃回技術查詢資料

skyin_1603發表於2016-09-29
閃回技術查詢資料,在我們的工作生產當中也會經常用到。一般情況下,我們常用兩種方式作為確定條件,
一個是基於時間戳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部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2125770/,如需轉載,請註明出處,否則將追究法律責任。

相關文章