【轉】sql server 訂閱發布、快照發布(一)

來源:互聯網
上載者:User

標籤:count   資訊   出版物   跟蹤   view   iss   lis   狀態   int   

原文連結:11646023SQL SERVER 2012 使用訂閱發布同步資料庫(一)2013年09月16日 16:51:00閱讀數:6517
企業做大了,就會有分公司。分公司與總公司之間既統一又獨立。這就是業務,技術服務於業務,那麼擺在我們面前的問題是如何讓資料既統一又獨立?其實SQLServer已經為我們提供了很好的解決方案:發布、訂閱。
開啟SQL Server2012的物件總管我們可以看到裡面有一個”複製“節點。(圖1)

先來簡單瞭解下複製的概念:

複製是將資料或資料庫物件從一個資料庫複寫和分發到另外一個資料庫,並進行資料同步,從而使來源資料庫和目標資料庫保持一致。使用複製,可以在區域網路和廣域網路、撥號連線、無線串連和Internet上將資料分發到不同位置以及分發給遠程或移動使用者。

複製由發行伺服器、散發者、訂閱服伺服器組成:

發行伺服器:資料的來原始伺服器,維護來源資料,決定哪些資料將被分發,檢測哪些資料發生了修改,並將這些資訊提交給散發者。

散發者:散發者負責把從發行伺服器拿來的資料傳送至訂閱伺服器。

訂閱伺服器:訂閱伺服器就是發行伺服器資料的副本,接收維護資料。

點開複製節點我們看到其下面的兩個自節點:“本地發布”、“本機訂閱”(圖2)

舉個經典的例子解釋下發布、訂閱:

發行伺服器類似於報社,報社提供報刊的內容並印刷,是資料來源;散發者相當於郵局,他將各報社的報刊送(分發)到訂戶手中;訂閱伺服器相當於訂戶,從郵局那裡收到報刊。

發行伺服器通過複製向其他位置提供資料,散發者起著儲存區的作用,用於複製與一個或多個發行伺服器相關聯的特定資料。每個發行伺服器都與散發者上的單個資料庫(稱作散發資料庫)相關聯。散發資料庫儲存複製狀態資料和有關發布的中繼資料,並且在某些情況下為從發行伺服器向訂閱伺服器移動的資料起著排隊的作用。在很多情況下,一個資料庫伺服器執行個體充當發行伺服器和散發者兩個角色。這稱為“本機散發者”。訂閱伺服器是接收複製資料的資料庫執行個體。一個訂閱伺服器可以從多個發行伺服器接收資料。

好了先消化一下理論,下面我們建立一個發行伺服器:

在“本地發布”節點上右擊->建立發布由於我沒有安裝複製組件所以出了點兒意外(圖3)

重新運行SQL Server2012安裝嚮導,選擇SQL Server複製功能(圖4)

下一步->下一步->直到完成(圖5)

這次再點擊“建立發布”呵呵,介面不一樣了(圖6)

點擊下一步(圖7)

我們先實驗一下“本機散發者”模式直接點擊下一步,由於我之前沒有啟動SQL Server代理所以又出了點兒小意外(圖8)

微軟已經解釋的很清楚了,直接點擊下一步(圖9)

 

到了這一步是不是感到有些迷惑?好了我們先消化幾個概念:

推訂閱:推訂閱是指由發行伺服器將所有發生修改過的資料複製給訂閱者,推薦使用推訂閱。    拉訂閱:拉訂閱是指訂閱伺服器在經過一段時間就會向發行伺服器要求複製出版資料庫發生的變化的資料。    發布,分發,訂閱可以部署在獨立的伺服器上面也可以部署在一台sql server 上面,分開部署可以提高效能。

點擊下一步,由於我沒有建立自己的資料庫所以又出了點兒小意外(圖10)

好了會過頭來吧資料庫補上(圖11)

這次介面就不一樣了(圖12)

點擊下一步(圖13)

微軟的發布類型說明似乎不太好理解:

  (1)快照發布    快照發布指在某一時刻給出版資料庫中的出版資料照相,然後將資料複製到訂閱者伺服器。快照式複寫實現較為簡單,其所複製的只是某一時刻資料庫的瞬間資料,快照式複寫是將整個出版物傳送給訂閱者,就是在某一時刻將出版資料進行一次“照相”,產生一個描述出版資料庫中資料的目前狀態的一個檔案,然後在相應的時間將其複製到訂閱的資料庫上,快照式複寫並不是不停的監視出版資料庫中發生的變化情況,它是對出版資料庫進行一次掃描,把所有出版資料中的資料從來源資料庫送至目標資料庫,而不僅僅是變化的資料。如果資料量很大,那麼要複製的資料就很多。因此對網路資源要求很高,不僅要有較快的傳輸速度,而且要保證傳輸的可靠性。快照式複寫是最為簡單的一種複製類型,能夠在出版者和訂閱者之間保證資料的一致性。快照式複寫通常使用在以下場合:在一定時間內出現大量的更改的操作,但資料總量不大,變化周期較長。

(2)事務發布    快照發布是將整個資料集發送給訂閱伺服器,由於體積大而造成複製周期較長,會形成複製滯後問題。那麼事務複製使用交易記錄來產生將複製到訂閱伺服器的事務,因為它只複製事務也就是變化,所以滯後也比快照式複寫低得多。

(3)合并發布   合并發布是為移動使用者設計的,可以在發行伺服器或是訂閱伺服器處執行修改,在合并代理運行時,這些修改將同步,多用於發行伺服器與訂閱服務都修改資料的情況下。工作原理如下:在要複製的每個表上實現觸發器,並使用包含GUID列唯一標識要複製的表中的每一行。對其中的任何一個表進行修改時,都會將更改記錄到一個資料表中,在合并代理運行時,它收集資料表中的GUID,這些GUID指出了在發行伺服器和訂閱伺服器處修改過的行。對於只在發行伺服器或是訂閱端修改的資料則直接進行相應操作,如INSERT,UPDATE,DELETE,如果雙方都有GUID則按照使用者指定的方式解決衝突,預設發行伺服器優先。

我們先選擇最簡單的發布模式(快照發布),點擊下一步,由於我沒有在Publish資料庫中建立任何資料表所以又出了點兒意外(圖14)

建立Account資料表(圖15)

繼續我們的發布之旅(圖16)

要發布的對象已經劃分的很詳細了,從資料表到資料表的每一個欄位,項目屬性也非常詳細(圖17)

點擊下一步還有更加令人驚喜的篩選器(圖18)

微軟做事總是很成熟,我們能想到的他都想到了。點擊下一步(圖19)

快照代理,它產生架構,資料以及跟蹤複製過程所需的資料;

欣賞一下快照代理的核心介面(圖20)

設定賬戶(圖21)

為發布起個名字吧(圖22)

總算可以點完成了,可惜又出了點兒小意外(圖23)

 

用以下代碼搞定:

[sql] view plain copy 
  1. sp_configure ‘show advanced options‘, 1;    
  2. GO    
  3. RECONFIGURE;    
  4. GO    
  5. sp_configure ‘Agent XPs‘, 1;    
  6. GO    
  7. RECONFIGURE    
  8. GO    
大功告成(圖24)

【轉】sql server 訂閱發布、快照發布(一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.