flashback技術之---flashback table

lsq_008發表於2012-07-29
使用flashback table功能,可以將表恢復到某個時間點的狀態,在誤刪除的情況下恢復資料比較有效:

1.首先開始row movement:

SQL> ALTER TABLE t ENABLE ROW MOVEMENT;

Table altered.

2. 插入資料
SQL> insert into t values(1, sysdate);

1 row created.

SQL> commit;

Commit complete.

SQL> alter session set nls_date_format='yyyymmdd hh24:mi:ss';

Session altered.

SQL> select sysdate from dual;

SYSDATE
-----------------
20120718 09:07:47

SQL> insert into t values(2,sysdate);

1 row created.

SQL> commit;

Commit complete.

SQL>  select sysdate from dual;

SYSDATE
-----------------
20120718 09:08:04

SQL> insert into t values(3,sysdate);

1 row created.

SQL> commit;

Commit complete.

SQL> select sysdate from dual;

SYSDATE
-----------------
20120718 09:08:19

SQL> select * from t;

        ID INS_DATE
---------- -----------------
         1 20120718 09:07:17
         2 20120718 09:07:58
         3 20120718 09:08:15

3.執行flashback table,將表恢復到不同的時間點:

SQL> FLASHBACK TABLE t TO TIMESTAMP TO_TIMESTAMP('20120718 09:08:04', 'yyyymmdd hh24:mi:ss');

Flashback complete.

SQL> select * from t;

        ID INS_DATE
---------- -----------------
         1 20120718 09:07:17

SQL> FLASHBACK TABLE t TO TIMESTAMP TO_TIMESTAMP('20120718 09:08:07', 'yyyymmdd hh24:mi:ss');

Flashback complete.

SQL>  select * from t;

        ID INS_DATE
---------- -----------------
         1 20120718 09:07:17
         2 20120718 09:07:58

SQL> FLASHBACK TABLE t TO TIMESTAMP TO_TIMESTAMP('20120718 09:08:21', 'yyyymmdd hh24:mi:ss');

Flashback complete.

SQL> select * from t;

        ID INS_DATE
---------- -----------------
         1 20120718 09:07:17
         2 20120718 09:07:58
         3 20120718 09:08:15

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

相關文章