ORACLE 誤刪表後的恢復

2021-05-27 17:30:50 字數 1084 閱讀 3309

利用oracle閃回機制,將刪除的表閃回回來(對於表的刪除,不需要啟動資料庫的閃回開關,即可從資料庫的**站中找回)

sql>select * from user_recyclebin where droptime >'2010-03-08 09:00:00';--刪除時間為字串,找到誤刪除的表;

sql >select 'flashback table '||original_name||' to before drop;' from user_recyclebin where droptime >'2010-03-08 09:00:00' and type = 'table';--生成閃回表的語句,儲存結果1

sql >select 'alter index "'||object_name||'" rename to '||original_name||';'  from user_recyclebin where droptime >'2010-03-08 09:00:00' and type = 'index';--生成將所有索引恢復名字,儲存結果2

sql >select 'alter trigger "'||object_name||'" rename to '||original_name||';'  from user_recyclebin where droptime >'2010-03-08 09:00:00' and type = 'trigger';--生成將所有觸發器恢復名字,儲存結果3

2)所有已刪除的表,都進入了oracle得**站(drop table ab01 purge為直接刪除不進**站,停留時間由表空間大小決定,空間不夠自動**),但刪除的表,又重新建立了一樣的表名,所以不能直接閃回,要先刪除這些表

sql >select 'drop table '||original_name||' cascade constraint;' from user_recyclebin where droptime >'2010-03-08 09:00:00' and type = 'table';--生成 刪除這些新錶的結果4

3)執行結果4

4)執行結果1

5) 執行結果2

6) 執行結果3

檢查表和索引、資料、觸發器,應該基本都恢復了。

oracle資料誤刪後恢復

sql select count from t1 count 9318 2.誤刪除所有記錄 並且提交更改。sql delete from t1 9318 rows deleted.sql commit commit complete.sql select count from t1 count 03...

oracle恢復誤刪表

一 表的恢復 對誤刪的表,只要沒有使用purge永久刪除選項,那麼從flash back區恢復回來希望是挺大的。一般步驟有 1 從flash back裡查詢被刪除的表 select from recyclebin 2.執行表的恢復 flashback table tb to before drop,...

oracle 恢復誤刪的表

一 簡單說明 oracle10g以後增加了 站的功能,其作用類似於windows 的 站。一般的drop table 後,被刪除的表沒有完全刪除,而是被重新命名為乙個名稱由系統定義的名稱放到 站中,它存在於同乙個表空間中,具有與原始表相同的結構。如果在該錶上定義了索引或觸發器,則它們也被重新命名,使...