1.闪回表(Flashback table)
使用该特性可以将该表恢复到恢复到之前的任意时刻点上,它与flashback query不同的是,flashback query仅仅是得到在某一个时刻点上的快照,并不会改变当前表的物理状态,而flashback table却能够将表以及附属对象一起恢复到以前的某一个时刻,该功能是基于撤销数据(undodata)
使用闪回表,可将一个或多个表恢复到特定的时间点,而不需要还原备份;从还原表空间检索数据后可执行闪回表操作;执行闪回表操作需要flashback any table权限;必须对要执行闪回操作的表启用行移动.
1.1 基于时间戳的闪回
比如;当前不小了delete了myemp表的一些数据,现在想要恢复一些数据(比如说想要恢复某个时间点的数据)
0.查看undo信息
SQL> show parameter undo; 1. 赋予权限 SQL> grant flashback any table to Scott; 2.允许行移动 SQL>alter table myemp enable row movement; ##允许行移动 3.执行删除语句 SQL>flash table t to timestamp to timestamp('','YYYY-MM-DD hh24:mi:ss')
1.2基于scn的闪回
基于scn的闪回 flashback table t to scn号;
2.闪回删除(Flashback drop)
闪回删除有点类似于windown系统中的回收站功能,如要使用需要打开该功能,比如drop table 了一张表,它不会马上给物理删除,而给这张表放在了oracle的回收站中,oracle的回收站是一种逻辑结构,不具有物理数据结构
1.查看回收站是否打开 show parameter recyclebin; 2.查看回收站中的内容 show recyclebin; 3.恢复表 flashback table 表名 to before drop; 补充: 清空回收站:purge recyclebin; 如果我们想要彻底删除某种表:drop table 表名 purge;