深入淺出SQL Server Replication第一篇:走近Replication(上)

深入淺出SQL Server Replication第一篇:走近Replication(上)

對於很多的SQL Server DBA而言,Replication不是什麼新鮮的事物了,也是大家常常說的“複製”,很多的朋友已經在項目中使用。正如其他技術一樣:有人可以使用的好,有人會抱怨技術不行。
我們AgileSharp團隊也經過了不少高可用的案例, Replication還是非常有價值的。因此,我們整理了很多的資源,我們決定發佈一系列的Replication文章,一是爲了幫助大家瞭解Replication,另外也是爲以後的講述高可用做個鋪墊。
另外,有關高可用的一些問題,請參看這篇文章談談SQL Server高可用的常見問題

理解出版業刊物發佈

提到Replication,說的通俗一點就是:傳遞數據,同步數據。既然是數據的同步和傳遞,那麼就可以實時的進行,或者隔斷時間進行。既然是同步,那麼就可能存在多個數據源,而且數據源的位置可以是任意的,或許在同一臺服務器上面,或者處於不同的服務器,甚至網絡。

爲了使得更好的討論Replication,勢必要討論它涉及到的幾個重要的組成部分:Distributor(分發服務器),Publisher(發佈服務器),Subscriber(訂閱服務器),Publication(發佈),Article(項目),Subscriptions(訂閱)。爲了使得大家更好的明白這些組成部分,首先,我建議大家在頭腦中把Replication同步數據的過程和出版社發送刊物給讀者結合起來思考。下面我們首先看看三個重要的組件:發佈者(Publisher),分發者(Distributor),訂閱者(Subscriber)。然後在一一的展開。如圖:

下面我們就藉助上面的圖和出版社發行刊物的例子來說明Replication。
 
我們首先看看我們最熟悉的發行訂閱刊物的例子。
 
整個步驟是這樣的:
1.    讀者(Subscribers)去出版社(Publisher),要求訂閱書刊。
2.    既然有很多的數據,但是讀者在出版社中訂閱了《AgileSharp技術週刊》雜誌(稱之爲Subscriptions)。
3.    出版社同意讀者的要求,並且把這個讀者加入到他們的訂閱者清單中。
4.    刊物出版了,出版社通知下面的各級的代理商(Distributor)新書出來了。
5.    各級代理商派人去把新書和訂閱者的名單拿來。
6.    代理商每次把新書銷售都做一個記錄,方便之後結算等
7.    代理商然後把新書快遞到每個讀者手裏。
 
再談Replication組成部分

Replication使用出版業術語表示Replication拓撲中的組件,其中有發佈服務器、分發服務器、訂閱服務器、發佈、項目和訂閱:
·雜誌出版商(發佈服務器)生產一種或多種刊物(發佈)
·刊物(發佈)包含文章(項目)
·出版商(發佈服務器)可以直接發行(分發)雜誌,也可以使用發行商(分發服務器)
·訂閱者(訂閱服務器)接收訂閱的刊物(發佈)


雖然雜誌術語有助於理解Replication,但重要的是要注意到 SQL Server Replication包含有這套術語未予以表述的功能,尤其是訂閱服務器進行更新的功能以及發佈服務器將增量更改發送到發佈中的項目的功能。
Replication拓撲”定義了服務器和數據副本間的關係,並闡明瞭決定數據如何在服務器之間流動的邏輯。Replication進程(稱爲“代理”)負責在發佈服務器和訂閱服務器之間複製和移動數據。

下圖爲Replication中所涉及的組件和進程的概述。





發佈服務器

發佈服務器是一種數據庫實例,它通過複製向其他位置提供數據。發佈服務器可以有一個或多個發佈,每個發佈定義一組要複製的具有邏輯關係的對象和數據。

分發服務器

分發服務器也是一種數據庫實例,它起着存儲區的作用,用於複製與一個或多個發佈服務器相關聯的特定數據。每個發佈服務器都與分發服務器中的單個數據庫(稱作分發數據庫)相關聯。分發數據庫存儲複製狀態數據和有關發佈的元數據,並且在某些情況下爲從發佈服務器向訂閱服務器移動的數據起着排隊的作用。在很多情況下,一個數據庫服務器實例充當發佈服務器和分發服務器兩個角色。這稱爲“本地分發服務器”。
當發佈服務器和分發服務器按各自的數據庫服務器實例配置時,把分發服務器稱爲“遠程分發服務器”。

訂閱服務器

訂閱服務器是接收復制數據的數據庫實例。訂閱服務器可以接收來自多個發佈服務器和發佈的數據。根據所選的複製類型,訂閱服務器還可以將數據更改傳遞迴發佈服務器或者將數據重新發布到其他訂閱服務器。

項目

項目用於標識發佈中包含的數據庫對象。一次發佈可以包含不同類型的項目,包括表、視圖、存儲過程和其他對象。當把表作爲項目發佈時,可以用篩選器限制發送到訂閱服務器的數據的列和行。

發佈

發佈是一個數據庫中的一個或多個項目的集合。將多個項目分組成一個發佈,使得更便於指定一組作爲一個單元複製的、具有邏輯關係的數據庫對象和數據。

訂閱

訂閱是把發佈副本傳遞到訂閱服務器的請求。訂閱定義將接收的發佈和接收的時間、地點。有兩種類型的訂閱:推送訂閱和請求訂閱,我們之前的那個出版社的例子就是推送訂閱,即,Push。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章