MicrosoftSQL Server 提供了三種複製類型。 每種複製類型都適合於不同應用程式的要求。 根據應用程式需要,可以在拓撲中使用一種或多種複製類型: 快照複製 事務複製 合併複製 為了幫助您選擇適當的複製類型,此主題提供了有關下列內容的信息: 複製方案 本部分簡要描述了複製的多種常用情況, ...
MicrosoftSQL Server 提供了三種複製類型。 每種複製類型都適合於不同應用程式的要求。 根據應用程式需要,可以在拓撲中使用一種或多種複製類型:
-
快照複製
-
事務複製
-
合併複製
為了幫助您選擇適當的複製類型,此主題提供了有關下列內容的信息:
-
複製方案
本部分簡要描述了複製的多種常用情況,還提供了指向更加詳細描述的鏈接。
-
複製類型
本部分描述了每個複製類型所適合的應用程式要求。
-
在訂閱伺服器上更新數據
本部分描述了需要在訂閱伺服器上更新數據的應用程式的可用選項。
我們建議您先要通讀方案描述,找出與應用程式要求最匹配的方案,然後單擊鏈接查看詳細信息。 如果找不到與業務要求近似匹配的方案,或者希望得到有關複製類型的其他信息,則請閱讀“複製類型”。 如果應用程式需要在一個或多個訂閱伺服器上更新,則請閱讀“在訂閱伺服器中更新數據”,以確定可使用的適當技術。
複製方案可以分為兩大類: 在伺服器到伺服器環境中複製數據和在伺服器與客戶端間複製數據。 伺服器到伺服器方案使用事務複製(有時也可使用快照複製)實現;伺服器和客戶端方案使用合併複製實現。
伺服器到伺服器方案
數據通常在伺服器之間進行複製,以支持下列應用程式和要求:
方案 |
說明 |
---|---|
提高伸縮性和可用性 |
通過維護不斷更新的數據副本,可以將讀取活動擴展到多台伺服器。 執行計劃系統維護和非計劃系統維護期間,應為同一數據維護多個副本以實現數據冗餘,這一點至關重要。 有關詳細信息,請參閱改善伸縮性和可用性。 |
數據倉庫和報表 |
數據倉庫和報表伺服器通常使用聯機事務處理 (OLTP) 伺服器中的數據。 使用複製在 OLTP 伺服器和報表與決策支持系統之間移動數據。 有關詳細信息,請參閱數據倉庫和報告。 |
集成來自多個站點的數據 |
數據通常從各個遠程辦事處“匯入”總部併在總部進行整合。 同樣,數據也可以從總部複製到遠程辦事處。 有關詳細信息,請參閱集成來自多個站點(伺服器)的數據。 |
集成異類數據 |
有些應用程式要依賴於發送至或來自非 MicrosoftSQL Server 的資料庫的數據。 使用複製集成來自非 SQL Server 資料庫的數據。 有關詳細信息,請參閱集成異類數據。 |
卸載批處理 |
批處理操作由於通常會占用過多資源而無法在 OLTP 伺服器上運行。 使用複製將批處理任務卸載到專用批處理伺服器上。 有關詳細信息,請參閱卸載批處理。 |
伺服器和客戶端方案
數據通常在伺服器和客戶端(包括工作站、攜帶型電腦、Tablet 和設置)之間複製,以支持下列應用程式:
方案 |
說明 |
---|---|
與移動用戶交換數據 |
許多應用程式要求數據可用於遠程用戶,包括銷售人員、送貨司機等。 這些應用程式包括客戶關係管理 (CRM) 應用程式、銷售自動化 (SFA) 應用程式和現場自動化 (FFA) 應用程式。 有關詳細信息,請參閱與移動用戶交換數據。 |
消費者銷售點 (POS) 應用程式 |
POS 應用程式(如結算終端和 ATM 機)要求將數據從遠程站點複製到中心站點。 有關詳細信息,請參閱使用者銷售點 (POS) 應用程式。 |
集成來自多個站點的數據 |
應用程式通常集成來自多個站點的數據。 例如,支持區域辦事處的應用程式可能要求數據在區域辦事處和總部之間單向或雙向流動。 有關詳細信息,請參閱集成來自多個站點(客戶端)的數據。 |
快照複製
快照處理通常用於為事務和合併發佈提供初始的數據集和資料庫對象,但快照複製還可為其自身所用。 當符合以下一個或多個條件時,使用快照複製本身是最合適的:
-
很少更改數據。
-
在一段時間內允許具有相對發佈伺服器已過時的數據副本。
-
複製少量數據。
-
在短期內出現大量更改。
在數據更改量很大,但很少發生更改時,快照複製是最合適的。 例如,如果某銷售組織維護一個產品價格列表且這些價格每年要在固定時間進行一兩次完全更新,那麼建議在數據更改後複製完整的數據快照。
事務複製
事務複製通常用於伺服器到伺服器環境中,在以下各種情況下適合採用事務複製:
-
希望發生增量更改時將其傳播到訂閱伺服器。
-
從發佈伺服器上發生更改,至更改到達訂閱伺服器,應用程式需要這兩者之間的滯後時間較短。
-
應用程式需要訪問中間數據狀態。 例如,如果某一行更改了五次,事務複製將允許應用程式響應每次更改(例如,激發觸發器),而不只是響應該行最終的數據更改。
-
發佈伺服器有大量的插入、更新和刪除活動。
-
發佈伺服器或訂閱伺服器不是 SQL Server 資料庫(例如,Oracle)。
預設情況下,事務發佈訂閱伺服器應作只讀處理,因為更改並不傳播回發佈伺服器。 但是,事務複製確實提供了允許在訂閱伺服器上進行更新的選項。 有關詳細信息,請參閱本主題中的“在訂閱伺服器中更新數據”部分。
合併複製
合併複製通常用於伺服器到客戶端的環境中。 合併複製適用於下列各種情況:
-
多個訂閱伺服器可能會在不同時間更新同一數據,並將這些更改傳播到發佈伺服器和其他訂閱伺服器。
-
訂閱伺服器需要接收數據,離線進行更改,併在隨後與發佈伺服器和其他訂閱伺服器同步更改。
-
每個訂閱伺服器都需要不同分區的數據。
-
可能會發生衝突,並且在衝突發生時,您需要具有檢測和解決衝突的能力。
-
應用程式需要最終的數據更改結果,而不是訪問中間數據狀態。 例如,在訂閱伺服器與發佈伺服器同步前,如果訂閱伺服器上的行更改了五次,則該行將只在發佈伺服器上更改一次,以反映最終數據更改(也就是更改為第五個值)。
合併複製允許不同站點自主工作,併在以後將更新合併成一個統一的結果。 由於更新是在多個節點上進行的,同一數據可能由發佈伺服器和多個訂閱伺服器進行了更新。 因此,在合併更新時可能會產生衝突,合併複製提供了多種處理衝突的方法。
下列類型的複製和複製選項允許在訂閱伺服器上進行更改,並使這些更改流向發佈伺服器:
複製類型 |
何時使用... |
---|---|
合併複製 |
|
對等事務複製 |
有關詳細信息,請參閱對等事務複製。 |
帶有更新訂閱的事務複製 |
有關詳細信息,請參閱事務複製的可更新訂閱。 |