1. 程式人生 > >SQL Server 複製 訂閱與釋出

SQL Server 複製 訂閱與釋出

     接觸 SQL Server 很長時間了,做了很多專案,但是對sql Server的訂閱和釋出知之不多,現在把訂閱與釋出的相關知識總結起來,以供大家拍磚。以下內容參考webcast

  SQL Server 的複製技術 包括 訂閱和釋出

  複製的組成部分:釋出伺服器(出版社),分發伺服器(郵局),訂閱伺服器(讀者,接受者)

  釋出伺服器的作用:維護源資料庫,由這些資料庫出版的資料能夠為複製所利用,檢測並將所有出版資料的更改傳送到分發伺服器

  分發伺服器的作用:分發伺服器包括分發資料庫,並且儲存元資料、歷史資料和事務。根據所實施複製型別的不同,分發伺服器所扮演的角色也各異,一般情況下與合併複製相比較,分發伺服器對於快照複製和事務複製的角色更重要。

  訂閱伺服器的作用:保持資料的副本,並接收對所修改出版的更改。取決於所實現的複製選項,可能還允許更新者更新資料,並將其複製回伺服器或者其它訂閱者。

  複製的模式:推模式(Push),拉模式(Pull) 區別:分發代理程式在分發伺服器上執行,即為推模式,在訂閱伺服器執行,即為拉模式。

  複製的型別:快照複製,事務複製、合併複製。允許訂閱更新的快照複製。允許訂閱更新的事務複製。

  詳細分類:帶立即更新的快照複製,帶立即更新的事務複製,這兩種都是採用的分散式的事務處理原理。快照複製是事務複製的基礎,快照複製傳輸的包括表結構等資訊。在訂閱伺服器上建立,然後是分發代理程式,傳輸資料。

  出版物:釋出伺服器釋出的一個整體。一個出版物能夠包括一個或多個文章,文章可以是資料或資料庫物件。因為出版中的所有文章能能夠在相同時刻保持同步。出版物是訂閱的基礎,對出版物的訂閱包括出版物中的所有文章,每個使用者資料庫中能夠構建立一個或多個出版物。

  文章:出版物的一部分,表或資料庫的物件(儲存過程、檢視、使用者自定義函式)的全部或者部分篩選分割槽資料。

  複製代理:快照代理(snapshot agent) 分散式代理(Distribution agent) 日誌讀代理(log Reader agent) 合併代理(Merge agent) 佇列讀代理(Queue Reader Agent)

  快照複製的工作機制:

    1、釋出伺服器,將要釋出的資料庫整個做一個快照,

    2、訂閱伺服器的快照代理程式把釋出伺服器的快照讀取過來,放在本地的快照資料夾內

    3、訂閱伺服器的釋出代理程式把快照資料夾中的快照發布到訂閱伺服器上。歷史記錄和快照記錄在分發伺服器中。

  事務複製的基本原理:

    1、初始資料和架構(通過快照複製來完成),從這裡可以體現出來快照複製,是所有複製的基礎 。快照複製在訂閱伺服器上建立了訂閱資料庫。

    2、釋出伺服器的資料修改後,寫事務日誌,

    3、分發伺服器的日誌讀取代理讀取發生改變的資料的事務日誌,把這些事務日誌儲存在釋出伺服器的釋出資料庫中。

    4、分發伺服器的分發代理程式 將分發資料庫中的事務日誌分發到各個訂閱伺服器上,然後把歷史記錄和錯誤記錄在分發資料庫中。