Source: Parnassusdata Blog

Parnassusdata Blog 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...

Read full article »
Est. Annual Revenue
$100K-5.0M
Est. Employees
1-25
CEO Avatar

CEO

Update CEO

CEO Approval Rating

- -/100