Oracle誤操作--被提交后的數據回退(閃回)


由於一時的粗心,在做update操作時,忘記了加where條件,導致全表數據被修改。此類錯誤實屬不該!!特此記錄一下!!

網上搜索Oracle數據回退操作,介紹如下:

閃回級別 閃回場景 閃回技術 對象依賴   影響數據
數據庫 表截斷、邏輯錯誤、其他多表意外事件 閃回DATABASE 閃回日志、undo
DROP 刪除表 閃回DROP 回收站(recyclebin)
更新、刪除、插入記錄 閃回TABLE 還原數據,undo
查詢 當前數據和歷史數據對比 閃回QUERY 還原數據,undo
版本查詢 比較行版本 閃回Version Query 還原數據,undo
事務查詢 比較 閃回Transaction Query 還原數據,undo
歸檔 DDL、DML 閃回Archive 歸檔日志
         

 

 

 

 

 

 

 

閃回執行步驟:

1.查詢最近更新數據之前的數據(以便確定是不是Commit之前的數據)

  時間是在最后更新之前的時間,既未做updata操作之前的時間

select * from T_PRODUCT as of timestamp to_timestamp('2019-09-05 11:10:00', 'yyyy-mm-dd hh24:mi:ss');

2.進行閃回操作前需要開啟行移動功能

alter table T_PRODUCT enable row movement;

3.執行閃回語句

 flashback table T_PRODUCT to timestamp TO_TIMESTAMP('2019-09-05 11:10:00','yyyy-mm-dd hh24:mi:ss');

然后數據就回退到更新操作之前了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM