需求描述:
同事让删除脏数据,结果删错了,需要恢复数据
思路:
利用闪回恢复数据只能恢复15分钟之内的,后面undo空间会被重写,就恢复不了,所以删除数据后,要谨慎再三确认,若发现不对,则利用闪回恢复
SELECT*FROM 表名 as OF TIMESTAMP TO_TIMESTAMP('2024-01-22 17:32:39','YYYY-MM-DD HH24:MI:SS')
查到时间戳之后
///开启表行移功能
alter table 表名 enable row movement;
闪回恢复到查询的时间节点
FLASHBACK TABLE 表名 TO TIMESTAMP TO_TIMESTAMP('2024-01-22 17:32:39', 'YYYY-MM-DD HH24:MI:SS')
关闭表行移功能
ALTER TABLE 表名 DISABLE ROW MOVEMENT;
闪回恢复数据默认只能恢复15分钟内的
如果超过了,可尝试使用管理员权限,恢复数据
flashback database to timestamp to_timestamp('2024-01-22 17:32:39','YYYY-MM-DD HH24:MI:SS');