事務(wù)的功能在sqlserver中由來(lái)已久,因?yàn)樽罱谧鲆粋€(gè)數(shù)據(jù)同步方案,所以有機(jī)會(huì)再次研究一下它以及快照等,發(fā)現(xiàn)還是有很多不錯(cuò)的功能和改進(jìn)的。這里以sqlserver2008的事務(wù)發(fā)布功能為例,對(duì)發(fā)布訂閱的方式簡(jiǎn)要介紹一下操作流程,一方面做個(gè)總結(jié)備份,一方面與大家進(jìn)行一下分享和交流。費(fèi)話(huà)就不多說(shuō)了,進(jìn)入一下今天的正題:)
這里要說(shuō)明一下環(huán)境:首先我在本地局域網(wǎng)內(nèi)有兩臺(tái)安裝有sqlserver2008的機(jī)器(注意:已發(fā)布的快照版本無(wú)法向老版本數(shù)據(jù)庫(kù)兼容,意味著2008下創(chuàng)建的事務(wù)或快照發(fā)布,無(wú)法被sqlserver2005訂閱)。當(dāng)然這兩臺(tái)機(jī)器要放在同一個(gè)網(wǎng)段,一方面出現(xiàn)性能和安全性考慮,另一方面是我目前還沒(méi)有找到跨不同網(wǎng)段的快照應(yīng)用方案(可行性的那種)。
好了,這里我以我們產(chǎn)品數(shù)據(jù)庫(kù)為準(zhǔn)來(lái)介紹一下如何通過(guò)發(fā)布訂閱的方式來(lái)進(jìn)行數(shù)據(jù)同步。
首先,在要發(fā)布的數(shù)據(jù)庫(kù)上創(chuàng)建一個(gè)我們的產(chǎn)品數(shù)據(jù)庫(kù)(這里叫做dnt_new),然后在該數(shù)據(jù)庫(kù)實(shí)例的左側(cè)導(dǎo)航的“復(fù)制”--“本地發(fā)布”上擊右鍵,然后選擇“新建發(fā)布”,如下:
這樣,系統(tǒng)就會(huì)啟動(dòng)‘發(fā)布向?qū)?來(lái)引導(dǎo)大家,這里我們?cè)跉g迎界面下點(diǎn)擊"下一步”,然后在當(dāng)前窗口中選擇要發(fā)布的數(shù)據(jù)庫(kù),如下:
點(diǎn)擊下一步,然后在接下來(lái)的窗口中選擇“事務(wù)發(fā)布”,如下圖:
然后點(diǎn)擊下一步,選擇要同步的數(shù)據(jù)對(duì)象(數(shù)據(jù)表,存儲(chǔ)過(guò)程,自定義函數(shù)等),如下:
然后就是“項(xiàng)目問(wèn)題窗口”,因?yàn)橹耙延胐bo身份登陸,所以這里只要點(diǎn)擊下一步即可,如下圖:
這里可以通過(guò)“添加”方式來(lái)過(guò)濾要同步的數(shù)據(jù)信息,因?yàn)橐鋈頂?shù)據(jù)同步,所以這里就不做設(shè)置了,感興趣的朋友可以自己研究一下,這里接著點(diǎn)擊下一步,如下:
然后在‘代理安全性'窗口中,點(diǎn)擊“安全設(shè)置”按鈕:
在彈出的‘安全設(shè)置'子窗口中設(shè)置如下信息,并點(diǎn)擊‘確定'按鈕:
然后點(diǎn)擊下一步按鈕:

選擇“創(chuàng)建發(fā)布”復(fù)選框,然后點(diǎn)擊下一步,這時(shí)向?qū)?huì)讓您輸入“發(fā)布名稱(chēng)”,這里命名為“dnt_new_snap”:
點(diǎn)擊“完成按鈕”,這里系統(tǒng)就開(kāi)始根據(jù)之前收集的信息來(lái)創(chuàng)建該發(fā)布對(duì)象信息了,如下:
到這里,‘創(chuàng)建發(fā)布'的工作就完成了。下面介紹一下創(chuàng)建訂閱的流程。在另一個(gè)機(jī)器的sqlserver實(shí)例上,打開(kāi)該實(shí)例并使用“復(fù)制”—“新建訂閱”,如下圖:
這時(shí)系統(tǒng)就會(huì)啟動(dòng)“新建訂閱”向?qū)Вc(diǎn)擊下一步,并在“發(fā)布”窗口中的“發(fā)布服務(wù)器”下拉框中選擇“查打發(fā)布sqlserver服務(wù)器”項(xiàng),如下:
然后在彈出窗口中選擇之前‘創(chuàng)建發(fā)布時(shí)所使用的數(shù)據(jù)庫(kù)實(shí)例'并進(jìn)行驗(yàn)進(jìn)登陸,這時(shí),發(fā)布服務(wù)器的信息就會(huì)出現(xiàn)在下方的列表框中:
選擇之前我們創(chuàng)建的那個(gè)發(fā)布對(duì)象“dnt_new_snap”,接著點(diǎn)擊下一步:
在分發(fā)代理位置窗口中,選擇“在分布服務(wù)器上運(yùn)行所有代理”,然后點(diǎn)擊下一步,然后在“訂閱服務(wù)器”窗口中的訂閱數(shù)據(jù)庫(kù)列表框中選擇一下要同步的訂閱數(shù)據(jù)庫(kù)名稱(chēng)(可新建):
點(diǎn)擊下一步,然后在‘分發(fā)代理安全性'窗口中,點(diǎn)擊列表框中的‘…'來(lái)設(shè)置安裝性,并做如下設(shè)置(注意紅框部分):
然后點(diǎn)擊“確定”按鈕,之后在向?qū)宵c(diǎn)擊“下一步”按鈕,這時(shí)系統(tǒng)就會(huì)顯示“代理計(jì)劃執(zhí)行方式”窗口,選擇“連續(xù)運(yùn)行”:
點(diǎn)擊下一步,在窗口中選擇“立即執(zhí)行”:
完成了這一步,點(diǎn)擊下一步按鈕,然后就可以創(chuàng)建該訂閱對(duì)象了,如果一切運(yùn)行正常,sqlserver就會(huì)從‘發(fā)布服務(wù)器'那邊,將之前指定的數(shù)據(jù)表和存儲(chǔ)過(guò)程等同步到當(dāng)前的‘訂閱數(shù)據(jù)庫(kù)'中了。
這時(shí)我們可以在源數(shù)據(jù)庫(kù)(發(fā)布服務(wù)器)上的表中添加或修改指定表數(shù)據(jù)信息,在等待1-3秒之后,所做的添加和修改就會(huì)同步到‘訂閱數(shù)據(jù)庫(kù)'上的相應(yīng)表中。看來(lái)目的是達(dá)到了,呵呵。
好了,今天的內(nèi)容就到這里了。
注:本文中的兩臺(tái)機(jī)器必定是可以使用sqlserver客戶(hù)端互聯(lián)(在sqlserver studio中設(shè)置'允許遠(yuǎn)程鏈接',同時(shí)要設(shè)置相應(yīng)的ip地址,以及在配置管理器中開(kāi)啟tcp/ip協(xié)議即可)
作者: daizhj, 代震軍
您可能感興趣的文章:- 卸載SQL2008遇到問(wèn)題(重啟計(jì)算機(jī)失敗、找不到SQL卸載程序)的解決辦法
- sql2008安裝教程 SQL Server 2008 R2 安裝圖解
- SQL2005、SQL2008允許遠(yuǎn)程連接的配置說(shuō)明(附配置圖)
- sql2008 hql語(yǔ)句翻譯過(guò)來(lái)的分頁(yè)語(yǔ)句介紹
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- SQL2008 附加數(shù)據(jù)庫(kù)提示 5120錯(cuò)誤 解決辦法
- sql2008評(píng)估期已過(guò)的解決辦法及序列號(hào)
- sql2008安裝后服務(wù)器改名造成名稱(chēng)不一致解決方法
- mssql2008 自定義表類(lèi)型實(shí)現(xiàn)(批量插入或者修改)
- SQL2008 附加數(shù)據(jù)庫(kù)提示5120錯(cuò)誤解決方法
- SQL2008 詳解直接將XML存入到SQL中