前提:
發布訂閱只能是同一個內網的機器上才能使用,其實這個可以用配置管理器的別名功能設置之后就可以了,外網的也能通過這樣的方式來搞。
配置過程參考老D的文章:http://www.cnblogs.com/daizhj/archive/2009/11/18/1605293.html
原理圖:
單向:
雙向:
參考:http://bbs.51cto.com/thread-1165966-1.html
SQL Server發布訂閱功能測試:
(我發覺這個功能很不行,為什么不行,我下面其中一台設置錯誤了就要全部重來,那么如果我下面有幾百台機器,怎么重來?)
1、采用事務發布/快照發布進行發布訂閱機制只能是讀寫分離的方案,也就是說A發布B訂閱,只能是操作A的數據,B是同步過來,即使在B新增后,A不會新增。(也就是說單向同步,不是雙向的)
1.1、采用合並復制進行發布訂閱是可以A發布B訂閱,A操作B得到最新數據,B操作A得到最新數據。(也就是說雙向),(自增ID)這個功能測試后發現兩者的數據是經過處理的,比如A的之間為100,B的最大值為9,下一條是10,那么同步過來之后,A的這台數據里面就不是100了,而是10;也就說數據會經過處理。這個功能會在每張表上增加一個rowid的列,這個列是GUID,估計是用於雙向同步的作用而設計的。
2、2008新建訂閱時,如果輸入錯誤,是找不到這個訂閱的,只能刪除發布,再來重新搞。
3、2008上如果數據庫連接端口更改,不是1433默認的之后,那么兩端同步的時候都會不行,即使在配置管理器上新建了別名,也是不行的。(最后發現是可以的,如果新建了別名之后,要把原來的發布刪除再重建)
4、同步的時間間隔大概是1分鍾左右
操作說明:
一、基本的訂閱發布過程配置
事務發布操作省略,配置過程參考老D的文章:http://www.cnblogs.com/daizhj/archive/2009/11/18/1605293.html
合並發布:
注意:這里是本機sa登錄密碼
訂閱:
注意:這里是用來訂閱的數據庫
注意:這里是本機sa登錄密碼
最后查看效果:
發布類型官方說明:
快照發布:
發布服務器按預定的時間間隔向訂閱服務器發送已發布數據的快照。
事務發布:
在訂閱服務器收到已發布數據的初始快照后,發布服務器將事務流式傳輸到訂閱服務器。
具有可更新訂閱的事務發布:
在 SQL Server 訂閱服務器收到已發布數據的初始快照后,發布服務器將事務流式傳輸到訂閱服務器。來自訂閱服務器的事務被應用於發布服務器。
合並發布:
在訂閱服務器收到已發布數據的初始快照后,發布服務器和訂閱服務器可以獨立更新已發布數據。更改會定期合並。Microsoft SQL Server Compact Edition 只能訂閱合並發布。
通俗說明:
快照發布:
發行端依排程定時將快照集傳送到訂閱端,缺點是數據量很大,時間較長。
這個只能是單向發布。
事務發布:
發行端第一次與訂閱端同步數據完后,依排程定時傳送日志資料,供訂閱端重做。優點是數據量較小,適合長期同步數據所用。
這個只能是單向發布。
合並復制:
合並復制可以實現數據的多處更新,當更新沖突時,可以設置規則,比如北京和上海的服務器,我可以設置北京的服務器永遠贏。
也就是說雙向發布。
這里參考這位SQL MVP的文章:http://www.cnblogs.com/CareySon/p/3300936.html
深入說明:
參考這本書【Pro SQL Server 2005 Replication】