错误操作一堆数据,遇到这个问题先别慌,办法总会有的,可能我这个办法比较基础,但也是办法之一哈。

第一步是查找指定时间里的数据,例如我是在2020年6月1号15:30左右误改数据,那么这条语句就是可以根据时间查找你误改前的表里的内容,我把时间设定为误改前的5分钟。
这样就可以查看到你这张表是否在2020年6月1号15:25的数据,也就是被删之前的数据

select * from 表名 as of timestamp to_timestamp('2020-06-01 15:25:00','YYYY-MM-DD hh24:mi:ss');

当然也可以指定查询距离现在多久之前的数据,以及加上条件 ,这是查询距离现在70分钟之前的数据

select * from wms_f_receive as of timestamp (systimestamp - interval '70' minute) where plan_no='MXXC20220817001';

第二步是开启这个表回归数据,这样才可以执行闪回,否则你在执行闪回的时候会报错的。

alter table 表名 enable row movement;

第三步是执行闪回语句,就是让表的数据恢复到2020年6月1日15:25的状态。这个过程可能相对有点久,我误改了8万多条数据,用时789秒,相当于13分钟左右,所以如果遇到执行这条语句结果卡着不动了,不用惊慌,耐心等待数据恢复。

flashback table 表名 to timestamp TO_TIMESTAMP('2020-06-01 15:25:00','YYYY-MM-DD hh24:mi:ss');

第四步是关闭表回归数据的操作,对应第二步,凡是有开启,就得要关闭。

alter table 表名 disable row movement;

行了,数据恢复了,花了我十几分钟时间。。。

以上步骤,最好是在你发现操作失误后的两三个小时内,否则我怕时间久了数据会被回收走!!

 

posted @   javaTian  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示