第一步,先应记住被删除的表中有多少记录
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查询数据直至全部恢复、最后将数据插入原表。
871

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



