前言
企業級資料庫高可用與災難恢復通常依賴三大支柱:Oracle Data Guard (實體待機資料庫)、高級複寫 (邏輯複寫)、Real Application Clusters (叢集)。本文系統比較三者架構、模式、優缺點與適用場景。
一、Oracle Data Guard:實體級災難防護
1. 核心架構
由一個主資料庫 + 一或多個備用資料庫組成,稱為「站點」。主資料庫正常服務,修改以歸檔日誌形式經日誌傳輸服務自動同步至備用站點。站點間通常異地分佈,透過網路連接,可抵禦火災、地震等區域性災害。

2. 關鍵功能
- 角色切換:主/備角色互換,保證資料零損失 (視模式),避免恢復期間服務中斷。
- 分散式組態增強可用性:地理分散部署。
- 主備資料同步:歸檔日誌自動傳輸應用。
- 防物理損壞傳播:主庫塊損壞不會透過日誌傳遞至備庫。
3. 主資料庫四大保護模式
| 模式 | 資料損失 | 效能影響 | 網路中斷行為 |
| Guaranteed Protection (最大保護) | 零 | 最大 | 中斷主實例,拒絕分歧 |
| Instant Protection (即時保護) | 零 | 較小 | 允許分歧,連線恢復後解決 |
| Rapid Protection (快速保護) | 可能 (未歸檔重做) | 最小 | 允許分歧 |
| Delayed Protection (延遲保護) | 可能 (未歸檔重做) | 最小 | 允許分歧 |

4. 備用資料庫兩大工作模式
- Managed Recovery Mode:自動應用歸檔日誌,最大化資料保護 (預設生產模式)。
- Read-Only Mode:僅供查詢,不應用日誌;切回 Mount 模式可繼續接收日誌。
5. Switchover vs Failover
| 特性 | Switchover (計劃性切換) | Failover (故障切換) |
| 觸發原因 | 計劃維護、升級 | 主庫故障、災難 |
| 資料損失 | 零 (即使備庫未應用日誌) | 視模式,可能損失未傳輸日誌 |
| 實例重啟 | 無需重啟,近乎無縫 | 原主庫及其他備庫需重啟 |
| 角色可逆 | 可隨時切回 | 備庫變主庫後失去備庫能力,不可逆 |
6. 切換資料損失判斷
Guaranteed/Instant 模式下切換零損失 (所有歸檔已應用);Rapid/Delayed 或歸檔未完全應用時,損失量取決於主庫歸檔路徑屬性與備庫應用進度。
二、Oracle 高級複寫:邏輯級資料分發
1. 基本架構
以物化視圖 (舊稱快照) 為核心,支援三類:
- 唯讀物化視圖:單向查詢離線/分散報表,不回寫。

- 可更新物化視圖:允許本地 DML,變更最終傳播回主站點。

- 可寫物化視圖:本地修改不回傳,僅供本地應用。
2. 三種複寫模式選擇
- 同步複寫:強一致性,任何節點更新即時反映所有節點,適合即時性極高業務 (兩階段提交,效能較差)。
- 異步複寫:最終一致性,變更經佇列延遲傳播 (秒~天),最常用,網路容錯好。
- 程序式複寫:批量業務用單一預存程序呼叫替代逐列複寫,減少網路往返。
三、Oracle9i Real Application Clusters (RAC):叢集級高可用與擴展
1. 體系架構
多節點同時存取共享儲存上的單一資料庫。核心組件:
- Cluster Manager (節點心跳、成員管理)
- Global Cache Service (GCS) / Global Enqueue Service (GES) — Cache Fusion 核心,跨節點緩存塊傳輸與鎖協調
- Cluster Interconnect (高速私有網路,節點間通訊)
- Shared Disk Subsystem (共享儲存)

2. 核心特點
- 近線性擴展:新增節點無需重新分佈資料或改寫應用,透明利用新資源 (官方宣稱 4 節點以上仍線性)。
- 高相容性:支援 DSS、OLTP、混合負載,大事務可拆分至多節點並行。
- 快速擴容:熱插拔節點與磁碟。
- Cache Fusion 亮點:資料塊在節點間緩存直接傳輸,避免磁碟 I/O,大幅提升叢集擴展性。
3. 硬體成本優勢
以多台廉價中小型伺服器替代大型機,隨 CPU 需求擴展,硬體成本最高可降 80%。Oracle 佔 Unix 開放系統 66%+ 市佔率,引領標準。
4. 高可用新標準
內建災難防護、快速故障恢復、人為錯誤透明恢復 (Flashback 技術前身),將計劃外停機時間降至最低。
總結與選型建議
| 技術 | 核心定位 | 資料一致性 | 典型場景 |
| Data Guard | 異地災備、高可用 | 實體級 (塊級同步) | 核心業務異地容災、報表卸載 |
| 高級複寫 | 資料分發、異構/邏輯整合 | 邏輯級 (行級/事務級) | 多地區業務彙總、行動離線、報表分流 |
| RAC | 單資料中心高可用、擴展 | 單一資料庫實例 (緩存融合) | 核心交易系統高併發、高可用、線性擴展 |
三者非互斥,常組合使用:RAC 解決單機房高可用,Data Guard 解決跨機房災備,複寫解決異構/邏輯分發。
- 上一篇文章: Oracle 高級複寫 (Advanced Replication) 完整部署指南:多站點彙總至總部
- 下一篇文章: Oracle 分頁查詢與外連接優化 NOT IN 的實戰技巧
Copyright ©
程式碼之家 All Rights Reserved