同事执行Update,结果忘了加限定条件。结果就是把2w+的数据某一字段更新成了同一个。
转过头一想,Oracle肯定提供了一种恢复方法,来恢复这种误操作带来的数据损失。查了一下资料,果然可以,再都不用担心删库跑路啦。
1、首先你得记得是什么时候GG的,通过下面的SQL可以查询这个时间点之前的数据是否正确。
select * from table_name as of timestamp to_timestamp(‘2018-11-08 11:00:00’,’yyyy-mm-dd hh24:mi:ss’);
2、然后就是回退到这个时间点之前啦。
flashback table table_name to timestamp to_timestamp(‘2018-11-08 11:00:00’,’yyyy-mm-dd hh24:mi:ss’);
3、注:如果报错ORA-08189: cannot flashback the table because row movement is not enabled 就输入下面的一段,开启行迁移,就可以了。
alter table table_name enable row movement;
写在后面,还有一种方法是通过SCN( System Change Number )来恢复某个操作之前的数据,具体方法就不在此赘述了。
文章评论