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;