使用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博客 ” ,链接:https://blog.itpub.net/10972173/viewspace-738205/
,如需转载,请注明出处,否则将追究法律责任。