您的位置:首页 > 数据库 > Oracle

关于oracle误删数据恢复

2013-04-26 13:48 591 查看
上周时候,因为一时手贱,生产上的数据被我给delete掉了。

用的是delete语句,然后很迅速的还给commit了。
于是---》杯具了。
----------------------------------------------------
于是找到了下面这两个语句:

ALTER TABLE tablename ENABLE row movement ;

flashback table tablename to timestamp to_timestamp('2012-09-13 13:00:00','yyyy-mm-dd hh24:mi:ss');

------------------------------------------------------
记得大概是两点半左右运行的delete---commit;
但是恢复的时候却被我理所应当的恢复到了13:00:00
(话说这时候又是手贱,另记:没事别想当然)
------------------------------------------------------
被我误删的数据确实回来了,可是,第二天的时候忽然反应过来,那13:00:00 到14:30:00这段时间插入的数据还在不呢(测试环境下试了下,这段时间的数据应该没了,因为这张表是原始明细表,会不停地轮询目录,解析文件,插入明细。于是,这下真的慌了)
------------------------------------------------------
幸亏后来通过其他途径找到丢失的数据了,不幸中的万幸。
------------------------------------------------------
所以,下次如果还有这种问题,强烈表示,恢复前一定创建临时表把当前表里面的数据备份起来,然后确认在备份后不进行插入,更新操作,这时候再使用上面的语句将表还原到某个时间,然后两张表整合下。
------------------------------------------------------
很罗嗦的我,表达越来越有问题了……悲催……本文出自 “IT-菜菜” 博客,请务必保留此出处http://hanbin.blog.51cto.com/1518861/1187281
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: