Oracle误操作--被提交后的数据回退(闪回)

由于一时的粗心,在做update操作时,忘记了加where条件,导致全表数据被修改。此类错误实属不该!!特此记录一下!!

网上搜索Oracle数据回退操作,介绍如下:

闪回级别 闪回场景 闪回技术 对象依赖   影响数据
数据库 表截断、逻辑错误、其他多表意外事件 闪回DATABASE 闪回日志、undo
DROP 删除表 闪回DROP 回收站(recyclebin)
更新、删除、插入记录 闪回TABLE 还原数据,undo
查询 当前数据和历史数据对比 闪回QUERY 还原数据,undo
版本查询 比较行版本 闪回Version Query 还原数据,undo
事务查询 比较 闪回Transaction Query 还原数据,undo
归档 DDL、DML 闪回Archive 归档日志
         

闪回执行步骤:

1.查询最近更新数据之前的数据(以便确定是不是Commit之前的数据)

  时间是在最后更新之前的时间,既未做updata操作之前的时间

select * from T_PRODUCT as of timestamp to_timestamp('2019-09-05 11:10:00', 'yyyy-mm-dd hh24:mi:ss');

2.进行闪回操作前需要开启行移动功能

alter table T_PRODUCT enable row movement;

3.执行闪回语句

 flashback table T_PRODUCT to timestamp TO_TIMESTAMP('2019-09-05 11:10:00','yyyy-mm-dd hh24:mi:ss');

然后数据就回退到更新操作之前了。

原文地址:https://www.cnblogs.com/JohnsonLiu/p/11465973.html