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

Oracle 閃回功能啟用故障排查:ORA-38706/ORA-38709 完整解決

     編輯:Oracle 資料庫基礎

環境

  • Oracle 11.2.0.1.0 64-bit / Windows Server 2008 R2
  • 需求:開啟閃回功能應對邏輯誤操作快速恢復

錯誤現象

ALTER DATABASE FLASHBACK ON;
-- 報錯
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38709: Recovery area not enabled.

根因分析

  1. SHOW PARAMETER db_recovery → db_recovery_file_dest **為空**
  2. 嘗試設定 → ORA-16019: cannot use db_recovery_file_dest with LOG_ARCHIVE_DEST
  3. 檢查 SHOW PARAMETER log_archive_dest → **已設定歸檔路徑**,與快速恢復區互斥

解決步驟

1. 清空傳統歸檔參數

ALTER SYSTEM SET LOG_ARCHIVE_DEST = '' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=D:\archivelog' SCOPE=BOTH;

2. 設定快速恢復區 (FRA)

ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = 'D:\app\Administrator\fast_recovery_area\orcl' SCOPE=BOTH;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10G SCOPE=BOTH;  -- 空間上限
ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET = 30 SCOPE=BOTH; -- 保留 30 分鐘 (預設 1440 分鐘)

3. 開啟閃回

ALTER DATABASE FLASHBACK ON;
-- Database altered. 成功!

關鍵知識點

  • 閃回**要求歸檔模式** (ARCHIVELOG)
  • 閃回後**必須 RESETLOGS 開啟**
  • 閃回日誌儲存**資料塊完整鏡像**,恢復速度遠快於 RMAN/用戶管理備份
  • DB_FLASHBACK_RETENTION_TARGET 單位為**分鐘**,按業務 RPO 設定

驗證

SELECT FLASHBACK_ON FROM V$DATABASE;
-- YES

SELECT * FROM V$FLASHBACK_DATABASE_LOG;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved