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

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

首先,這個(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

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