hadoopCJ2019-10-09 09:59:56
oracle刪錯數據了,要跑路嗎,等一下,先搶救一下
輕舟能過萬重山,遇到問題別發慌。說來慚愧,最近出現一次寫update語句忘了加where條件,還好連得我本地測試庫,不然就嗝屁了。不過萬一連得正式庫,那咋辦呢,于是自己上網搜了一下,有前輩也遇到過,整理如下;
oracle不小心刪除數據并且已經提交。oracle有一個閃回表功能
一:根據時間來恢復:
1、查詢數據庫當前時間(目的是為了檢查數據庫時間是否與你電腦時間相近,避免時間不同而將數據恢復到錯誤時間點)
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
2、查詢刪除數據時間點之前的數據
select * from 表名 as of timestamp to_timestamp('2016-08-11 16:12:11','yyyy-mm-dd hh24:mi:ss');
(若沒有數據 ,將時間繼續提前)
3、恢復數據
flashback table 表名 to timestamp to_timestamp('2016-08-11 16:12:11','yyyy-mm-dd hh24:mi:ss');
大功告成,數據恢復成功;
但是也可能會出現問題,比如報錯:ORA-08189:未啟用行移動功能,不能閃回表;
不要怕,這個很簡單;
alter table 表名 enable row movement;
然后再次執行上面SQL即可。
評論

劉孟飛 LV412月2日
栗勁松 LV111月26日
80730176 LV311月23日
likezhensan LV711月20日
rht_062711月6日
暫無貢獻等級
張先生12354 LV111月5日
shanjunkai123 LV211月5日
仲愷小霸王 LV411月4日
1225086246 LV311月4日
myjaychou LV311月4日