| 維度 | Oracle Data Guard (Standby) | SQL Server Database Mirroring |
|---|---|---|
| 基本單位 | **整個資料庫** (單 Instance 單 Database) | **單一資料庫** (Instance 可含多 DB,僅鏡像指定 DB) |
| 備份範圍 | 完整資料庫快照:資料、索引、結構、權限、Job、排程、密碼檔、SPFILE | 僅鏡像資料庫本身;Agent Job、Logins、Linked Server、SSIS 套件需手動同步 |
| 最小伺服器數 | 2 (Primary + Standby),可加 Far Sync、Cascade | 2 (Principal + Mirror),高可用模式需第 3 台 Witness |
| 角色切換 | Switchover (計劃) / Failover (非計劃),支援 Active Data Guard 唯讀開放 | Failover (自動/手動),Mirror 不可讀 (需建立 Snapshot 供報表) |
| SQL Server 模式 | 同步性 | 自動容錯移轉 | Witness | Oracle 對應 |
|---|---|---|---|---|
| High Safety (Full Sync) | 同步提交 | 手動 | 不需要 | Data Guard **Maximum Availability** (SYNC + AFFIRM,手動切換) |
| High Safety with Auto Failover | 同步提交 | **自動** (Quorum 2:1) | **必須** | Data Guard **Fast-Start Failover** (FSFO) + Observer (相當 Witness) |
| High Performance (Async) | 非同步 | 手動 (強制服務) | 不需要 | Data Guard **Maximum Performance** (ASYNC/NOAFFIRM) |
mirroring_failover_lsn (類似 SCN) 追蹤進度。| SQL Server | Oracle 對應 | 說明 |
|---|---|---|
| Full Recovery | Archivelog Mode | 完整記錄所有交易,支援時間點恢復、鏡像/Standby 同步 |
| Simple Recovery | Noarchivelog Mode | 截斷 Log,不可用於鏡像/Standby (會中斷鏈) |
| Bulk Logged | Direct Path / NOLOGGING 操作 | 大量載入最小化記錄,Standby 需補檔或重建 |
**結論**:Mirroring 強制 Principal 必須為 Full Recovery,同理 Data Guard 強制 Primary 為 Archivelog。
Failover Partner=mirror_host,驅動自動重導。若用 Snapshot 供報表,需手動切換連線目標。FAL_CLIENT/FAL_SERVER、LOG_ARCHIVE_DEST_n 設定;用戶端用 DESCRIPTION_LIST (FAILOVER=ON) 或 SCAN VIP (RAC) 實現透明切換。Active Data Guard 允許 Standby 直接服務唯讀查詢,無需 Snapshot。| 功能 | SQL Server 版本需求 | Oracle 版本需求 |
|---|---|---|
| 基本 Mirroring / Data Guard | Standard Edition 起 | Enterprise Edition (SE2 12c+ 受限) |
| 自動容錯移轉 (Witness/Observer) | Standard/Enterprise 均支援 | Enterprise + Fast-Start Failover |
| 可讀取 Standby / Snapshot | Enterprise (建立 Database Snapshot) | Active Data Guard (額外授權) |
| 壓縮傳輸 | 2008+ 全版本 | 11gR2+ (Enterprise) |
| 場景 | Oracle Data Guard | SQL Server Mirroring |
|---|---|---|
| 新增 Standby/Mirror | RMAN Duplicate from Active Database / 物理備份恢復 | 備份 Principal → RESTORE WITH NORECOVERY → 設定 Partner |
| 延遲監控 | V$DATAGUARD_STATS, V$ARCHIVE_DEST_STATUS, APPLY_LAG, TRANSPORT_LAG | sys.database_mirroring DMV: mirroring_lag, redo_queue |
| 計劃性切換 | ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY/PRIMARY | ALTER DATABASE SET PARTNER FAILOVER (手動) / 自動 |
| 非計劃切換 | ALTER DATABASE ACTIVATE STANDBY DATABASE (Failover) / FSFO 自動 | 自動 (High Safety + Witness) / 強制服務 ALTER DATABASE SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS |
| 報表卸載 | Active Data Guard 直接開放 Standby 唯讀 (需授權) | 建立 Database Snapshot 供報表,定期重建 |
理解彼此術語映射 (Partner=Standby, Witness=Observer, Failover Partner=FAL/SCAN, Snapshot=Active DG) 能加速跨平台技術轉移與溝通。