一: 數據復制角色
復制服務有三個角色,分別是發布服務器,分發服務器和訂閱服務器。他們分別做不同的工作。就像我們日常買書和報紙的概念是一樣的。
發布服務器: 也稱為出版服務器,主要負責數據的發布和出版工作。這個角色就好比我們的出版社或者報社。
分發服務器: 主要負責將發布服務器的內容分發給訂閱者。他是連接發布服務器和訂閱服務器的橋梁。這個角色就好比我們的郵遞員,將書和報紙送到我們的手裡。
訂閱服務器: 主要負責接收發布的內容。這個角色就好比我們自己訂閱書和報紙,是一個訂閱者的角色。
二:數據訂閱模式
數據訂閱的模式有推式訂閱和拉式訂閱兩種。推式訂閱主要是分發服務器將數據推給訂閱服務器。 拉式訂閱是訂閱服務器主動向分發服務器取數據。
這就好比我們自己訂閱雜志和報紙一樣,如果人家送貨上門,這就是推式訂閱,消耗的是分發服務器的資源,也就是消耗送貨人員的資源。如果是拉式訂閱,我們就需要自己到書店去購買,這樣消耗的就是我們自己的資料。消耗的是訂閱服務器的資源,
三:數據發布類型
數據發布類型可發為四種:
快照發布
發布服務器按預定的時間間隔向訂閱服務器發送已發布數據的快照。
當符合以下一個或多個條件時,使用快照復制本身是最合適的:
●很少更改數據。
● 在一段時間內允許具有相對發布服務器已過時的數據副本。
●復制少量數據。
●在短期內出現大量更改
事務發布
在訂閱服務器收到已發布數據的初始快照後,發布服務器將事務流式傳輸到訂閱服務器。
具有可更新訂閱的事務發布
在 SQL Server 訂閱服務器收到已發布數據的初始快照後,發布服務器將事務流式傳輸到訂閱服務器。來自訂閱服務器的事務被應用於發布服務器。
上述的這兩種發布方式可以歸結為一種發布方式。不同之處在:事務發布類型下,在訂閱服務器上發生的任何改變將不會應用到發布服務器上;
而“具有可更新訂閱的事務發布”類型,訂閱服務器上的任何操作將會同步到發布服務器上。
事務性復制通常用於服務器到服務器環境中,在以下各種情況下適合采用事務性復制:
●希望發生增量更改時將其傳播到訂閱服務器。
●從發布服務器上發生更改,至更改到達訂閱服務器,應用程序需要這兩者之間的滯後時間較短。
●應用程序需要訪問中間數據狀態。例如,如果某一行更改了五次,事務性復制將允許應用程序響應每次更改(例如,激發觸發器),而不只是響應該行最終的數據更改。
●發布服務器有大量的插入、更新和刪除活動。
合並發布
在訂閱服務器收到已發布數據的初始快照後,發布服務器和訂閱服務器可以獨立更新已發布數據。更改會定期合並。Microsoft SQL Server Compact Edition 只能訂閱合並發布。
合並復制通常用於服務器到客戶端的環境中。合並復制適用於下列各種情況:
● 多個訂閱服務器可能會在不同時間更新同一數據,並將其更改傳播到發布服務器和其他訂閱服務器。
● 訂閱服務器需要接收數據,脫機更改數據,並在以後與發布服務器和其他訂閱服務器同步更改。
●每個訂閱服務器都需要不同的數據分區。
●可能會發生沖突,並且在沖突發生時,您需要具有檢測和解決沖突的能力。
●應用程序需要最終的數據更改結果,而不是訪問中間數據狀態。例如,如果在訂閱服務器與發布服務器進行同步之前,訂閱服務器上的行更改了五次,則該行在發布服務器上僅更改一次來反映最終數據更改(也就是第五次更改的值)。