選取適當的複寫類型

Microsoft SQL Server 提供三種類型的複寫。每種類型的複寫適用於不同的應用程式需求。依據您的應用程式之需要,您可以在拓樸中使用一個或多個類型的複寫:

  • 快照式複寫

  • 交易式複寫

  • 合併式複寫

為了協助您選取適當的複寫類型,本主題提供以下項目的資訊:

  • 複寫案例

    此節簡要描述了複寫的大量常用案例,並提供更詳細描述的連結。

  • 複寫類型

    此節描述了每種類型的複寫所適用的應用程式需求。

  • 在訂閱者端更新資料

    此節描述了適用於要求在「訂閱者」端更新資料之應用程式的選項。

我們建議先閱讀案例描述,找出與您的應用程式需求最符合的案例,然後按一下連結以獲得詳細資訊。如果找不到與您的商務需求相近的案例,或者您需要複寫類型的其他資訊,請閱讀「複寫類型」。如果您的應用程式需要在一個或多個「訂閱者」端更新,請閱讀「在訂閱者端更新資料」以決定要使用的合適技術。

複寫案例

複寫案例可以分成兩個廣泛的類別:將伺服器中的資料複寫至伺服器環境,以及在伺服器與用戶端之間複寫資料。伺服器到伺服器案例則透過使用交易式複寫 (有時用快照式複寫) 進行實作;伺服器與用戶端案例則透過使用合併式複寫進行實作。

伺服器到伺服器案例

資料通常會在伺服器之間複寫,以支援下列應用程式與需求:

狀況

描述

改善延展性和可用性

維護持續更新的資料副本,允許跨越多個伺服器進行讀取活動。維護相同資料的多個副本產生的重複在計劃與未計劃系統維護時是很重要的。如需詳細資訊,請參閱<提升延展性和可用性>。

資料倉儲和報表

資料倉儲與報表伺服器往往使用來自線上交易處理 (OLTP) 伺服器的資料。使用複寫在 OLTP 伺服器與報表和決策支援系統之間移動資料。如需詳細資訊,請參閱<資料倉儲和報告>。

從多個站台整合資料

資料往往是從各個遠端辦公室「積存」,然後在中央辦公室合併。同樣地,也可以將資料複寫至遠端辦公室。如需詳細資訊,請參閱<整合多個站台的資料 (伺服器)>。

整合異質資料

某些應用程式取決於在與 Microsoft SQL Server 之外的資料庫之間傳送的資料。使用複寫整合來自非 SQL Server 資料庫中的資料。如需詳細資訊,請參閱<整合異質資料>。

卸載批次處理

在 OLTP 伺服器上執行批次作業往往需要大量資源。使用複寫將處理卸載至專用的批次處理伺服器。如需詳細資訊,請參閱<卸載批次處理>。

伺服器和用戶端案例

為支援下列應用程式,資料通常要在伺服器與用戶端之間 (包含工作站、膝上型電腦、Tablet 和裝置) 複寫:

狀況

描述

與行動使用者交換資料

許多應用程式需要提供資料給遠端使用者使用,包括業務人員、送貨司機等等。這些應用程式包括客戶關係管理 (CRM)、業務團隊自動化 (SFA) 以及職場戰力自動化 (FFA) 應用程式。如需詳細資訊,請參閱<與行動使用者交換資料>。

消費者零售店面 (POS) 應用程式

POS 應用程式,如結帳終端機和提款機,需要從遠端站台複寫資料至中央站台。如需詳細資訊,請參閱<取用者銷售點 (POS) 應用程式>。

從多個站台整合資料

應用程式經常從多個站台整合資料。例如支援區域分公司的應用程式,可能需要在區域分公司和中央辦公室之間進行單向或雙向資料流動。如需詳細資訊,請參閱<整合多個站台的資料 (用戶端)>。

複寫類型

快照式複寫

快照集處理通常用於為交易式和合併式發行集提供初始資料和資料庫物件集合,但快照式複寫也可自行使用。若下列一或多項敘述為真,則最適合單獨使用快照式複寫:

  • 較少變更資料。

  • 可接受已過時的發行者相關資料副本放置一段時間。

  • 複寫小量資料時。

  • 在短時間內發生大量變更。

資料變更數量可觀但次數不頻繁時,最適合快照式複寫。例如,某個銷售單位維護一個產品價格表,其中所有價格在一年當中會同時更新一至二次,建議您在變更後複寫整個資料的快照集。

交易式複寫

交易式複寫一般用於伺服器對伺服器環境,並適用於下列各案例:

  • 您希望發生累加式更新時,能立即傳播給「訂閱者」。

  • 應用程式在發行者進行變更的時間與變更到達訂閱者的時間需要有低度延遲。

  • 應用程式需要中繼資料狀態的存取權。例如,若資料列變更五次,交易式複寫允許應用程式回應至每個變更 (如引發觸發程序),而非只有回應至資料列的資料變更。

  • 發行者有極大量的插入、更新和刪除活動。

  • 發行者或訂閱者為非 SQL Server 資料庫,如 Oracle。

依預設,交易式發行集的「訂閱者」應視為唯讀,因為變更不會被傳回「發行者」。不過,交易式複寫的確有提供選項讓訂閱者更新。如需詳細資訊,請參閱本主題中的「在訂閱者端更新資料」一節。

合併式複寫

合併式複寫通常會在伺服器至用戶端環境中使用。合併式複寫適合於下列任何情況:

  • 多個訂閱者可能會在不同時間更新相同的資料,並將這些變更傳播到發行者與其他訂閱者。

  • 「訂閱者」需要接收資料、離線變更資料,稍後同步變更「發行者」和其他「訂閱者」。

  • 每個訂閱者需要一個不同的資料分割。

  • 可能會發生衝突,而在發生衝突時,您需要偵測與解決衝突的能力。

  • 應用程式需要淨資料變更,而非對中繼資料狀態的存取。例如,如果資料列在「訂閱者」與「發行者」同步之前,於「訂閱者」端變更了五次,則該資料列在「發行者」端僅變更一次,以反映最終資料變更 (即第五次的值)。

合併式複寫允許各站台自發地工作,然後將更新合併到單一的統一結果。因為是在多個節點更新,所以相同的資料可能已由發行者和多個訂閱者更新。因此,合併更新時可能會發生衝突,而合併式複寫提供數個處理衝突的方法。

在訂閱者端更新資料

下列類型的複寫和複寫選項允許您在「訂閱者」端進行變更,並將所做變更流動到「發行者」:

複寫類型

使用時機...

合併式複寫

  • 存在大量的「訂閱者」。

  • 資料複寫到行動使用者。

  • 複寫資料在「訂閱者」端頻繁更新。

  • 需要進行資料篩選,以便「訂閱者」接受不同的資料分割。

如需詳細資訊,請參閱<合併式複寫概觀>和<合併式複寫的運作方式>。

點對點交易式複寫

  • 複寫用於提升延展性和可用性。

  • 需要最短延遲。

  • 資料未在「訂閱者」中分割。

  • 雖然通常不會發生衝突,但是如果發生的話,您必須偵測出它們。

如需詳細資訊,請參閱<點對點交易式複寫>。

具有可更新訂閱的交易式複寫

  • 存在少量的「訂閱者」。

  • 複寫資料在「訂閱者」端通常處於唯讀狀態。

  • 「訂閱者」、「散發者」和「發行者」在大部份情況下都連接 (用於立即更新訂閱)。

如需詳細資訊,請參閱<交易式複寫的可更新訂閱>。