7 x 24 在线支持!
oracle闪回查询因ORA-01555快照过久错误而失败
在误删除或误更新数据的情况下,oracle 10g以后可以使用flashback query闪回查询来恢复数据,但如果对应的undo数据被部分覆盖了,则闪回查询会因为ORA-01555错误而失败。
针对这种场景 诗檀软件提供了基于闪回的更好的恢复机制,该机制可以帮助用户基于undo和磁盘上的残留信息尽可能恢复数据。
SQL> l 1 declare 2 cursor c is select * from testt2 as of scn 5385449; 3 begin 4 for i in c loop 5 null; 6 end loop; 7* end; SQL> / declare * ERROR at line 1: ORA-01555: snapshot too old: rollback segment number with name "" too small ORA-06512: at line 4
SQL> set serveroutput on;
SQL> exec better_flashback_table_save('TEST2','TESTT2',2843925,'MYTVSAVE3');
table TEST2.TESTT2 @ scn 2843925 find 5568 rows , copied to TEST2.MYTVSAVE3
PL/SQL procedure successfully completed.
以上我们通过 better_flashback_table_save将原表中被删除的数据转移到了新表中,虽然因为undo数据的不足,这样可能丢失部分数据,但是仍可以恢复部分数据。
具体可以恢复多少数据,我们可以通过better_flashback_table_save 存储过程获得。
此外我们还可以利用prm dul的undelete功能恢复删除的数据 , 可以参考该视频 https://zcdn.parnassusdata.com/prm%20dul%20recover%20oracle%20deleted%20...