本文最后更新于2022年6月1日,已超过 1 年没更新!内容可能已失效,请自行测试。
1.恢复表
首先从RECYCLEBIN表中查询被删除的表
SELECT * FROM RECYCLEBIN;
若RECYCLEBIN表中有被误删的表则执行恢复
FLASHBACK TABLE table_name TO BEFORE DROP;--table_name为待恢复表的表名
2.恢复表数据
恢复XX时间点前的数据
ALTER TABLE table_name ENABLE ROW MOVEMENT;--允许oracle修改rowid
FLASHBACK TABLE table_name TO TIMESTAMP to_timestamp('2020-03-18 15:00:00','yyyy-mm-dd hh24:mi:ss');--恢复XX时间点的数据
ALTER TABLE table_name DISABLE ROW MOVEMENT;--禁止修改rowid
查询导入恢复
SELECT * FROM table_name AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '15' MINUTE ) --查询出15分钟前的数据,然后导入表
SELECT * FROM table_name AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '2' DAY)--这里可以使用DAY、SECOND、MONTH替换minute,例如:
Comments | NOTHING