標籤:
資源回收筒,顧名思義,它就是儲存被刪掉的東西。從原理上來說就是一個資料字典表,放置使用者刪除(drop)掉的資料庫物件資訊。使用者進行刪除操作的對象並沒有被資料庫刪除,仍然會佔用空間。除非是由於使用者手工進行Purge或者因為儲存空間不夠而被資料庫清掉。資料庫有了這樣的功能,能夠減少很多不必要的麻煩。
如果一個表被刪除,那麼與該表有關聯的對象,例如索引、約束和其他依賴對象都會在前面加bin$$這個首碼。
查看資源回收筒狀態:
返回結果是on,就是資源回收筒開啟。
返回結果是off,就是資源回收筒關閉。
SELECT Value FROM V$parameter WHERE Name = ‘recyclebin‘;
對系統和會話級的資源回收筒,開啟關閉。
--開啟系統級資源回收筒ALTER SYSTEM SET recyclebin = ON; --開啟會話級資源回收筒 ALTER SESSION SET recyclebin = ON; --關閉系統級資源回收筒ALTER SYSTEM SET recyclebin = OFF; --關閉會話級資源回收筒ALTER SESSION SET recyclebin = OFF;
查看資源回收筒裡的內容:
SELECT * FROM RECYCLEBIN; SELECT * FROM USER_RECYCLEBIN; SELECT * FROM DBA_RECYCLEBIN;
恢複資源回收筒內對象:
FLASHBACK TABLE <<Dropped_Table_Name>> TO BEFORE DROP RENAME TO <<New_Table_Name>>
備忘:這裡的RENAME是給刪除的對象進行重新命名,是一個可選命令。
刪除資源回收筒內容:
1.刪除表
PURGE TABLE <<Table_NAME>>;
2.刪除索引
PURGE INDEX <<Index_NAME>>;
3.刪除資料表空間相關對象
PURGE TABLESPACE<<Table_NAME>>;
4.刪除特定使用者資料表空間相關對象
PURGE TABLESPACE<<Table_NAME>> USER <<User_Name>>;
5.清空資源回收筒
PURGE RECYCLEBIN;
6.徹底刪除表
DROP TABLE <<Table_Name>> PURGE;
oracle 資源回收筒