oracle誤操作閃回

2021-08-16 23:20:45 字數 930 閱讀 5578

今天操作oracle資料庫時,做乙個update資料時,不小心少寫了個where,看這粗心大意的。

於是乎,把所有的員工工號都給更新成乙個同乙個工號了。這是乙個悲催的故事。

因為工號是check了好多次才存入資料庫,工號是唯一性的啊~~

如果多次commit資料後,那可不可以閃回呢?貌似不可以。閃回只能暫存最近一次的資料操作。這個就和記憶體一樣。你不可以再記憶體中找到上一年的資料吧。

閃回執行步驟:

1.查詢最近更新資料之前的資料(以便確定是不是commit之前的資料)

select

*from account as

oftimestamp to_timestamp('

2014-04-22 08:00:00

', '

yyyy-mm-dd hh24:mi:ss

');

其中account為被誤操作的表,'

2014-04-22 08:00:00

'表示上次更新資料前的時間,

2.閃回操作前啟用行移動功能(不啟用不可以閃回)

alter

table account enable row movement;

其中account表示被誤操作的表

3.執行閃回語句:

flashback table account to

timestamp to_timestamp('

20140422 15:10:00

','yyyymmdd hh24:mi:ss

');

這樣被誤操作的資料就可以「找」回來了。哈哈~

於是乎,再想,oracle有如此美妙的東西,那sql server有沒有呢? 於是乎查閱了一下資料,感覺有些悲催了。sql server沒有提供此類便捷的東西。貌似只能用log恢復了。。。。

oracle誤操作閃回怎麼辦?

今天操作oracle資料庫時,做乙個update資料時,不小心少寫了個where,看這粗心大意的。於是乎,把所有的員工工號都給更新成乙個同乙個工號了。這是乙個悲催的故事。因為工號是check了好多次才存入資料庫,工號是唯一性的啊 不過,好在更新過後意識到這一點了。於是乎,先停止運算元據庫。想想資料庫...

oracle回閃操作

查詢test表中記錄 select from test 刪除test表中記錄 delete from test 獲得過去的會話 exec dbms flashback.disable 查詢出3分鐘前這個test表的情況 select from test as of timestamp systime...

Oracle誤操作 被提交後的資料回退(閃回)

由於一時的粗心,在做update操作時,忘記了加where條件,導致全表資料被修改。此類錯誤實屬不該!特此記錄一下!網上搜尋oracle資料回退操作,介紹如下 閃回級別 閃回場景 閃回技術 物件依賴 影響資料 資料庫表截斷 邏輯錯誤 其他多表意外事件 閃回database 閃回日誌 undo 是dr...