建立SQL Replication可以選擇 Local Distribution 或是 Remote Distribution,兩種架構各有他的優缺點,這篇會一步一步教大家如何設定Remote Distribution。
使用 Remote Distribution代表將Publisher和Distributor分開在不同的Instance上,同時代表工作量就會被拆分在Publisher 和 Distributor上。利用這個架構可以改善SQL Replication的效能。缺點是必須多維護一台Distribution Server,並且花比較多時間設定,優點是可以減少Publisher的負擔。如果有很多Publisher和Subscriber,其實利用Remote Distribution這個架構或許是一個不錯的考量。 如果使用此架構也需要同時考量到Network, IO的影響。
Step 1 建立Share Folder並給予 Domain Account Read/Write Permission

Step 2 設定Remote Distribution
首先在要在Remote Distribution的Server上設定
將路徑從原本的Defaut位置改為剛剛建立ShareFolder的路徑
輸入用於驗證的密碼(自定義)
Step 3 Publisher Configuration
和Step2一樣,但是這次要在Publisher上設定
選擇Step 2設定好的Remote Distrubution Server
輸入和Step 2一樣的密碼
Step 4 Grant Permission for Domain\Replication
以下幾個DB需要給與Domain\Replication dbowner的權限
- Publisher Server:
- Source DB
- Distribution Server
- Distribution
- Subscriber Server
- Target DB
如果還有遇到Permission問題可以確認一下是否為job owner 並且有 SQLServer Agent User Role 在msdb的權限。此外Domain\Replicaiton需要有可以Read/Write snapshot folder的權限。
Step 5 Create the testing replication
選擇Transaction Replication做為測試
選擇要複寫的Table
然後輸入Domain\Replication的帳號密碼
接著在建立Subscribution
再次輸入Domain\Replication 的帳號密碼
最後在Source輸入資料看資料有沒有同步來驗證是否有建立成功。
要截圖分享如何一步一步做實在是一件麻煩的事情,以後可能用影片會比較有效率,寫這篇實在是有夠累的,有機會在分享Script去建要注意那些參數。
另外如果是用Local Distribution其實可以選擇用Local Account去設定權限,微軟官方是建議建四個帳號,這是微軟建議的四個帳號,至於這樣方便管理與否由大家去考量,好處是可以藉由Login清楚了解目前各個Session是在做什麼事情,怎麼用Local Account去設定SQL Replication我就不多介紹了,以下附上連結。
想當年建Replication看文字看到吐血,如今微軟居然圖文並茂SOP… 真是TMD