當前位置:首頁 > IT技術 > 數(shù)據(jù)庫 > 正文

Oracle 短時間內(nèi)誤刪數(shù)據(jù),如何快速找回?(UNDO)
2021-09-13 10:21:33

首先,這個短時間內(nèi),通常是值 undo 段沒有被覆蓋,undo 保留的時間為多長呢?

1、需要看 undo_retention 的設置,默認為 900s,也就是 15 分鐘。
2、需要看數(shù)據(jù)庫的業(yè)務繁忙程度,如果1天切一個歸檔那種,3天前刪的說不定都能用 UNDO 找回來。

好的,科普完了!

如果,兩分鐘前不小心誤刪了一筆數(shù)據(jù),如何快速找回?

1、查看 UNDO 中 5 分鐘前數(shù)據(jù)是否還在

select * from 用戶.as of timestamp to_timestamp('2021-09-12 10:30:00', 'yyyy-mm-dd hh24:mi:ss');

2、防止 UNDO 中數(shù)據(jù)被覆蓋,先創(chuàng)建一張備份表將5分鐘前數(shù)據(jù)備份

create table 用戶.表_20201217
as
select * from 用戶.as of timestamp to_timestamp('2021-09-12 10:30:00', 'yyyy-mm-dd hh24:mi:ss');

3、用備份表和原表比對數(shù)據(jù),將誤刪的數(shù)據(jù)插入原表中

沒有sql,自己搞吧!可以用 PLSQL等工具導出!

注意:此方法僅適用于 delete 等 DML 誤刪誤操作恢復,DDL 不支持!


本次分享到此結束啦~

如果覺得文章對你有幫助,點贊、收藏、關注、評論,一鍵四連支持,你的支持就是我創(chuàng)作最大的動力。

?? 技術交流可以 關注公眾號:Lucifer三思而后行 ??

本文摘自 :https://blog.51cto.com/l

開通會員,享受整站包年服務立即開通 >