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

Oracle 10g+ Flashback Database 閃回資料庫完整部署指南:從啟用歸檔到開啟閃回功能

     編輯:Oracle 資料庫基礎

閃回技術演進

  • 9i Flashback Query:基於 Undo,受限於 UNDO_RETENTION 與表空間大小,易發生 ORA-01555。
  • 10g Flashback Database:引入 Flashback Log(類似 Redo Log 但反向記錄),支援整個資料庫「時光倒流」到指定時間/SCN,不依賴 Undo。

閃回恢復區 (Fast/Flash Recovery Area, FRA)

集中管理 Flashback Log、Archive Log、RMAN Backup Set、Control File 自動備份等恢復相關檔案。

三大核心初始化參數

完整啟用流程 (需停機)

-- 1. 關閉資料庫
SHUTDOWN IMMEDIATE;

-- 2. 啟動至 MOUNT 模式
STARTUP MOUNT;

-- 3. 啟用歸檔模式
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

-- 4. 設定歸檔格式與目的地 (可選,若未設定 LOG_ARCHIVE_DEST_n 則預設寫 FRA)
ALTER SYSTEM SET log_archive_format='ARC%S%T%R.LOG' SCOPE=SPFILE;
ALTER SYSTEM SET log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST' SCOPE=SPFILE;

-- 5. 重啟生效
SHUTDOWN IMMEDIATE;
STARTUP;

-- 6. 強制切換日志產生首個歸檔
ALTER SYSTEM SWITCH LOGFILE;

-- 7. 關閉資料庫至 MOUNT
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;

-- 8. 開啟閃回功能
ALTER DATABASE FLASHBACK ON;

-- 9. 開啟資料庫
ALTER DATABASE OPEN;

驗證閃回狀態

SQL> SELECT flashback_on, log_mode FROM v$database;
FLASHBACK_ON  LOG_MODE
------------- ------------
YES           ARCHIVELOG

常見操作範例

-- 閃回至指定時間 (需 MOUNT 狀態)
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
FLASHBACK DATABASE TO TIMESTAMP TO_TIMESTAMP('2024-01-15 10:00:00', 'YYYY-MM-DD HH24:MI:SS');
ALTER DATABASE OPEN RESETLOGS;

-- 閃回至指定 SCN
FLASHBACK DATABASE TO SCN 123456789;

注意事項

  • 開啟 FLASHBACK ON 需資料庫處於 MOUNT 狀態且已啟用 ARCHIVELOG。
  • FRA 空間不足 (超過 85%) 會寫入 Alert Log 警告 (ORA-19815),需擴充空間或清理舊備份/歸檔。
  • RAC 環境 FRA 必須置於共享儲存 (ASM/Cluster FS),所有節點可存取。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
參數說明建議值
db_recovery_file_destFRA 磁碟路徑(如 +FRA ASM 或 /u01/fra)獨立磁碟/ASM 磁碟組
db_recovery_file_dest_sizeFRA 空間上限視備份保留策略規劃,至少 500GB+
db_flashback_retention_target可閃回時間上限(分鐘),預設 1440 (1天)配合空間大小設定,實際受 FRA 空間限制