第一步,先应记住被删除的表中有多少记录
select count(*) from t1;
第二步,delete该表的数据
delete from t1;
commnit;
第三步,获得当前scn
select dbms_flashback.get_system_change_number from dual;
第四步,根据第三步返回的scn不停地尝试查询直到所有记录都存在为止。
select count(*) from t1 as of scn 10670000;--10670000为返回的scn
第五步,当第四步返回的值为所删除的记录数时执行
insert into t1 select * from t1 as of scn 10670000;
commite;
到此数据恢复完毕!
select count(*) from t1;
第二步,delete该表的数据
delete from t1;
commnit;
第三步,获得当前scn
select dbms_flashback.get_system_change_number from dual;
第四步,根据第三步返回的scn不停地尝试查询直到所有记录都存在为止。
select count(*) from t1 as of scn 10670000;--10670000为返回的scn
第五步,当第四步返回的值为所删除的记录数时执行
insert into t1 select * from t1 as of scn 10670000;
commite;
到此数据恢复完毕!
本文介绍了一种在Oracle数据库中使用闪回技术恢复已删除数据的方法。具体步骤包括:记录删除前表中的记录数量、删除数据并提交、获取系统更改编号(SCN)、根据SCN查询直至恢复所有记录、将恢复的记录重新插入到原表中。
858

被折叠的 条评论
为什么被折叠?



