MSSqlServer 發布/訂閱配置(主從同步)


背景:

1、單個獨立數據庫的吞吐量是有瓶頸的,那么如何解決這個瓶頸?

2、服務器直接數據如何復制、並具備一致性、可擴展性?

 

資源: 

官方資源:https://technet.microsoft.com/zh-cn/library/ms151198(v=sql.100).aspx

 

Quick Start 實戰

微軟官方教程查找:官方資源——復制——開發——設計和實現教程。里面還會涉及一些必要的安全設置。本文只對核心內容實操圖文,暫且跳過。

配置分發服務器(發布服務器、源)

1、打開SQL Server服務器下的 【復制】 ——右擊【本地發布】節點,選擇【新建發布】

 

2、如果第一次設置會彈出【發布向導】對話框直接點下一步——進入下圖設置【分發服務器】,

第一個是源發布服務器充當分發服務器,第二個將設置單獨的分發服務器,不理解的可以看后文的原理,所以選第一個【下一步】

 

3、【啟動SQL SERVER代理】的方式:【選擇第一個自動】——【下一步】。

(正式環境建議選自動,測試可以手動方式。訂閱/發布的基本原理還是要通過sql代理協助完成)

 

對應的服務在這里設置:

4、出現【快照文件夾】對話框,(默認C盤需要做權限設置)這里我們設置到D盤隨便新建一個文件夾ReplData——【下一步】。

(正式環境一般要配合Windows賬戶和權限設置文件夾這里暫部多述。另外需要知道的就是后文的發布類型初始化都是需要快照的)

 

5、點擊【下一步】,選中發布的數據庫,我們選擇 數據庫DataSample,點擊【下一步】

 

6、選擇【發布類型】,我們選擇 【事務發布】——點擊【下一步】。四個類型后面在詳細說明適用場景。

 

 

7、選擇需要發布給訂閱端的對象:表、存儲過程、視圖等等,點擊【下一步】:

 

8、出現【篩選表行】對話框,點擊【添加】:

 

9、出現如下的篩選器對話框、可以設置不同的表發布需要的列。

(聰明的同學可能想到能不能以此完成對表的切割分布,留作思考)

不篩選,每個表所有字段全部同步,點擊【取消】返回——【下一步】

 

10、,進入【快照代理】設置對話框,這里有兩個選擇一個是立即創建快照,一個是指定一個計划(比如可以指定xxx天xxx時間運行),我們選擇第一個,點擊【下一步】

 

11、【代理的安全性】——點擊【安全性設置】

 

12、選擇 SQL SERVER 用戶,填寫數據庫連接賬戶——點擊【確定】——返回后點擊【下一步】:

 

13、勾選【創建發布】 ——繼續【下一步】:

 

14、我們給發布進行命名為:“DataSample_Publisher” ,點擊【下一步】:

 

15、運行創建發布,並會顯示創建發布的結果(最后一個可以手動設置,方法見上文),點擊【關閉】:

 

設置為手動的, 驗證成功:右鍵查看快照狀態,每次點擊啟動會創建一個快照。點擊復制監視器,可以看到有沒有報錯

 

訂閱服務器(分布的從服務器、目標)

1、打開SQL——【復制】——右鍵【本地訂閱】——如果是第一次會彈出向導,直接【下一步】,如下圖,選擇我們剛配置的發布服務器,下一步

2、演示本機,選擇第一個——下一步

推送訂閱會加重主服務器的負擔,請求訂閱則會加重訂閱服務器的負擔

 3、勾選發布源、后面設置 本地 訂閱存儲數據庫B——下一步

4、點擊“…”,彈出賬戶設置圖,輸入好賬戶——確定——下一步

5、下一步

6、下一步

7、下一步——下一步——完成

 

驗證

打開源數據庫、插入數據。然后打開訂閱數據庫查詢,看源數據庫的數據是否也同步到了訂閱數據庫:

INSERT INTO [dbo].[Product]
           ([Name]
           ,[Price]
           ,[CreateTime])
     VALUES
           ('測試測試'
           ,18.02
           ,GETDATE())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM