程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> oracle 恢復誤刪除的表和誤更新的表

oracle 恢復誤刪除的表和誤更新的表

編輯:關於Oracle數據庫

       根據ORACLE10G的特性,當我執行Drop Table或delete all時,Oracle都會把被刪除的表或數據記錄放到數據庫回收站(Database Recyclebin)裡。這樣我們就可以用flashback table命令恢復被刪除的表,語法:

      Flashback table 表名 to before drop;

      table test003 to before drop;

      Flashback complete.

      * from test003;

      NAME STATE PERSON

      ---- ---------- ----------

      A 1

      A 2

      A 1

      A 1

      B 2

      B 2

      6 rows selected.

      update的表

      table a to timestamp to_timestamp('2009-11-09 11:00:00','yyyy-mm-dd hh24:mi:ss');

      一般會報錯:

      ERROR at line 1:

      ORA-08189: cannot flashback the table because row movement is not enabled

      只需要:

      table a enable row movement;

      Table altered.

      就OK了

      table a to timestamp to_timestamp('2009-11-09 11:00:00','yyyy-mm-dd hh24:mi:ss');

      Flashback complete.

      * from a;

      NAME NUM

      -------------------- ----------

      jim 90

      tom 100

      kate 220

      lily 330

      [SYS@ora10gr1#2009-11-04/08:42:53] SQL>show parameter db_flashback_retention_target

      NAME TYPE VALUE

      ------------------------------------ ----------- ------------------------------

      db_flashback_retention_target integer 1440

      默認情況下,oracle會對提交的數據做 1440 分鐘,也就是一天的“緩存”,因此一天之內的數據是有辦法找回的。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved