Oracle 10g 引入回收站機制:執行 DROP 時,對象不會立即物理刪除,而是重命名移入回收站(本質是數據字典表 USER_RECYCLEBIN/DBA_RECYCLEBIN),繼續佔用空間,直至用戶手動 PURGE 或空間壓力觸發自動清理。此特性有效避免誤刪表後的緊急恢復壓力。
格式:RB$$<objn>$<object_type>$<version>
RB:Recycle Bin 標識;objn:對象字典編號;object_type:對象類型(TABLE、INDEX 等);version:版本號,防止同名對象多次 Drop 衝突。-- 1. 建立測試環境
CONNECT foo/foo;
CREATE TABLE foo AS SELECT * FROM DUAL; -- 建表 FOO
-- 2. 正常查詢
SELECT TABLE_NAME FROM USER_TABLES; -- 顯示 FOO
-- 3. 執行 DROP
DROP TABLE foo; -- 提示「表已丟棄」
-- 4. 再次查詢 USER_TABLES
SELECT TABLE_NAME FROM USER_TABLES; -- 顯示 RB$$41888$TABLE$0 (回收站內部名)
-- 5. 回收站檢視
SELECT OBJECT_NAME, ORIGINAL_NAME FROM USER_RECYCLEBIN;
-- OBJECT_NAME ORIGINAL_NAME
-- RB$$41888$TABLE$0 FOO
-- 6. 閃回恢復(核心價值)
FLASHBACK TABLE foo TO BEFORE DROP; -- 秒級恢復,數據零損失
-- 7. 徹底清理
PURGE TABLE foo; -- 或 PURGE RECYCLEBIN 清空當前用戶回收站
PURGE DBA_RECYCLEBIN; -- DBA 清理全庫回收站(需權限)
USER_RECYCLEBIN / DBA_RECYCLEBIN:查詢回收站對象詳情;RECYCLEBIN 初始化參數:ON(預設開啟)/ OFF(關閉特性);_RECYCLEBIN_MAX_SIZE 隱含參數控制回收站空間上限。FLASHBACK TABLE、FLASHBACK DATABASE、FLASHBACK QUERY 形成多層次數據保護體系;DROP 核心表,必須走變更流程並驗證回收站狀態。11g 之後引入 FLASHBACK DATA ARCHIVE(總閃回存檔),提供更長週期的歷史數據保留與查詢能力,回收站機制持續增強,成為 Oracle 數據安全核心組件之一。