ORACLE數據庫誤操作DELETE並且提交數據庫之后如何恢復被刪除的數據


一:根據時間來恢復:

1、查詢數據庫當前時間()

select  to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

2、查詢刪除數據時間點之前的數據

select * from 表名 as of timestamp to_timestamp('2020-08-06 10:12:11','yyyy-mm-dd hh24:mi:ss');

(若沒有數據 ,將時間繼續提前)

3、恢復數據

flashback table 表名 to timestamp to_timestamp('2020-08-06 10:12:11','yyyy-mm-dd hh24:mi:ss');

數據恢復成功;

但是也可能會出現問題,比如報錯:ORA-08189:未啟用行移動功能,不能閃回表;

執行下面操作;

alter table 表名 enable row movement;

然后再次執行上面SQL即可;

二:根據數據庫SCN恢復數據

1、查詢當前數據庫SCN號

select current_scn from v$database;(若不能執行,切換到sys用戶或system用戶查詢)    

查詢到的當前值為:91792986

2、縮小SCN號查詢被刪除表數據(若無數據繼續縮小SCN,由於數據庫操作不止一人,SCN號變化比較多,可以多縮小幾個號)

select * from 表名 as of scn 91792986;

3、恢復數據

flashback table 表名 to scn 91792986;

恢復完成。若報錯:ORA-08189:未啟用行移動功能,不能閃回表;結果方案同上。


免責聲明!

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



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