SQL Server 復制訂閱


標簽: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

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

《歡迎交流討論》

 


免責聲明!

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



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