关于oracle误删数据恢复

时间:2022-04-11 07:19:09

上周时候,因为一时手贱,生产上的数据被我给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这段时间插入的数据还在不呢(测试环境下试了下,这段时间的数据应该没了,因为这张表是原始明细表,会不停地轮询目录,解析文件,插入明细。于是,这下真的慌了)

------------------------------------------------------

幸亏后来通过其他途径找到丢失的数据了,不幸中的万幸。

------------------------------------------------------

所以,下次如果还有这种问题,强烈表示,恢复前一定创建临时表把当前表里面的数据备份起来,然后确认在备份后不进行插入,更新操作,这时候再使用上面的语句将表还原到某个时间,然后两张表整合下。

------------------------------------------------------

很罗嗦的我,表达越来越有问题了……悲催……