oracle恢復誤刪表

2021-08-20 22:42:31 字數 1191 閱讀 9727

一:表的恢復

對誤刪的表,只要沒有使用purge永久刪除選項,那麼從flash back區恢復回來希望是挺大的。一般步驟有:

1、從flash back裡查詢被刪除的表

select * from recyclebin

2.執行表的恢復

flashback table tb to before drop,這裡的tb代表你要恢復的表的名稱。

二:表資料恢復

對誤刪的表記錄,只要沒有truncate語句,就可以根據事務的提交時間進行選擇恢復,一般步驟有:

1、先從flashback_transaction_query檢視裡查詢,檢視提供了供查詢用的表名稱、事務提交時間、undo_sql等字段。

如:select * from flashback_transaction_query where

table_name='test';

2、執行表記錄恢復

一般先根據時間進行查詢,查詢語句模式為select * from tb as of timestamp

to_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名稱,time指某個時間點

如select * from scott.test as of timestamp to_timestamp('2009-12-11

20:53:57','yyyy-mm-dd hh24:mi:ss');

若有資料,恢復極為簡單了,語句為flashback table tb to timestamp

to_timestamp(time,'yyyy-mm-dd hh24:mi:ss');

如flashback table scott.test to timestamp to_timestamp('2009-12-11

20:47:30','yyyy-mm-dd hh24:mi:ss');

注意:alter table testvarchar enable row movement;

這個命令的作用是,允許oracle 修改分配給行的rowid。在oracle

中,插入一行時就會為它分配乙個rowid,而且這一行永遠擁有這個rowid。閃回表處理會對emp

完成delete,並且重新插入行,這樣就會為這些行分配乙個新的rowid。要支援閃回就必須允許oracle 執行這個操作。

非原創,摘自網路

oracle 恢復誤刪的表

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

Oracle誤刪恢復

query deleted datarows select from 表名 as of timestamp to timestamp 刪除時間點 yyyy mm dd hh24 mi ss needs auth flash any table data table flashback alter t...

oracle 中恢復誤刪的表

select from user recyclebin where original name like finance order by droptime desc flashback table finance case fee item to before drop 即所有drop的表都在 u...