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

Oracle Redo日志與歸檔模式基礎架構解析

     編輯:Oracle 資料庫基礎

兩類日志文件職能分工

類型名稱功能生命周期
聯機日志Online Redo Log循環記錄所有數據庫變更(DML/DDL/內部操作),保證事務持久性(ACID中的D)固定組數/大小,循環覆寫
歸檔日志Archived Redo Log聯機日志組切換時的離線副本,構成完整變更歷史鏈持久保留,配合備份策略清理

歸檔模式核心差異


-- NOARCHIVELOG:聯機日志切換直接覆寫,無歷史保留
-- 風險:介質故障只能恢復至最後一次冷備份,中間所有變更丟失

-- ARCHIVELOG:聯機日志切換前必須完成歸檔,才能被覆寫
-- 優勢:擁有完整Redo鏈,支援任意時間點恢復(PITR)、熱備份、Data Guard
-- 代價:磁盤空間、歸檔I/O、管理複雜度

日志序列號(Sequence#)與SCN雙重導航

  • Sequence#:每次日志切換遞增,標識Redo Log組使用順序,歸檔文件名通常包含序列號。
  • SCN (System Change Number):全局遞增時鐘,每次提交賦予唯一SCN,Redo記錄包含起始/結束SCN,恢復時精確定位。
  • 恢復命令三選一:UNTIL SEQUENCE、UNTIL CHANGE (SCN)、UNTIL TIME。

架構圖解


用戶事務
    │
    ▼
Redo Log Buffer (SGA)
    │  (LGWR寫入,Commit時強制刷盤)
    ▼
Online Redo Log Group 1 (Current)  ◄── 循環使用 Group 1→2→3→1...
    │  (滿/切換)
    ▼
ARCH進程歸檔  ──────►  Archived Redo Log (序列號 100, 101, 102...)
    │                        │
    │                        ├─► 本地 FRA / 磁盤
    │                        └─► 遠程 Standby (Data Guard)
    │
    ▼
檢查點 (CKPT) 更新控制文件/數據文件頭 SCN

關鍵配置要點

  1. 日志組數與大小:最少2組,生產3-5組;大小使切換間隔15-30分鐘(V$LOG_HISTORY觀察)。
  2. 多路鏡像:每組2-3成員,分佈不同磁盤/控制器/存儲陣列(ALTER DATABASE ADD LOGFILE MEMBER)。
  3. 歸檔目標:本地FRA + 遠程Standby雙通道,LOG_ARCHIVE_DEST_1/2分離。
  4. 補充日志:ALTER DATABASE ADD SUPPLEMENTAL LOG DATA,支援LogMiner/GoldenGate/Streams精確還原UPDATE前值。
鐵律:
• 任何生產庫禁止運行NOARCHIVELOG模式。
• 聯機日志不可手工刪除/移動,僅通過ALTER DATABASE DROP/ADD LOGFILE管理。
• 歸檔日志不可手工刪除,僅通過RMANDELETE ARCHIVELOG配合備份策略清理。
• 定期驗證RESTORE ARCHIVELOG與RECOVER DATABASE演練,確保鏈路完整。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved