oracle误执行update提交事务后,回滚数据

今天在公司服务器上执行了一句update SQL 并且提交了事务,忘记加筛选条件,导致整表字段被改,一下就来记录下回滚过程。
1、找到自己执行update语句的时间
select r.FIRST_LOAD_TIME,r.* from v$sqlarea r order by r.FIRST_LOAD_TIME desc ;
oracle误执行update提交事务后,回滚数据_第1张图片

2、查询该时间点的数据,是否为执行update前数据
select * from 表名 as of timestamp to_timestamp(‘2020-07-21 10:33:51’, ‘yyyy-mm-dd hh24:mi:ss’)
oracle误执行update提交事务后,回滚数据_第2张图片3、执行下面两条SQL,即可将数据恢复到执行update之前
alter table m_met_rules enable row movement;
flashback table m_met_rules to timestamp to_timestamp(‘2020-07-21 10:33:51’, ‘yyyy-mm-dd hh24:mi:ss’);
这就成功啦~,这更新是整表更新的,有特殊语句可加筛选条件。
最好提交事务前一定要检查数据~~~

你可能感兴趣的:(oracle)