下面通过试验来演示如何在误操作和迅速挽回数据

首先要记得自己误操作的时间

workflow_base表33条数据

误操作对表workflow_base表进行了delete操作(箭头1)
表中数据被清空了(箭头2 select该表已经没有数据了)
恢复部分

恢复脚本:
alter table workflow_base enable row movement;
flashback table workflow_base to timestamp to_timestamp('2020-10-21 08:41:50','yyyy-mm-dd hh24:mi:ss');
alter table workflow_base disable row movement;
进行恢复操作,箭头所指的时间就是误操作前的时间,时间一定要确定是误操作前的时间

闪回操作后,对该表进行select操作
恢复注意事项:
一、生产环境误操作后,如果误操作的是非常重要的业务表,原则上立即停掉OA,然后进行恢复操作。
二、恢复操作是利用了数据库
三、如果不是人工操作
如何规避误操作
对于Delete和Update语句在操作前,先Selete出来确认下,确认是自己要操作的数据,然后再进行操作。

比如要对workflow_base表id=11的表进行Delete或者Update操作
在操作前,先通过Select语句选出该条数据,确认是要操作的数据后再进行Delete或者Update操作。

那么Select也看过数据了但是还是不确认,因为要改完数据后,来通过前端页面验证对不对或者过两天后又想还原回来怎么办。
对于这种情况,操作前先对要操作的数据进行备份,比如操作的是workflow_base表id=11的数据,那么在操作前,把该条数据备份到一个表里去,后边反悔了,可以通过该备份表找回数据。
create table workflow_base_ID11
as
select * from workflow_base where id=11;