Oracle 10g中找回误删数据

本文分享了在不慎删除数据库表中一条记录后,通过闪回查询、闪回表及数据库闪回等方法逐步恢复数据的过程。作者最终成功找回丢失的数据,并从中吸取了宝贵的经验教训。
      今天在项目中对用户的数据进行操作,在修改一个存储过程后,想检查一下修改的存储过程是否正确,就对存储过程进行了调试,调试完后才发现结果集中少了一条记录,查找后发现存储过程中有对表的数据进行删除操作,千小心万小心还是没有把删除的语句中的表改为临时表,还好只删除了一条记录。
      经过一下午和晚上的努力,到出寻求帮助,总算找到了一个方法根据时间可以查看删除的记录数据
      1. 进行查询闪回如:
Select * From 表名 As Of Timestamp to_Timestamp('2009-7-24  18:07:30','yyyy-mm-dd hh24:mi:ss')
Where id='CQn2Q9xbvy'
      
      2. 闪回的数据重新插入到机表中,如:
Insert Into 表名 
(
Select * From 表名 As Of Timestamp to_timestamp('2009-07-24 16:08:30','YYYY-MM-DD HH24:MI:SS')

      3. 恢复被删除的基表
Flashback Table 表名 To Before Drop;

      4.数据库闪回
Flashback Database To Scn sid; --sid:指定的系统改变号
Flashback Database To Timestamp to_timestamp('2009-07-24 16:08:30','YYYY-MM-DD HH24:MI:SS')
      
      然后在通过插入语句将原始的数据插入到表中,问题总算是解决了。
      不然今天可犯下了无法弥补的大错,这次的教训将会深深地记住。

转载于:https://www.cnblogs.com/ZHF/archive/2009/07/24/1530511.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值