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

SQL Server 與 Oracle 資料庫鏡像/備援架構深度對比

     編輯:關於SqlServer

核心架構差異

維度SQL ServerOracle
基本單位資料庫層級 (一個實例含多個 DB)資料庫層級 (單實例單資料庫,RAC 除外)
鏡像/備援對象單一使用者資料庫 (不含 Agent 作業、登入、連結伺服器等實例級物件)整個資料庫 (含所有結構、使用者、排程等)
最少伺服器數2 (高效能/高保護) 或 3 (高可用性需見證伺服器)2 (Primary + Standby)
同步模式高可用性(同步+自動)、高保護(同步+手動)、高效能(非同步)最大保護/可用性(同步)、最大效能(非同步)
見證/仲裁角色見證伺服器 (Witness) 參與 Quorum 投票,僅高可用性模式需求Fast-Start Failover 觀察者 (Observer) 選用,Data Guard Broker 管理

記錄傳輸與應用機制

Oracle Redo Log 傳輸

  • 交易提交時 Redo Log Buffer 寫入線上 Redo Log 檔案 (LGWR)。
  • Data Guard 將已歸檔 Redo Log (Archived Redo Log) 傳輸至 Standby,由 MRP (Managed Recovery Process) 應用。
  • Standby 可開啟唯讀 (Active Data Guard) 供查詢卸載。

SQL Server 交易記錄強化與傳送

  • 交易提交前,Log Buffer **強制寫入磁碟** (Hardening) 才算持久。
  • 隨後將記錄區塊 (Log Block) 發送至鏡像夥伴,鏡像端接收→緩存→再次硬化→回覆 ACK (同步模式)。
  • 鏡像資料庫處於 `RESTORING` 狀態,**不可直接查詢**;需建立**資料庫快照**供報表存取 (Enterprise/Developer 版)。

故障移轉與一致性保證

  • Oracle:SCN (System Change Number) 全域遞增,Standby 依 SCN 推進,故障移轉後以 Redo 向前滾動 + 向後回滾 保證一致性。
  • SQL Server:`mirroring_failover_lsn` (類 LSN) 標記同步點。主體與鏡像**各自獨立交易**,非分散式交易 (不等待遠端提交),效能優於同步雙階段提交。

復原模式對應關係

SQL ServerOracle 對應鏡像需求
完整 (FULL)歸檔模式 (ARCHIVELOG)必須:否則記錄截斷導致鏡像中斷
大量記錄 (BULK_LOGGED)直接路徑載入 / NOLOGGING 操作不支援鏡像 (最小記錄破壞順序)
簡單 (SIMPLE)非歸檔模式 (NOARCHIVELOG)不支援鏡像 (Checkpoint 截斷記錄)

版本與授權限制

  • SQL Server 鏡像:Standard 版支援高保護/高效能;**自動容錯移轉 (高可用性) 需 Enterprise 版**。
  • 資料庫快照 (供鏡像查詢):**僅 Enterprise/Developer 版**。
  • Witness 可用任何版本 (含 Express)。
  • Oracle Data Guard:Enterprise 版標配;Active Data Guard (即時唯讀) 需額外授權。

實作建議

  1. SQL Server 部署鏡像:完整復原模式 + 見證伺服器 (高可用) + 快照 (報表卸載)。
  2. Oracle 部署 Data Guard:歸檔模式 + Standby Redo Logs + Data Guard Broker 統一管理。
  3. 跨平台同步:考慮 CDC (Change Data Capture) + 訊息佇列 (Kafka/RabbitMQ) + 異構複寫工具 (GoldenGate, Attunity, SSIS)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved