通过flashback恢复数据的表

删除表通过flashback恢复(执行flashback由DB_FLASHBACK_RETENTION_TARGET参数 能恢复多久以前的操作)

首先需要开启flashback

查询是否开启
select open_mode,flashback_on from v$database;

企业微信截图_1790064162226

创建一张测试表(如果是sys用户会提示无法执行flashback)

create table t1 select * from system.help where rownum<6;

查询表数据是否有写入t1表
select count(*) from t1;

d934c130-2d78-422a-bbf6-3a303e4e6332

开始进行删除表操作
在sqlplus窗口执行 set time on以及!cal

delete from t1 where username is not nul; (记录删除的时间)

commit;

74a9a9bd-254d-446f-8dd0-53c218f24eaf

查询表的记录数

select * from t1;

开始执行flashback恢复t1的记录

开启行移动
alter table t1 enable row movement;

执行flashback操作
flashback table t1 to timestamp to_timestamp('2026-09-22 16:22:05','YYYY-MM-DD HH24:MI:SS');

3dd7dc91-535f-440f-beb1-50911b2c45b4

查询flashback后t1表的记录

e4d630e8-1caf-4d33-912a-656315d07581

posted @ 2026-09-22 16:42  黄多鱼  阅读(4)  评论(0)    收藏  举报