| 維度 | SQL Server Database Mirroring | Oracle Data Guard |
|---|---|---|
| 鏡像/備用資料庫本質 | 單一使用者資料庫的副本(不含 Agent 作業、登入、連結伺服器等實例層級物件) | 整個資料庫的實體備份,包含所有結構、資料、控制檔、參數檔 |
| 實例關係 | 一個執行個體可裝載多資料庫,鏡像針對單一資料庫 | 單一資料庫對應單一執行個體 (非 RAC) |
| 最少伺服器數 | 2 (高效能/高安全) 或 3 (高可用性需見證伺服器) | 2 (Primary + Standby) |
| 同步模式 | 高可用性、高安全性、高效能 | Maximum Availability、Maximum Protection、Maximum Performance |
| 自動容錯移轉 | 僅高可用性模式 + 見證伺服器支援 | Maximum Availability/Protection + Fast-Start Failover (FSFO) + Observer |
| 記錄傳輸單位 | 記錄區塊,經硬化後傳送 | Redo Log (Archived/Standby Redo Log) |
| 一致性機制 | LSN (Log Sequence Number) + `mirroring_failover_lsn` | SCN (System Change Number) |
| 復原模式要求 | 必須為 FULL (BULK_LOGGED 可能中斷鏡像) | 必須為 ARCHIVELOG 模式 |
SQL Server:交易提交 → 記錄寫入記憶體 → **硬化到主庫 LDF** → 發送記錄區塊到鏡像 → 鏡像寫入記憶體 → **硬化到鏡像 LDF** → (同步模式) 回覆主庫 → 主庫完成提交。
Oracle:交易提交 → Redo 寫入 Log Buffer → **LGWR 寫入 Online Redo Log** → (同步/非同步) 傳送到 Standby → Standby RFS 寫入 Standby Redo Log → **Apply (MRP)** 套用到資料檔。
關鍵差異:SQL Server 採**雙重硬化**(主+鏡像皆硬化才算同步完成),Oracle 主庫硬化 Online Redo Log 即視為提交完成,Standby 套用可非同步。
| 功能 | SQL Server Standard | SQL Server Enterprise | Oracle SE2 | Oracle EE |
|---|---|---|---|---|
| 鏡像/資料防護 | 支援 (僅高安全/高效能) | 全模式支援 | Data Guard 不支援 (需 EE) | 全模式支援 |
| 自動容錯移轉 | 不支援 | 支援 (高可用性模式) | N/A | 支援 (FSFO) |
| 可讀次要複本 | 不支援 (需快照隔離) | 支援 (資料庫快照) | N/A | 支援 (Active Data Guard - 額外授權) |
雖同屬「高可用/災難恢復」技術,但 SQL Server 鏡像**資料庫級、同步雙硬化、見證仲裁**;Oracle Data Guard **實例級、Redo 傳輸+套用分離、Observer 仲裁**。選型時須依據 **RPO/RTO、版本授權、團隊技能、跨平台需求** 綜合評估。