ORACLE恢復刪除表或表記錄

2021-07-07 06:08:27 字數 1413 閱讀 2323

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

1、從flashback table裡查詢被刪除的表

select

*from recyclebin order

by droptime desc

2.執行表的恢復  

flashback table table_name to before drop;

二:表資料恢復

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

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

select

*from flashback_transaction_query where table_name=

'test

';

2、執行表記錄恢復

一般先根據時間進行查詢,查詢語句模式為

select

*from table_name as

oftimestamp to_timestamp(time,'

yyyy-mm-dd hh24:mi:ss

'); --

time指某個時間點

如:select

*from scott.test as

oftimestamp to_timestamp('

2009-12-11 20:53:57

','yyyy-mm-dd hh24:mi:ss

');

若有資料,恢復極為簡單了,語句為

flashback table table_name 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 table_name enable row movement;

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

在oracle 中,插入一行時就會為它分配乙個rowid,而且這一行永遠擁有這個rowid。

閃回表處理會對emp 完成delete,並且重新插入行,這樣就會為這些行分配乙個新的rowid。

要支援閃回就必須允許oracle 執行這個操作

oracle恢復刪除的表或表記錄的方法

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

oracle恢復刪除的表或表記錄的方法

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

誤刪除表記錄,閃回恢復

今天有個同事突然來找我,說他忘記注釋乙個表,刪除了4000多條記錄。把他給嚇的,說句實話當時我也嚇了一跳,不過想到庫是開著閃回的,而且是剛刪除,所以還有救。下面是我的操作過程 1 檢視當前表的記錄條數 select count from u.t 返回結果為449 2 查詢刪除前的記錄條數 selec...