使用Sqlserver事務(wù)發(fā)布實(shí)現(xiàn)數(shù)據(jù)同步(sql2008)
事務(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)話就不多說(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ā)布名稱”,這里命名為“dnt_new_snap”:
點(diǎn)擊“完成按鈕”,這里系統(tǒng)就開始根據(jù)之前收集的信息來(lái)創(chuàng)建該發(fā)布對(duì)象信息了,如下:
到這里,‘創(chuàng)建發(fā)布'的工作就完成了。下面介紹一下創(chuàng)建訂閱的流程。在另一個(gè)機(jī)器的sqlserver實(shí)例上,打開該實(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ù)名稱(可新建):
點(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客戶端互聯(lián)(在sqlserver studio中設(shè)置'允許遠(yuǎn)程鏈接',同時(shí)要設(shè)置相應(yīng)的ip地址,以及在配置管理器中開啟tcp/ip協(xié)議即可)
作者: daizhj, 代震軍
- SQL Server實(shí)時(shí)同步更新遠(yuǎn)程數(shù)據(jù)庫(kù)遇到的問(wèn)題小結(jié)
- SQL Server 跨庫(kù)同步數(shù)據(jù)
- SqlServer2008 數(shù)據(jù)庫(kù)同步的兩種方式(發(fā)布、訂閱使用方法)
- 通過(guò)SQL Server 2008數(shù)據(jù)庫(kù)復(fù)制實(shí)現(xiàn)數(shù)據(jù)庫(kù)同步備份
- SQL Server 2005 鏡像構(gòu)建手冊(cè)(sql2005數(shù)據(jù)庫(kù)同步鏡像方案)
- 深入SqlServer2008 數(shù)據(jù)庫(kù)同步的兩種方式(Sql JOB)的分析介紹
- SQL Server兩表數(shù)據(jù)同步的多種方法詳解
相關(guān)文章
Sql Server 2008 精簡(jiǎn)版(Express)+Management Studio Express第一次安裝使
Sql Server 2008 精簡(jiǎn)版(Express)和管理工具的安裝以及必須重新啟動(dòng)計(jì)算機(jī)才能安裝 SQLServer的問(wèn)題和第一次使用sqlexpress的連接問(wèn)題的相關(guān)資料2020-08-08
還原sqlserver2008 媒體的簇的結(jié)構(gòu)不正確的解決方法
還原sqlserver2008時(shí),遇到的“媒體的簇的結(jié)構(gòu)不正確的解決方法”2010-07-07
SQL server 2008 數(shù)據(jù)安全(備份和恢復(fù)數(shù)據(jù)庫(kù))
備份和恢復(fù)數(shù)據(jù)庫(kù)對(duì)于數(shù)據(jù)庫(kù)管理員來(lái)說(shuō)是保證數(shù)據(jù)安全性的一項(xiàng)重要工作。SQL server 2008提供了高性能的備份和恢復(fù)功能,可以實(shí)現(xiàn)多種方式的數(shù)據(jù)庫(kù)備份和恢復(fù)操作,避免了由于各種故障造成的損失而丟失數(shù)據(jù)2012-08-08
關(guān)于SQL Server 2008 安裝提示"重新啟動(dòng)計(jì)算機(jī)失敗"的解決辦法
本篇文章是對(duì)關(guān)于SQL Server 2008 安裝提示"重新啟動(dòng)計(jì)算機(jī)失敗"的解決辦法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
SQL Server使用一個(gè)語(yǔ)句塊批量插入多條記錄的三種方法
本文介紹了三種不同的方法向數(shù)據(jù)庫(kù)中一次插入多條記錄的方法,第三種方法是SQL Server2008中特有的,大家體驗(yàn)一下吧。2016-05-05
解決sql server2008注冊(cè)表寫入失敗,vs2013核心功能安裝失敗
本文給大家分享的是作者在更換硬盤后全新安裝sql server2008以及VS2013的過(guò)程中遇到的注冊(cè)表無(wú)法寫入的問(wèn)題以及解決方法,分享給大家,希望大家能夠喜歡2017-10-10
SQL2008中SQL應(yīng)用之- 死鎖(Deadlocking)
當(dāng)一個(gè)用戶會(huì)話(會(huì)話1)已經(jīng)落定了一個(gè)資源,而另一個(gè)會(huì)話(會(huì)話2)想要修改該資源,并且會(huì)話2也鎖定了會(huì)話1想要修改的資源時(shí),就會(huì)出現(xiàn)“死鎖”(deadlocking)。2011-06-06
sql server 2008數(shù)據(jù)庫(kù)連接字符串大全
這篇文章主要介紹了sql server 2008數(shù)據(jù)庫(kù)的連接字符串大全,需要的朋友可以參考下2014-03-03
SQL Server2008 數(shù)據(jù)庫(kù)誤刪除數(shù)據(jù)的恢復(fù)方法分享
今天有個(gè)朋友很著急地打電話給我,他用delete語(yǔ)句誤刪除了SQL Server 2008數(shù)據(jù)庫(kù)中兩個(gè)表中的所有記錄,而這個(gè)數(shù)據(jù)庫(kù)之前沒(méi)有任何備份。讓我?guī)退鉀Q一下,不然他要賠償客戶很多錢2011-10-10
SQL Server 2008 R2數(shù)據(jù)庫(kù)鏡像部署圖文教程
數(shù)據(jù)庫(kù)鏡像是一種針對(duì)數(shù)據(jù)庫(kù)高可用性的基于軟件的解決方案。其維護(hù)著一個(gè)數(shù)據(jù)庫(kù)的兩個(gè)相同的副本,這兩個(gè)副本分別放置在不同的SQL Server數(shù)據(jù)庫(kù)實(shí)例中2013-06-06

