SQL-Server 複寫與鏡像 (Replication & Mirroring)

2020-12-30

筆記 SQL Server 複寫與鏡像功能的相關筆記 📋
持續編輯中 🧙‍♂️

SQL Server Logo

複寫 Replication

解決分散式資料庫需求,能夠將資料庫內容複寫至多個地點,且具有將不同地點資料庫進行內容合併的彈性。

Technical Term

Article 發行項

由發行者所發行的資料庫物件,是複寫中的基本單位,作為發行集 (Publication) 的內容。

Publication 發行集

發行項的集合(Set of Articles),訂閱者向發行者是以發行集為單位進行訂閱。發行集來自單一資料庫、單一資料庫可以擁有多個發行集。

Publisher 發行者

負責提供發行集 (Publication) 給其他的 SQL Server 伺服器。

Subscriber 訂閱者

向發行者訂閱發行集,可以是被動的等待發送訂閱 (Push),或者主動地提出提取訂閱 (Pull)。

Distributor 散發者

負責將發行者 (Publisher) 的發行內容傳輸到訂閱者所在的資料庫伺服器,散發者會利用系統資料庫管理所要複寫的內容。

Push Subscription 發送訂閱

由發行者提供發行集至訂閱者(經由散發者傳輸)。

Pull Subscription 提取訂閱

由訂閱者主動向發行者要求發行者進行更新。

複寫類型

Snapshot Replication 快照式

由訂閱者主動向發行者要求發行者進行更新。

Transactional Replication 交易式複寫

  • Updatable Subscription
    • Immediate Updating
    • Queued Updating
  • Peer-to-Peer Transactional Replication

Merge Replication 合併式複寫

Agent 代理程式物件

Snapshot Agent
Distribution Agent
Log Reader Agent
Merge Agent
Queue Reader Agent

鏡像 Mirroring

主體資料庫 (Principal) 內容完整地備份在鏡像資料庫 (Mirror),並且藉由鏡像技術動態且即時地保持一致。

鏡像模式

包含 High-Performance 及 High-Safety Mode

High-Performance Mode

將交易紀錄傳送給鏡像伺服器即認定完成。

High-Safety Mode

將交易紀路傳送給鏡像伺服器後,必須等鏡像伺服器進行認可 (Commit) 才完成鏡像作業。

Non-Failover Mode

無法主動進行容錯移轉。

Failover Mode

藉由第三方見證伺服器 (Witness),來判斷是否進行容錯移轉至鏡像伺服器,以保持高可用性。