论ORACLE中如何恢复被delete的表中数据

啊!假如说我有一张表叫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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值