论ORACLE中如何恢复被delete的表中数据
2017-09-18 12:45
344 查看
啊!假如说我有一张表叫t1,今天一不小心把执行了如下命令:
delete from t1全部删除了。
也许到这里你还并不害怕,不行就flashback就是了。抱歉,我今天又做了一个purge recyclebin
擦,完蛋了。彻底无法恢复了吗?
当然不是,要知道recyclebin是存在内存中的,真正的数据肯定是保存在文件里的,那么从哪里恢复啊,当然是重做日志文件,找到重做日志文件里的SCN号,然后缩小SCN号范围,找到待恢复数据。
第一步:select dbms_flashback.get_system_change_number from dual;-->查找当前的SCN号(这里是7455407),如果你知道删除数据前的SCN号就更简单了
第二步:select count(*) from t1 as of scn 7455407;-->查询当前SCN下的数据(当前查到的是0,因为数据已经删除了)
第三步:缩小SCN范围,即往前推。
select count(*) from t1 as of scn 7433000;-->在这个点上查到数据(17110条)。
第四步:insert into t1 select * from t1 as of scn 7443000;-->恢复数据
哈哈,是不是很简单啊!这才是终极必杀技哦!
就问6不6?
6
6
6
delete from t1全部删除了。
也许到这里你还并不害怕,不行就flashback就是了。抱歉,我今天又做了一个purge recyclebin
擦,完蛋了。彻底无法恢复了吗?
当然不是,要知道recyclebin是存在内存中的,真正的数据肯定是保存在文件里的,那么从哪里恢复啊,当然是重做日志文件,找到重做日志文件里的SCN号,然后缩小SCN号范围,找到待恢复数据。
第一步:select dbms_flashback.get_system_change_number from dual;-->查找当前的SCN号(这里是7455407),如果你知道删除数据前的SCN号就更简单了
第二步:select count(*) from t1 as of scn 7455407;-->查询当前SCN下的数据(当前查到的是0,因为数据已经删除了)
第三步:缩小SCN范围,即往前推。
select count(*) from t1 as of scn 7433000;-->在这个点上查到数据(17110条)。
第四步:insert into t1 select * from t1 as of scn 7443000;-->恢复数据
哈哈,是不是很简单啊!这才是终极必杀技哦!
就问6不6?
6
6
6
相关文章推荐
- oracle update、delete或者drop误操作如何恢复之前是数据
- ORACLE数据库误操作执行了DELETE,该如何恢复数据?
- [Oracle]用BEBD恢复delete的数据
- oracle利用flashback 闪回功能恢复delete数据
- oracle的数据文件全部丢失,但有归档和重做日志,如何恢复?
- 如何恢复并理解oracle删除数据的原理
- 数据恢复:如何恢复Linux中意外删除的Oracle和MySQL数据库
- 数据恢复:如何恢复Linux中意外删除的Oracle和MySQL数据库
- Delete数据如何恢复
- 出现Oracle 文件大小变为0的情况如何恢复数据?
- Oracle闪回查询恢复delete删除数据
- oracle如何恢复误删数据
- 恢复oracle 中误删的表 或delete 删掉的数据恢复
- oracle误删磁盘数据后不能连接数据库 如何恢复
- oracle删除表了如何恢复数据以及如何把一张表的数据复制到另一张表
- ORACLE数据truncate、delete删除恢复
- pl/sql,Oracle数据库中,不小心delete数据并提交后如何恢复被删数据
- Oracle闪回查询恢复delete删除数据
- oracle delete删除数据以后 恢复数据
- Oracle闪回查询恢复delete删除数据