對(duì)于數(shù)據(jù)庫(kù)的復(fù)制功能一直也沒(méi)有用過(guò),正好這次需要做數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步,就把數(shù)據(jù)庫(kù)復(fù)制同步整理了一下。數(shù)據(jù)庫(kù)同步可以是同一個(gè)服務(wù)器之間不同數(shù)據(jù)庫(kù)之間數(shù)據(jù)同步,也可以是局域網(wǎng)內(nèi)不同服務(wù)器間數(shù)據(jù)庫(kù)的同步。因?yàn)檫@次做的就是局域網(wǎng)內(nèi)兩臺(tái)服務(wù)器上數(shù)據(jù)庫(kù)間數(shù)據(jù)的同步,對(duì)于不是在同一局域網(wǎng)內(nèi)的兩臺(tái)或多臺(tái)服務(wù)器數(shù)據(jù)庫(kù)同步是否可以實(shí)現(xiàn),暫時(shí)沒(méi)有做測(cè)試,也沒(méi)有深入的了解,所以也不知道是否可以實(shí)現(xiàn)了。有不到之處望多多指教。
下面具體說(shuō)一下步驟,首先我們說(shuō)一下發(fā)布服務(wù)器上的準(zhǔn)備工作和條件,先把Sql Server代理設(shè)置為自啟動(dòng);對(duì)事務(wù)發(fā)布,確保數(shù)據(jù)庫(kù)表要有主鍵;新建一個(gè)文件夾,設(shè)置為共享。
首先我們?cè)O(shè)置一下配置分發(fā),如果之前做過(guò)配置分發(fā)設(shè)置,就是右邊的效果,可以直接創(chuàng)建本地發(fā)布。
接著,一直下一步即可,在快照文件夾出注意一下
下一步,如果一開(kāi)始沒(méi)有設(shè)置Sql Server代理為自啟動(dòng),就會(huì)提示這個(gè)
下一步,這個(gè)地方填寫(xiě)一開(kāi)始創(chuàng)建好的共享文件夾地址,如F:/ShareFolder
下一步,默認(rèn)填寫(xiě)
下一步,勾選配置分發(fā)
點(diǎn)完成,可以看到:
至此配置分發(fā)已經(jīng)好了,接著就是創(chuàng)建本地發(fā)布了,
下一步選擇要同步的數(shù)據(jù)庫(kù)
這個(gè)地方選擇事務(wù)發(fā)布,具體的每個(gè)發(fā)布可以看說(shuō)明,后面也會(huì)講到
下一步,如果你的數(shù)據(jù)庫(kù)中有視圖等,也會(huì)顯示出來(lái),勾選你要同步的對(duì)象
下一步,添加篩選項(xiàng),如果需要就添加,不需要直接下一步,添加的界面右圖
這里不做添加,下一步,勾選第一項(xiàng)
下一步,點(diǎn)安全設(shè)置,如下設(shè)置:
確定后如下:
下一步,勾選創(chuàng)建發(fā)布,下一步,填寫(xiě)一個(gè)發(fā)布名稱
點(diǎn)完成
至此本地發(fā)布就創(chuàng)建好了,這時(shí)再展開(kāi)復(fù)制-本地發(fā)布可以看到剛剛創(chuàng)建好的本地發(fā)布test
創(chuàng)建好了本地發(fā)布就要?jiǎng)?chuàng)建訂閱了,為了方便就在本機(jī)做訂閱,如果在其他服務(wù)器上做訂閱流程是一樣的只是在選擇發(fā)布服務(wù)器時(shí)有點(diǎn)區(qū)別,下面會(huì)講到
同樣下一步,如果這地方是在本機(jī)訂閱,則直接選擇數(shù)據(jù)庫(kù)和發(fā)布test,如果是訂閱其他服務(wù)器上的發(fā)布,可以展開(kāi)發(fā)布服務(wù)器,選擇“查找sql server 發(fā)布服務(wù)器”
這個(gè)時(shí)候會(huì)彈出數(shù)據(jù)庫(kù)登錄界面,這里需要注意一下,服務(wù)器登錄要用計(jì)算機(jī)名稱,不能用ip地址或別名,還要注意,這個(gè)地方要鏈接發(fā)布服務(wù)器,因?yàn)榇_保發(fā)布服務(wù)器上數(shù)據(jù)庫(kù)允許遠(yuǎn)程鏈接。鏈接上之后會(huì)在剛才的界面展示這個(gè)服務(wù)器上的發(fā)布,選擇好發(fā)布,下一步即可,勾選第一項(xiàng)。
下一步,勾選上訂閱服務(wù)器,選擇訂閱數(shù)據(jù)庫(kù),只要選擇新建數(shù)據(jù)庫(kù)就可以了。這時(shí)會(huì)彈出創(chuàng)建數(shù)據(jù)庫(kù)對(duì)話框,創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),
下一步,設(shè)置安全性
確定,下一步,同步計(jì)劃選連續(xù)運(yùn)行,初始化時(shí)間選擇立即
下一步,選擇立即創(chuàng)建訂閱,一直下一步即可,至完成。這個(gè)時(shí)候展開(kāi)復(fù)制下的本地發(fā)布和本地訂閱,可以看到發(fā)布和訂閱都存在了。而且剛才創(chuàng)建的訂閱數(shù)據(jù)庫(kù)TestDataDY在數(shù)據(jù)庫(kù)中也存在了。
所有的工作都已經(jīng)做好了,下面就是測(cè)試了。因?yàn)槲覀兪前裈estData作為發(fā)布的數(shù)據(jù)庫(kù),TestDataDY是訂閱的數(shù)據(jù)庫(kù),因此我們?cè)赥estData數(shù)據(jù)庫(kù)的表中添加或修改數(shù)據(jù)庫(kù),看TestDataDY數(shù)據(jù)庫(kù)中的數(shù)據(jù)是否也跟著響應(yīng)的改變。測(cè)試的過(guò)程可以自己手動(dòng)的做一下。
接下來(lái)我們說(shuō)一下其他的東西,第一個(gè)就是一開(kāi)始我們創(chuàng)建的共享文件夾,他叫快照文件夾,顧名思義就是用來(lái)存放快照的。我們可以找到這個(gè)文件夾并打開(kāi)看一下,一開(kāi)始是空的文件夾,當(dāng)我創(chuàng)建了發(fā)布和訂閱以后,在此打開(kāi)可以看到,有四個(gè)以發(fā)布的數(shù)據(jù)庫(kù)命名的文件。這些就是數(shù)據(jù)庫(kù)TestData中的表的初始架構(gòu)和數(shù)據(jù)。
回顧上面創(chuàng)建訂閱的時(shí)候創(chuàng)建的訂閱數(shù)據(jù)庫(kù),我們只是創(chuàng)建了數(shù)據(jù)庫(kù),而數(shù)據(jù)庫(kù)中的表、字段等我們沒(méi)有創(chuàng)建,當(dāng)我們創(chuàng)建好訂閱以后,這些表和字段都自動(dòng)的創(chuàng)建好了,就是通過(guò)快照文件夾中的初始架構(gòu)和數(shù)據(jù)來(lái)完成的。
還有一個(gè)就是分發(fā)數(shù)據(jù)庫(kù)distribution,他是可以找到的,他存在系統(tǒng)數(shù)據(jù)庫(kù)中。
可以看到這個(gè)數(shù)據(jù)就一張表和一個(gè)字段,這個(gè)數(shù)據(jù)庫(kù)主要的作用是用來(lái)存儲(chǔ)歷史記錄、錯(cuò)誤和新事務(wù)。
接著就是發(fā)布類型了,發(fā)布類型有快照發(fā)布,事務(wù)發(fā)布,具有可更新訂閱的事務(wù)發(fā)布和合并發(fā)布。
快照發(fā)布:發(fā)布服務(wù)器按照預(yù)定的時(shí)間間隔向訂閱服務(wù)器發(fā)送已發(fā)布數(shù)據(jù)的快照。他的工作機(jī)制是:發(fā)布服務(wù)器,將要發(fā)布的數(shù)據(jù)庫(kù)整個(gè)做一個(gè)快照;訂閱服務(wù)器的快照代理程序把發(fā)布服務(wù)器的快照讀取過(guò)來(lái),放在本地的快照文件夾內(nèi);訂閱服務(wù)器的發(fā)布代理程序把快照文件夾中的快照發(fā)布到訂閱服務(wù)器上。歷史記錄和快照記錄在分發(fā)服務(wù)器中。
事物發(fā)布:在訂閱服務(wù)器收到已發(fā)布數(shù)據(jù)的初始快照后,發(fā)布服務(wù)器將事務(wù)流式傳輸?shù)接嗛喎?wù)器。他的基本原理:初始數(shù)據(jù)和架構(gòu)(通過(guò)快照復(fù)制來(lái)完成),從這里可以體現(xiàn)出來(lái)快照復(fù)制,是所有復(fù)制的基礎(chǔ) 。快照復(fù)制在訂閱服務(wù)器上建立了訂閱數(shù)據(jù)庫(kù);發(fā)布服務(wù)器的數(shù)據(jù)修改后,寫(xiě)事務(wù)日志;分發(fā)服務(wù)器的日志讀取代理讀取發(fā)生改變的數(shù)據(jù)的事務(wù)日志,把這些事務(wù)日志保存在發(fā)布服務(wù)器的發(fā)布數(shù)據(jù)庫(kù)中;分發(fā)服務(wù)器的分發(fā)代理程序 將分發(fā)數(shù)據(jù)庫(kù)中的事務(wù)日志分發(fā)到各個(gè)訂閱服務(wù)器上,然后把歷史記錄和錯(cuò)誤記錄在分發(fā)數(shù)據(jù)庫(kù)中。
具有可更新訂閱的事務(wù)發(fā)布: SQL Server 訂閱服務(wù)器收到已發(fā)布數(shù)據(jù)的初始快照后,發(fā)布服務(wù)器將事務(wù)流式傳輸?shù)接嗛喎?wù)器。來(lái)自訂閱服務(wù)器的事務(wù)被應(yīng)用于發(fā)布服務(wù)器。
合并發(fā)布:在訂閱服務(wù)器收到已發(fā)布數(shù)據(jù)的初始快照后,發(fā)布服務(wù)器和訂閱服務(wù)器可以獨(dú)立更新已發(fā)布數(shù)據(jù)。更改會(huì)定期合并。Microsoft SQL Server Compact Edition 只能訂閱合并發(fā)布。
這幾個(gè)發(fā)布的區(qū)別是:
1、快照發(fā)布和事務(wù)發(fā)布是單向的,即A->B;合并發(fā)布是雙向的,A->B,B->A。
2、快照復(fù)制是復(fù)制所有的數(shù)據(jù),而事務(wù)復(fù)制和合并復(fù)制是復(fù)制數(shù)據(jù)的更改。
以上就是復(fù)制的整個(gè)流程了,不過(guò)這個(gè)只是簡(jiǎn)單是數(shù)據(jù)同步,實(shí)際的項(xiàng)目中可以根據(jù)需求來(lái)選擇發(fā)布類型以及配置。以上有不到之處望多多指教。
新聞熱點(diǎn)
疑難解答
圖片精選