Oracle12C--閃回技術(FlashBack)(七)
阿新 • • 發佈:2019-02-01
技術由來
當進行了表刪除,在使用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 ;