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');

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

posted @ 2019-09-05 14:51  DemoJohn  阅读(1546)  评论(0)    收藏  举报