1. 程式人生 > >oracle update並commit誤操作後,利用閃回方法 flashback可以還原上個時間點的資料

oracle update並commit誤操作後,利用閃回方法 flashback可以還原上個時間點的資料

今天在生產環境更新一個選單的URL時,用update更新資料,但是忘記加上where限定條件,將所有選單的URL都更新為同一個。一時間感覺我惹大事了,慌忙找了個以前的備份表將整個表替換掉。可是備份表與真是表之間存在一些差異,結果就只能一個一個查詢並修改了。

事後才淡定下來,Google了一下方法才知道當時自己是多麼的傻.......哎(提醒各位萬事別緊張,先Google)

oracle提供了一種閃回的方法,可以將某個時間的資料給還原回來

方法如下:

1.select * from table as of timestamp to_timestamp('2014-10-16 16:24:00', 'yyyy-mm-dd hh24:mi:ss');

說明:table是誤操作,需要閃回的表,2014-10-16 16:24:00 這個時間點是誤操作的那個時間點,是個大概的時間,不用精確,在這個時間之前就是之前正確的資料,之後就是誤操作後的資料

2.alter table table enable row movement;

閃回操作前啟用行移動功能

說明:table是誤操作,需要閃回的表

3.flashback table account to timestamp TO_TIMESTAMP('20140422 15:10:00','YYYYMMDD HH24:MI:SS');

說明:table是誤操作,需要閃回的表,20140422 15:10:00時間點與步驟1的時間點相同。