首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 11g 閃回資料歸檔:Total Recall 完整部署與實戰驗證

     編輯:Oracle 資料庫基礎

傳統 UNDO 保留受限於表空間大小與 UNDO_RETENTION,無法滿足長期審計與歷史追溯需求。Oracle 11g 引入 Flashback Data Archive (FDA),配合後台進程 FBDA 將 UNDO 永久歸檔,實現 Oracle Total Recall 全面回溯能力。本文從架構原理到部署驗證全流程解析。

一、 架構原理與關鍵進程

  • 類比:Redo Log Archive 保障恢復連續性;Flashback Archive 保障歷史查詢連續性
  • FBDA (Flashback Data Archiver Process):定期將 UNDO 區段搬移至 FDA 表空間,支援分區與壓縮
  • 儲存特性:可按年保留,內建分區/壓縮減少空間,適合審計、合規、緩慢變維表
  • 代價:高交易系統會額外消耗儲存與 CPU,建議**僅對核心表啟用**

二、 部署前置條件

  1. 建立 **ASSM (自動段空間管理)** 表空間:
    CREATE TABLESPACE fbda
      DATAFILE '/u01/oradata/tqgzs11g/FBDA.dbf' SIZE 200M
      SEGMENT SPACE MANAGEMENT AUTO;
  2. 具備 FLASHBACK ARCHIVE ADMINISTER 系統權限(SYS 或授權角色)

三、 建立 Flashback Archive

CREATE FLASHBACK ARCHIVE fda
  TABLESPACE fbda
  RETENTION 1 MONTH;  -- 保留期:1 MONTH / 1 YEAR / 5 YEAR 等

四、 啟用表級歷史追蹤

-- 需 FLASHBACK ARCHIVE OBJECT 權限
GRANT FLASHBACK ARCHIVE ON fda TO tq;

-- 啟用
ALTER TABLE t FLASHBACK ARCHIVE fda;

-- 關閉
ALTER TABLE t NO FLASHBACK ARCHIVE;

五、 實戰驗證腳本(含 UNDO 壓測)

-- 1. 建立小 UNDO 表空間加速老化
CREATE UNDO TABLESPACE undotbs2_small
  DATAFILE '/u01/oradata/tqgzs11g/UNDOTBS2_SMALL.dbf' SIZE 20M AUTOEXTEND OFF;
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS2_SMALL;

-- 2. 測試用戶操作
CONN tq/tq
INSERT INTO t VALUES (1, 'A'); COMMIT;
-- 等待 FBDA 背景寫入(或手動觸發)
EXEC DBMS_FLASHBACK_ARCHIVE.DISASSOCIATE_FBA('TQ','T');  -- 11gR2 可用
EXEC DBMS_FLASHBACK_ARCHIVE.REASSOCIATE_FBA('TQ','T','FDA');

-- 3. 歷史查詢(AS OF TIMESTAMP)
SELECT * FROM t AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '10' MINUTE);

-- 4. 版本查詢(VERSIONS BETWEEN)
SELECT versions_starttime, versions_endtime, id, val
FROM   t VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE;

六、 管理與監控

七、 遷移至 12c/19c/21c 注意事項

  • 12c 起支援 FLASHBACK ARCHIVE 於 PDB 層級管理
  • 19c 強化壓縮演算法(Hybrid Columnar Compression 相容)
  • 21c 引入 FLASHBACK ARCHIVE ... OPTIMIZE STORAGE 自動分層

八、 實務建議

  1. **分級啟用**:核心交易表、審計表、參考資料表啟用;高頻暫存表、日誌表不啟用
  2. **容量規劃**:預估日變更量 × 保留年限 × 1.5(壓縮後),預留表空間
  3. **備份策略**:FDA 表空間納入 RMAN 備份,確保歷史資料可恢復
  4. **效能基線**:啟用前後對比 AWR,關注 FBDA CPU、log file sync 等待變化

Flashback Data Archive 讓資料庫擁有「時光機」,配合合規保留策略,成為企業資料治理的核心基礎設施。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
任務指令/視圖
檢視 Archive 狀態SELECT * FROM DBA_FLASHBACK_ARCHIVE;
檢視表關聯SELECT * FROM DBA_FLASHBACK_ARCHIVE_TABLES;
監控 FBDA 進程SELECT * FROM V$FLASHBACK_ARCHIVE_STAT;
調整保留期ALTER FLASHBACK ARCHIVE fda MODIFY RETENTION 2 YEAR;
清理過期資料自動由 FBDA 依 RETENTION 執行,亦可手動 DBMS_FLASHBACK_ARCHIVE.PURGE