[SQL SERVER][HA]建置交易式複寫(2)-遠端散發者

[SQL SERVER][HA]建置交易式複寫(2)-遠端散發者

一般來說建立遠端散發者可以有效降低主要伺服器負擔,

最近我剛好在處理公司Replaction相關問題,第一步我就是先把本機散發改為遠端散發者,

並設定相關代理參數,這篇自己記錄備忘一下。

 

 

1.設定遠端散發者

image

 

image

本身為散發者。

 

image

設定unc路徑(兩台主機皆可存取該資料夾,權限須注意,應該以散發者為主)。

 

image

設定主要發行者和連結密碼(這裡主要發行者為rico-pc)。

 

image

 

設定合適散發資料庫大小


USE [master]
GO
ALTER DATABASE [distribution] MODIFY FILE ( NAME = N'distribution', SIZE = 1024000KB , FILEGROWTH = 512000KB )
GO
ALTER DATABASE [distribution] MODIFY FILE ( NAME = N'distribution_log', SIZE = 307200KB , FILEGROWTH = 204800KB )
GO

避免散發資料庫自動成長影響效能(依各自資料庫環境設定)。

當然這裡也可以切多個data file。

 

 

2.建立發行集

image

 

image

選擇遠端散發者。

 

image

輸入管理密碼。

 

image

這裡將使用交易式。

 

image

設定快照Agen(要使用遠端散發者相關帳號)t。

 

image

真實環境因為訂閱者不只一台,而且要同步整個DB,

所以我會拆多個發行集(分散發行項),這可以讓每個發行集初始化快一點(不需要包含過多發行項)。

 

 

3.設定訂閱者

image

 

image

選擇題取訂閱(確定該登入)。

 

相關考量可以參考訂閱發行集

image

 

image

設定散發Agent。

 

image

建立了兩個訂閱。

 

到這裡我們已經完成相關複寫建置,後面來設定相關代理參數

修改散發代理程式參數

image

先確認profile id 和agent_type

 


sp_change_agent_parameter @profile_id=4 , @parameter_name= 'CommitBatchSize', 
@parameter_value= '500'
go

sp_change_agent_parameter @profile_id=4 , @parameter_name= 'PollingInterval', 
@parameter_value= '30'
go

sp_change_agent_parameter @profile_id=4 , @parameter_name= 'QueryTimeOut', 
@parameter_value= '180'
go

 

查看參數是否修改

image

點選代理設定檔。

 

image

查看散發設定檔相關參數。

 

 

修改紀錄讀取代理程式參數


sp_change_agent_parameter @profile_id=2, @parameter_name= 'ReadBatchSize', 
@parameter_value= '800'
go

sp_change_agent_parameter @profile_id=2 , @parameter_name= 'PollingInterval', 
@parameter_value= '30'
go

sp_change_agent_parameter @profile_id=2 , @parameter_name= 'QueryTimeOut', 
@parameter_value= '300'
go

 

 

 

開啟複寫監視器確認

1.初始化

image

當你建立訂閱時,這是必需的處理,如果發行集包含過多發行項,

且資料龐大,那麼就會拉長初始化過程,所以我個人會拆多個發行集。

 

2.資料同步確認

image

發行者新增資料。

 

image

訂閱者端確認。

 

 

複寫監視器狀況

image

 

 

 

 

 

 

 

 

 

 

參考

[SQL SERVER][HA]資料庫複寫#簡介

[SQL SERVER][HA]資料庫複寫#建置交易式複寫

sp_change_agent_parameter