數(shù)據(jù)庫復(fù)制:
簡單來說,數(shù)據(jù)庫復(fù)制就是由兩臺服務(wù)器,主服務(wù)器和備份服務(wù)器,主服務(wù)器修改后,備份服務(wù)器自動修改。
復(fù)制的模式有兩種:推送模式和請求模式,推送模式是主服務(wù)器修改后,自動發(fā)給備份服務(wù)器,請求模式是,備份服務(wù)器自動去請求,個人開始也比較重視去測試兩個模式的差別,但是測試發(fā)現(xiàn),其實兩個模式差別不是很大,在當今的服務(wù)器配置中,沒必要考慮這么多,雖然會有一些差別,但是可在可以忽略的范圍之內(nèi),建議直接選擇推送模式,因為配置起來相對簡單
數(shù)據(jù)庫發(fā)布類型有三種:快照發(fā)布,事務(wù)性發(fā)布,具有可更新訂閱和事務(wù)性發(fā)布,合并發(fā)布
一般都會采用事務(wù)性發(fā)布,具體好處,就不說了,網(wǎng)上一大堆的
復(fù)制過程:
第一:點開數(shù)據(jù)庫--復(fù)制---本地發(fā)布---新建發(fā)布
下面只提供需要注意的地方,其他的點擊下一步即可
上面已經(jīng)說了,推薦事物
一般只復(fù)制表即可,但是如果需要其他的,請自行考慮
快照,如果每天需要快照一次,那么可以點擊下面的按鈕,如果只快照一次的話,就沒必要了
使用默認配置即可
這樣不出意外就完成了一個發(fā)布服務(wù)器的配置,那么現(xiàn)在配置訂閱服務(wù)器
可以在你自己機器上直接操作
第一:點開數(shù)據(jù)庫--復(fù)制---本地發(fā)布---新建訂閱--
找出你剛剛發(fā)布的那個名稱
推送模式和請求模式,如果你不想找麻煩,建議直接使用推送模式
這個是設(shè)置你的訂閱服務(wù)器了,如果不在同一個服務(wù)器,那么添加訂閱服務(wù)器,連接到你的訂閱服務(wù)器,也就是備份服務(wù)器
這個也是,默認就行,直至完成即可
重點說一下復(fù)制過程中出現(xiàn)的錯誤
①:因為主服務(wù)器和備用服務(wù)器必須在一個局域網(wǎng)內(nèi),而且不能用IP連接,必須用主機名連接,那么會出現(xiàn)使用主機名無法連接的情況,可能是因為修改過機器名,使服務(wù)器.sql和訪問和機器名不一致
使用一下查新,查看是否一致,如果不一致,使用下面代碼修改一下即可
select @@servername和 select serverproperty ('servername')
if serverproperty('servername') > @@servername
begin
declare @server sysname
set @server = @@servername
exec sp_dropserver @server = @server
set @server = cast(serverproperty('servername') as sysname)
exec sp_addserver @server = @server , @local = 'LOCAL'
end
②:如果你使用的是推送模式,那么最大的麻煩將會是讀取不到快照,一般錯誤為:
由于出現(xiàn)操作系統(tǒng)錯誤 3,進程無法讀取文件“D:\DBSYNC\unc\FLOORWEB_FLOORLINK2_TESTFLOOR\20081128174839\ufoCorpAccount_2.pre”。
這個原因是訂閱服務(wù)器讀取不到快照文件夾位置.可能的原因較多,最直接和簡單的解決辦法是:
將你的快照文件復(fù)制一份,復(fù)制到訂閱服務(wù)器上F:\XX,修改一下 某個訂閱屬性-》快照位置-》“備用文件夾”,快照文件夾-》F:\XX
錯誤的原因:第一次復(fù)制時,訂閱服務(wù)器需要到主服務(wù)器讀取快照,進行同步,然后主服務(wù)器因為權(quán)限問題,無法讀取這個快照,所以導(dǎo)致如上錯誤,將主服務(wù)器的快照復(fù)制到訂閱服務(wù)器,第一次直接根據(jù)這個快照進行同步就可以解決了
測試的一些結(jié)果:僅供參考
1.1:如果在訂閱服務(wù)器上修改數(shù)據(jù)(例如update或delete),這個時候主服務(wù)器操作后,會報錯,直接會停止服務(wù)
1.2: 重新初始化訂閱的時候,最好使用最新快照,不要使用當前快照,會死人的,因為他會從開始到結(jié)束的快照以后的操作全部執(zhí)行一次,例如,你插入了1000w,刪除了1000w,你使用當前快照,可以直接同步了,如果使用以前的,會將這兩個步驟全部執(zhí)行的
1.3:在百萬數(shù)據(jù)插入過程中,內(nèi)存使用大約150-200mb左右,和平時本來就占用120mb左右的內(nèi)存相比,可以直接忽視
1.4:速度方面,500w的數(shù)據(jù)插入,在最后400-500w的時間約為7分鐘,插入100w的數(shù)據(jù)庫量,同步大約需要8-10分鐘