1. 程式人生 > >Oracle12C--閃回技術(FlashBack)(七)

Oracle12C--閃回技術(FlashBack)(七)

技術由來

當進行了表刪除,在使用select * from tab;檢視全部表的時候,會發現如下圖的表,這種現象就是閃回技術的支撐;表被刪除,與該表有關聯的物件,例如索引、約束和其他依賴物件都會在前面加bin$$這個字首。

該技術是Oracle10G之後提供的;10G之前,使用者的表刪除後,無法找回;10G之後,為了解決資料誤刪,專門提供了這種類似回收站的功能;即資料表刪除後,預設放回回收站;使用者可通過回收站恢復表

從原理上來說就是一個數據字典,放置使用者刪除(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 ;