閃回查詢恢復誤刪資料

abstractcyj發表於2013-08-09
啟用flash back:

BEGIN
 dbms_flashback.enable_at_time(SYSDATE-60/1440);
END;

驗證資料:
 SELECT *
    FROM h2.s_company AS OF TIMESTAMP to_timestamp('2013-8-9 12:26:08', 'yyyy-mm-dd hh24:mi:ss');

關閉flash back:
BEGIN
  dbms_flashback.disable;
END;

不關閉的話會出現:
ORA-08182: 在閃回模式下操作不受支援

接下來將資料插入原始表
INSERT INTO s_company_f1
  SELECT *
    FROM h2.s_company AS OF TIMESTAMP to_timestamp('2013-8-9 12:26:08', 'yyyy-mm-dd hh24:mi:ss');

這個是我情急之下采用的一個很弱智的方法, 只需要兩句簡單的DDL即可恢復:

alter table s_company_f1 enable row movement;    
flashback table s_company_f1 to timestamp to_timestamp('2013-8-9 15:00:08', 'yyyy-mm-dd hh24:mi:ss');


  1. SQL> flashback table test_move to timestamp(systimestamp - interval '3' minute);   
  2. flashback table test_move to timestamp(systimestamp - interval '3' minute)   
  3.                 *   
  4. ERROR at line 1:   
  5. ORA-08189: cannot flashback the table because row movement is not enabled  

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

相關文章