對誤刪的表,只要沒有使用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 totimestamp 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
');
注意:
altertable 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...