閃回技術二:閃回表

sky850623發表於2014-07-05
1.測試表
SQL> select * from t;
         X NAME
---------- ----------
         1 a
         2 b
         3 b
         4 d
2.查下當前SCN
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
     968257
3.刪除一行並提交
SQL> delete from t where x=1;
已刪除 1 行。
SQL> commit;
提交完成。
4.通過scn閃回表
SQL> flashback table t to scn 968257;
flashback table t to scn 968257
                *
第 1 行出現錯誤:
ORA-08189: 因為未啟用行移動功能, 不能閃回表

閃回表要先啟用行移動
SQL> alter table t enable row movement;
表已更改。
SQL> flashback table t to scn 968257;
閃回完成。
SQL> select * from t;
         X NAME
---------- ----------
         1 a
         2 b
         3 b
         4 d
5.通過時間閃回表
20:22:33 SQL> select * from t;
         X NAME
---------- ----------
         1 a
         2 b
         3 b
         4 d
已用時間:  00: 00: 00.01
20:22:37 SQL> delete from t where x=2;
已刪除 1 行。
已用時間:  00: 00: 00.01
20:22:56 SQL> commit;
提交完成。
已用時間:  00: 00: 00.00
20:25:48 SQL> flashback table t to timestamp to_date('2014-7-5 20:22:33','yyyy-mm-dd hh24:mi:ss');

閃回完成。
已用時間:  00: 00: 00.84
20:26:52 SQL> select *from t;
         X NAME
---------- ----------
         1 a
         2 b
         3 b
         4 d
已用時間:  00: 00: 00.00

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26937943/viewspace-1210459/,如需轉載,請註明出處,否則將追究法律責任。

相關文章