Oracle 10g 引入回收站:DROP 對象不物理刪除,重命名移入回收站 (數據字典表 USER_RECYCLEBIN/DBA_RECYCLEBIN),繼續佔用空間,直至 PURGE 或空間壓力自動清理。有效解決誤刪表後的緊急恢復痛點。
RB$$<objn>$<object_type>$<version>
RB:Recycle Bin 標識;objn:對象字典編號;object_type:TABLE、INDEX 等;version:防止同名多次 Drop 衝突。-- 環境準備
CONNECT foo/foo;
SELECT TABLE_NAME FROM USER_TABLES; -- 無記錄
DESC USER_RECYCLEBIN; -- 查看結構
SELECT OBJECT_NAME FROM USER_RECYCLEBIN; -- 無記錄
-- 建表並驗證
CREATE TABLE foo AS SELECT * FROM DUAL;
SELECT TABLE_NAME FROM USER_TABLES; -- FOO
-- 執行 DROP
DROP TABLE foo; -- 表已丟棄
SELECT TABLE_NAME FROM USER_TABLES; -- RB$$41888$TABLE$0 (回收站內部名)
-- 回收站檢視
SELECT OBJECT_NAME, ORIGINAL_NAME FROM USER_RECYCLEBIN;
-- OBJECT_NAME ORIGINAL_NAME
-- RB$$41888$TABLE$0 FOO
DESC RB$$41888$TABLE$0; -- 結構保持原樣
-- 核心價值:閃回恢復
FLASHBACK TABLE foo TO BEFORE DROP; -- 秒級恢復,數據零損失
-- 徹底清理
PURGE TABLE foo; -- 或 PURGE RECYCLEBIN
PURGE DBA_RECYCLEBIN; -- DBA 全庫清理
| 視圖/參數 | 用途 |
|---|---|
| USER_RECYCLEBIN | 當前用戶回收站對象詳情 |
| DBA_RECYCLEBIN | 全庫回收站對象 (需 DBA 權限) |
| RECYCLEBIN 初始化參數 | ON (預設) / OFF 關閉特性 |
| _RECYCLEBIN_MAX_SIZE | 隱含參數,控制回收站空間上限 |
FLASHBACK TABLE (表級) + FLASHBACK DATABASE (庫級) + FLASHBACK QUERY (查詢級) 三層防護;DROP 核心表,走變更流程驗證回收站狀態;SELECT SUM(SPACE) FROM DBA_RECYCLEBIN; 納入巡檢儀表板。11g+ 引入 FLASHBACK DATA ARCHIVE (總閃回存檔),提供年級歷史數據保留與查詢,回收站機制持續增強,成為 Oracle 數據安全核心組件矩陣關鍵一環。