背景介绍
昨天在操作oracle时,误操作将主表的数据给删除了,瞬间惊起一后背凉汗,脑海想到自己难道就是删库跑路的典型代表。赶紧上网百度,还好找到了解决方案,恢复好数据才放心,所以赶紧整理一下自己的经历,提示自己这次事件,并希望给遇到相同事情的大家一个解决方案。
问题描述
根据主表数据id去删除从表数据,粗心忘记修改表名把主表数据给删除了,还给提交了事务,提交事务才醒悟自己删除错了。
解决方案
1、打开Flash存储的权限
alter table tablename enable row movement ;
2、把表还原到指定时间点
flashback table tablename to timestamp to_timestamp('2021-11-17 11:02:00','yyyy-mm-dd hh24:mi:ss');
后面的参数为指定还原的时间点
注意:
这种解决方案适合删除了数据并提交了事务,需要紧急恢复删除的数据,其中执行的操作是delete。