Posted on 2007-05-22 16:30
bluoy 閱讀(4101)
評論(2) 編輯 收藏
問題:同事不小心把項目DB中的一個表的數(shù)據(jù)delete all了。DB版本oracle 10g。
網(wǎng)上簡單搜了一下,搞定。以下是過程:
Oracle 10g開始,當我執(zhí)行Drop Table時,Oracle也會把被刪除的表放到數(shù)據(jù)庫回收站(Database Recyclebin)里。這樣我們就可以用flashback table命令恢復(fù)被刪除的表,語法:
Flashback table 表名 to before drop;
開始恢復(fù),執(zhí)行以下命令:
flashback table tmm2076 TO TIMESTAMP to_timestamp('2007-05-22
12:00:00','yyyy-mm-dd hh24:mi:ss')
彈出ORA-08189錯誤,需要執(zhí)行以下命令先:
alter table tmm2076 enable row movement
這個命令的作用是,允許oracle修改分配給行的rowid。
然后再flashback,數(shù)據(jù)被恢復(fù)完畢。