oracle执行delete,数据恢复

    

   经常不小心执行delete删除语句,如何恢复数据,表查询闪回机制;所有操作必须以sys用户身份;

  select * from sys.smon_scn_time t order by t.time_dp desc; 

       --scn 与时间的对应关系 ,每隔5分钟,系统产生一次系统时间标记与scn的匹配并存入sys.smon_scn_time表。 

   1, 获得当前时间点的scn:

       select dbms_flashback.get_system_change_number from dual;

   

  2,首先,确定删除数据的时间,查询出对应的scn号;

   select m.*  from (

     select to_char(t.time_mp/( 60 * 60 * 24)+TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH:MI:SS' )  sd , t.scn  

    from sys.smon_scn_time t  order by t.time_dp desc  

    )  m  

    where m.sd  like  '%2015-07-04 09:40%'

    上面语句查询出  2015-07-04 09:40  时间点对应的scn的号;

 3,  恢复数据:

       insert into scott.test_wt select * from test_wt as of scn 12744670;

       test_wt为scott用户下的表名;恢复成功

    

 

 

   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值