oralce数据库的闪回
1 删除表数据的恢复
不小心删除了表的数据,想要恢复,
(仅恢复delete 的数据)
先打开表的行移动功能
alter table 表名 enable row movement;
删除之前时间和对应的scn
select to_char(sysdate,'yyyymmdd hh24:mi:ss') 时间,timestamp_to_scn(sysdate) SCN from dual;
基本无法知道删除之前的scn,所以根据删除之前的某个时间恢复就可以了
例如恢复一下时间点表中的数据
flashback table 表名to timestamp to_date('20191221 12:40:30','yyyymmdd hh24:mi:ss');
2删除表的恢复
查询表中数据如下
然后删掉表
drop table test_table;
其实表删除掉以后,放到了回收站里,
这时我们可以查询回收站的数据
select * from recyclebin;
object_name为回收站中表的别名,original_name为表名
查询回收站中表的数据
select * from "BIN$HqdDG1tOQ0ucxnv2mRjCdg==$0"
这里要注意:
管理员没有回收站,
回收站只对表起作用,
删除视图,回收站不会记录。
系统表不能被闪回,
不能跨越DDL操作,
会被写入警告日志,
下面把删除的表闪回。
flashback table test_table to before drop;
接着查询test_table 表中数据
数据已经被恢复了。
也可以根据回收站中的别名闪回表。
(如有错误,请帮忙改正。)