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