將一張表閃回到過去的時間點(閃回表基礎例項講解)

oracle_zsx發表於2013-08-24
一、
檢視某一張表的的行移動功能是不是開啟的
SQL> select row_movement from user_tables where table_name = 'ZSX';
ROW_MOVE
--------
DISABLED
 
二、
啟動某張表的行移動功能
SQL> alter table zsx enable row movement;
Table altered.
SQL> select row_movement from user_tables where table_name = 'ZSX';
ROW_MOVE
--------
ENABLED
 
三、
禁止某張表的行移動功能
SQL> alter table zsx disable row movement;
Table altered.
SQL> select row_movement from user_tables where table_name = 'ZSX';
ROW_MOVE
--------
DISABLED
 
四、
例項:
將一張表閃回到過去的某個時間點,主要是用於某張表錯誤的更新
1、
啟動表的行移動功能
SQL> alter table zsx enable row movement;
2、
查詢表中的資料
SQL> select * from zsx;
        ID
----------
         1
3、
查詢現在的SCN
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
     692434
4、
刪除表中的資料
SQL> delete from zsx;
1 row deleted.
SQL> commit;
Commit complete.
5、
現在再次檢視錶中的資料
SQL> select * from zsx;
no rows selected
6、
閃回這張表到scn692434
SQL> flashback table zsx to scn 692434;
Flashback complete.
7、
再次查詢這張表,如果有資料,就證明閃回生效了
SQL> select * from zsx;
        ID
----------
         1
 
flashback table emp3 to timestamp sysdate-10/1440;

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

相關文章