SQL Server 複製訂閱

pursuer.chen發表於2015-05-08

標籤:SQL SERVER/MSSQL SERVER/資料庫/DBA/高效能解決方案/高可用

概述  

配置複製就沒有資料庫映象和AlwaysOn的要求那麼高,只需要兩臺伺服器能通過TCP進行通訊即可,兩臺伺服器作業系統和SQL版本都可以不完全一致,而且兩臺伺服器也不需要加入域,所以配置複製訂閱就簡單多了,但是複製訂閱主要是針對資料表而不能像映象和AlwaysOn那樣配置整個資料庫,這也是它的缺點吧。

接下來主要除了前面介紹配置複製訂閱後面還會解釋一些需要注意的事項。

複製資料庫:AdventureWorks2008R2

 

注意:

1.釋出的表必須要存在主鍵和聚集索引,之前遇到過上G級別的表因為沒有聚集索引導致訂閱失敗。

2.一個釋出專案不要包含的表不要太大,由於釋出生成快照的過程中會鎖表同時會堵塞相應表的程式,如果表太大導致生成快照的時間過長勢必會導致伺服器堵塞非常的嚴重有時候還會出現很嚴重的問題!!!,可以通過多建立幾個釋出專案來解決。

3.釋出伺服器和分發伺服器分開,減少釋出伺服器的壓力。

4.注意一些特殊字元型別的欄位會導致建立訂閱失敗,這裡面可以將欄位的資料型別改成unicode型別的欄位,unicode型別的欄位在SQLServer中以N開頭,比如nchar、nvarchar、ntext等。

5.如果要建立請求訂閱,那麼快照資料夾路徑需要配置共享資料夾。

 

目錄

配置分發伺服器

將分發伺服器和釋出伺服器配置為同一臺伺服器。

1.複製-本地釋出-配置

2.配置分發嚮導-下一步

3.CLU11是釋出伺服器,這裡選擇將CLU11同時配置為分發伺服器,會在CLU11上面建立分發資料庫

4.選擇快照路徑,預設路徑即可

注意:如果要建立請求訂閱,那麼這裡需要配置共享資料夾

5.分發資料庫名稱和分發資料庫資料檔案、日誌檔案路徑

6.預設下一步

7.預設完成

8.完成分發伺服器配置

建立釋出

1.複製-本地釋出-新建釋出 

2.選擇需要釋出的資料庫

3.選擇釋出型別-事務釋出

釋出型別總共有四種,這裡配置最常用的事務釋出型別

4.選擇需要配置釋出的表

建立釋出的表一定要存在主鍵列

5.檢視釋出的專案屬性,預設配置即可

6.在表專案屬性中主要是配置將哪些物件和設定應用的訂閱伺服器,

在屬性中我們可以看到會複製聚集索引、排序規則、DML操作、DLL操作等應用到訂閱伺服器,

因為一般釋出伺服器和訂閱伺服器的業務應用是不一樣的,所以預設只會複製這些主要的物件,不會複製非聚集索引外來鍵等,因為在訂閱伺服器可能需要建的它需要的業務場景的索引。

7.不配置篩選,預設下一步

8.勾選立即建立快照並保持可用狀態

9.配置代理安全性賬戶

10.用於連線到釋出伺服器的rep賬戶必須擁有AdventureWorks2008R2資料庫的所有者許可權,伺服器級別的許可權public即可

11.建立釋出-下一步

12.輸入釋出專案名稱

13.完成釋出資料庫配置

建立訂閱

1.在訂閱伺服器中-複製-本地訂閱-新建訂閱 

2.選擇釋出伺服器-查詢SQL Server釋出伺服器

3.連線CLU11釋出伺服器

4.由於CLU11伺服器中只配置了一個釋出,所以預設顯示出剛才配置的釋出

5.配置分發代理位置-選擇在分發伺服器上執行所有代理

6.下一步

8.配置訂閱代理安全性賬戶

9.連線到訂閱伺服器的賬戶同樣需要訂閱資料庫的所有者許可權,伺服器級別也是Public即可

10.代理計劃-連續執行

11.初始化時間-立即

12.建立訂閱

13.完成訂閱建立

14.完成

檢視配置

1.在釋出伺服器CLU11的路徑下可以找到新生成的快照檔案路徑

 

2.在CLU11釋出伺服器的系統資料庫中建立了“distribution”分發資料庫

3.在訂閱伺服器,訂閱資料庫“AdventureWorks2008R2”中生成了釋出的兩張表,

注意:訂閱資料庫與釋出資料庫不需要一樣,這裡不要被誤解

4.在釋出伺服器的複製下建立了一個釋出專案

5.檢視複製監視器,在這裡可以配置和檢視釋出訂閱和監控分發情況,可以配置警告

6.釋出屬性-這裡可以配置和修改釋出

7.訂閱屬性-這裡可以修改訂閱安全登入賬號

8.在釋出伺服器的代理中生成了三個作業,分別是和分發有關的快照日誌讀取作業,和釋出有關的釋出作業,和訂閱有關的分發作業。

 

新增新的釋出表

1. 在複製監視器-我的釋出伺服器-CLU11-右鍵釋出專案-屬性,去掉”僅顯示列表中已選中的專案勾選“

勾選”AWBuildVersion“表,確定儲存

建立釋出的表一定要存在主鍵列

2.複製監視器-我的釋出伺服器-CLU11-右鍵釋出專案-生成快照

3.在訂閱資料庫檢視生成的訂閱表

4.在釋出伺服器的快照資料夾下面可以看到生成了一個新的快照資料夾

5.檢視訂閱屬性,可以看到分發歷史記錄

總結

 由於將分發伺服器和釋出伺服器配置在同一臺伺服器,對釋出伺服器會有一定的壓力,在平時的操作過程中如果需要對釋出的表進行刪除欄位的操作之前首先要檢視訂閱表中是否建立了該欄位的索引,如果建立了需要把欄位從索引中去掉,否則會造成釋出訂閱報錯。

 

SQL Server 高可用方案大全:

SQL Server AlwaysOn:http://www.cnblogs.com/chenmh/p/4484176.html

SQL Server 映象:http://www.cnblogs.com/chenmh/p/4452902.html

SQL Server 事務日誌傳輸:http://www.cnblogs.com/chenmh/p/3671030.html

SQL Server 複製:http://www.cnblogs.com/chenmh/p/4487766.html

故障轉移群集:http://www.cnblogs.com/chenmh/p/4479304.html

SQL Server 2016快照代理過程分析:http://www.cnblogs.com/chenmh/p/7895991.html

 

 

備註:

    作者:pursuer.chen

    部落格:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結,否則保留追究責任的權利。

《歡迎交流討論》

 

相關文章