Oracle12C--闪回技术(FlashBack)(七)

技术由来

当进行了表删除,在使用select * from tab;查看全部表的时候,会发现如下图的表,这种现象就是闪回技术的支撑;表被删除,与该表有关联的对象,例如索引、约束和其他依赖对象都会在前面加bin$$这个前缀。


该技术是Oracle10G之后提供的;10G之前,用户的表删除后,无法找回;10G之后,为了解决数据误删,专门提供了这种类似回收站的功能;即数据表删除后,默认放回回收站;用户可通过回收站恢复表

Oracle12C--闪回技术(FlashBack)(七)_第1张图片

从原理上来说就是一个数据字典,放置用户删除(drop)掉的数据库对象信息。用户进行删除操作的对象并没有被数据库删除,仍然会占用空间。除非是由于用户手工进行Purge或者因为存储空间不够而被数据库清掉。



举栗说明

将employee和department表一起删除

DROPTABLE employee ;

DROPTABLE department ;

查看c##scott用户所有的表,两个 BIN 开头的表,这就是放入回收站的表;

SELECT * FROM tab ;

查看回收站中的数据
SELECT object_name,original_name,operation,type FROMrecyclebin ;


恢复myemp表

FLASHBACKTABLE myemp TO BEFORE DROP ;

再次使用第三步的语句查看回收站,只剩下一张表了:


查看全部表,此表是否复原:

select * from tab;


彻底删除表

如果希望彻底删除表,不放入回收站,则使用下面的语句

    语法:drop table 表名称 purge;

示例:直接删除myemp表

DROPTABLE myemp PURGE ;

你可能感兴趣的:(Oracle,Oracle12c学习笔记)