首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle Data Guard Redo 傳輸服務深度解析:ARCn vs LGWR 兩大傳輸模式全景圖

     編輯:Oracle 資料庫相關知識

Data Guard 核心服務分為「Redo 傳輸服務」與「Redo 應用服務」。本文聚焦傳輸層,深度剖析 ARCn(歸檔進程)與 LGWR(日誌寫入進程)兩種根本不同的傳輸架構,揭示其背後的同步語義、性能權衡與配置選型邏輯。

一、架構總覽:兩大服務與兩種傳輸模式

Data Guard 雙引擎架構:

  • Redo 傳輸服務:Primary 端 Redo → 網絡 → Standby 端接收
  • Redo 應用服務:Standby 端接收 Redo → 寫入 SRL/歸檔 → Apply 到數據文件

傳輸層兩大模式互斥於保護模式:

  • ARCn 模式:僅支援 Maximum Performance
  • LGWR 模式:支援所有模式,Maximum Protection/Availability 強制使用

二、ARCn 傳輸模式:傳統歸檔驅動架構

ARCn 傳輸架構圖

核心流程

  1. Primary 發生日誌切換,ARCn 進程(通常 ARC0/ARC1)啟動
  2. ARCn 讀取已生成的歸檔日誌,經網絡傳輸至 Standby
  3. Standby RFS (Remote File Server) 進程接收:
    • 若配置 Standby Redo Log (SRL) → 寫入 SRL,待 SRL 切換歸檔後 Apply
    • 無 SRL → 直接寫入 Standby 歸檔目錄,再 Apply

關鍵特徵

  • 延遲固有:必須等待 Primary 產生歸檔(Log Switch)才能傳輸,RPO 至少達到「產生一個歸檔的時間」
  • 開銷極低:Primary 幾乎無額外負擔,LGWR 不參與網絡傳輸
  • 適用場景:跨地域高延遲鏈路、頻寬受限、非核心業務、報表庫

三、LGWR 傳輸模式:實時同步架構

LGWR 傳輸架構圖

核心流程

  1. Primary 產生 Redo 記錄,LGWR 觸發 LNSn (Log Network Server) 進程傳輸
  2. 關鍵設計:LGWR 不直接傳輸(單進程瓶頸),由多 LNSn 並行發送至 Standby SRL
  3. 網絡傳輸模式決定同步語義:
    • SYNC:Primary Commit 必須等待 Standby 確認寫入 SRL(含磁盤 AFFIRM)才返回 → 零數據丟失
    • ASYNC:Primary Commit 即時返回,不等待網絡/寫入 → 最高效能,允許丟失
  4. Standby RFS 寫入 SRL,可選開啟 Real-time Apply 直接從 SRL Apply,否則待 SRL 歸檔後 Apply

關鍵參數控制

-- SYNC 模式建議配置超時保護
LOG_ARCHIVE_DEST_2='SERVICE=stdby LGWR SYNC AFFIRM NET_TIMEOUT=30 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stdby'

-- ASYNC 模式典型配置
LOG_ARCHIVE_DEST_2='SERVICE=stdby LGWR ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stdby'

四、兩大模式深度對比

維度 ARCn 模式 LGWR SYNC 模式 LGWR ASYNC 模式
RPO (數據丟失容忍度) 秒~分鐘級(依賴 Log Switch 頻率) 0(零丟失) 亞秒級~秒級(網絡緩衝區未刷盤數據)
Primary 性能影響 極低(無額外等待) 高(需等待網絡 RTT + Standby 寫入) 低(非阻塞發送)
網絡帶寬利用 突發式(歸檔生成時集中傳輸) 平滑持續(Redo 產生即傳輸) 平滑持續
Standby Redo Log (SRL) 需求 可選(建議配置) 強制 強制
Real-time Apply 支援 不支援(只能歸檔後 Apply) 支援(直接從 SRL Apply) 支援
保護模式支援 僅 Maximum Performance Maximum Protection / Availability Maximum Performance / Availability(故障降級)

五、LNSn 進程架構優勢

Oracle 11g+ 引入多 LNSn 並行傳輸機制:

  • 單實例最多 31 個 LNSn 進程(LOG_ARCHIVE_MAX_PROCESSES)
  • 每個 LOG_ARCHIVE_DEST_n 可獨立綁定 LNSn
  • 解決了舊版本單 LGWR 傳輸的串行瓶頸
  • 支援壓縮傳輸(COMPRESSION=ENABLE)節省頻寬

六、最佳實踐建議

  1. 核心交易庫:強制 LGWR SYNC + AFFIRM + SRL + Real-time Apply,模式設 Maximum Availability
  2. 跨地域災備:LGWR ASYNC + 壓縮傳輸,監控 V$ARCHIVE_DEST_STATUS.TRANSMIT_MODE 確認 ASYNC 生效
  3. 報表/數倉庫:ARCn 模式可接受,但建議升級 LGWR ASYNC 獲得更低延遲
  4. 網絡抖動防護:SYNC 模式必須設置 NET_TIMEOUT(建議 15-30 秒),避免 Primary 長時間掛起
  5. 監控關鍵視圖:
    • V$ARCHIVE_DEST_STATUS:傳輸狀態、模式、錯誤信息
    • V$DATAGUARD_STATS:transport lag、apply lag 核心指標
    • V$REDO_DEST_RESP_HISTOGRAM:SYNC 模式響應時間分佈

七、總結

Redo 傳輸模式的選擇決定了 Data Guard 的「靈魂屬性」:ARCn 選擇了效能與簡單,LGWR SYNC 選擇了數據零丟失的承諾,LGWR ASYNC 則在兩者間尋找平衡。理解 LNSn 架構、SYNC/ASYNC 語義、SRL 角色,是設計符合業務 SLA 的 Data Guard 架構的前提。下一篇將深入解析 Redo Apply 服務端的並行恢復與實時應用機制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved