首先,這個(gè)短時(shí)間內(nèi),通常是值 undo 段沒有被覆蓋,undo 保留的時(shí)間為多長呢?
1、需要看 undo_retention 的設(shè)置,默認(rèn)為 900s,也就是 15 分鐘。
2、需要看數(shù)據(jù)庫的業(yè)務(wù)繁忙程度,如果1天切一個(gè)歸檔那種,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等工具導(dǎo)出!
注意:此方法僅適用于 delete 等 DML 誤刪誤操作恢復(fù),DDL 不支持!
本次分享到此結(jié)束啦~
如果覺得文章對你有幫助,點(diǎn)贊、收藏、關(guān)注、評論,一鍵四連支持,你的支持就是我創(chuàng)作最大的動(dòng)力。
?? 技術(shù)交流可以 關(guān)注公眾號:Lucifer三思而后行 ??
本文摘自 :https://blog.51cto.com/l