update误操作,如何数据回滚(MaydayMayday)
update误操作,数据回滚操作
·
问题描述
问题:在进行update 的时候,忘记加where条件,导致所有数据都被修改。如何进行恢复到sql 执行前的状态,话不多说操作如下。
笔者,环境是oracle环境,mysql 没有尝试过。
第一步:查询执行过的SQL语句
select r.first_load_time,r.* from v$sqlarea r where sql_text like '%执行的SQL语句%' order by r.first_load_time desc
‘%%’ 不写的话,就是查找所有执行记录
第二步:设置误操作表可数据回滚
alter table 误操作表名 enable row movement;
第三步:恢复到时间节点
flashback table 误操作表名 to timestamp to_timestamp('SQL误执行时间','yyyy-mm-dd hh24:mi:ss');
SQL误执行时间,选择上一条SQL语句时间(误操作SQL的上一条)
第四步:关闭表回滚
alter table 误操作表名 disable row movement;
第五步:收工,检查数据情况
刷新一下你的表吧,你会惊喜的发现,总算数据回来了。
更多推荐
已为社区贡献1条内容
所有评论(0)