論ORACLE中如何恢復被delete的表中數據

啊!假如說我有一張表叫t1,今天一不小心把執行了如下命令:

delete from t1全部刪除了。

也許到這裏你還並不害怕,不行就flashback就是了。抱歉,我今天又做了一個purge recyclebin

擦,完蛋了。徹底無法恢復了嗎?

當然不是,要知道recyclebin是存在內存中的,真正的數據肯定是保存在文件裏的,那麼從哪裏恢復啊,當然是重做日誌文件,找到重做日誌文件裏的SCN號,然後縮小SCN號範圍,找到待恢復數據。

第一步:select dbms_flashback.get_system_change_number from dual;-->查找當前的SCN號(這裏是7455407),如果你知道刪除數據前的SCN號就更簡單了


第二步:select count(*) from t1 as of scn 7455407;-->查詢當前SCN下的數據(當前查到的是0,因爲數據已經刪除了)


第三步:縮小SCN範圍,即往前推。

select count(*) from t1 as of scn 7433000;-->在這個點上查到數據(17110條)。


第四步:insert into t1 select * from t1 as of scn 7443000;-->恢復數據


哈哈,是不是很簡單啊!這纔是終極必殺技哦!


就問6不6?


6


 6


  6



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章