时间戳方法的应用
数据表DELETE以后,在有日志的情况下,恢复数据:
1、查询数据库当前时间
SELECT TO_CHAR(SYSTEM,'YYYY-MM-DD hh24:mi:ss')
FROM DUAL;
2、查询数据库时间点之前的数据
SELECT *
FROM <表名>
AS OF TIMESTAMP TO_TIMESTAMP('2022-04-01 23:09:03','YYYY-MM-DD HH24:MI:SS');
--如果没有数据,将时间继续提前。
3、恢复数据
FLASHBACK TABLE <表名>
AS OF TIMESTAMP TO_TIMESTAMP('2022-04-01 22:30:11','YYYY-MM-DD HH24:MI:SS')
--数据成功恢复
注意事项:
时间戳恢复数据,可能会报错。比如:ORA-08189 :未启动行移动功能,不能闪回表。可如下操作:
ALTER TABLE <表名> ENABLE ROW MOVEMENT;
--之后再次执行上面的SQL语句即可。
文章参考:https://blog.csdn.net/Liamcsl/article/details/114198102