Oracle:误删除数据回退

     Oracle数据库在开启归档模式下,如何回退由delete、update等误操作导致的数据逻辑删除、修改,以下闪回方式可进行单张数据库表指定时间点批量回滚,具体步骤如下:

(1)查询SQL执行记录

        select * from v$sqlarea a where a.SQL_TEXT like '%表名%';

(2)启用行移动功能

       alter table 表名 enable row movement;

(3)查询操作前数据

       select count(*) from 表名 as of timestamp to_timestamp('2022-01-01 09:28:00','yyyy-mm-dd hh24:mi:ss') ;

(4)执行闪回,恢复数据:

      flashback table 表名 to timestamp to_timestamp('2022-01-01 09:28:00','yyyy-mm-dd hh24:mi:ss');

(5)关闭行移动功能

      alter table 表名 disable row movement;

(6)解除主表约束,以执行回退:

       A、主键失效:alter table table_name disable primary key cascade;

      B、主键生效:alter table table_name enable primary key;

你可能感兴趣的:(Oracle:误删除数据回退)