SQLServer 2005 實(shí)現(xiàn)數(shù)據(jù)庫(kù)同步備份 過(guò)程-結(jié)果-分析
數(shù)據(jù)庫(kù)復(fù)制:
簡(jiǎn)單來(lái)說(shuō),數(shù)據(jù)庫(kù)復(fù)制就是由兩臺(tái)服務(wù)器,主服務(wù)器和備份服務(wù)器,主服務(wù)器修改后,備份服務(wù)器自動(dòng)修改。
復(fù)制的模式有兩種:推送模式和請(qǐng)求模式,推送模式是主服務(wù)器修改后,自動(dòng)發(fā)給備份服務(wù)器,請(qǐng)求模式是,備份服務(wù)器自動(dòng)去請(qǐng)求,個(gè)人開(kāi)始也比較重視去測(cè)試兩個(gè)模式的差別,但是測(cè)試發(fā)現(xiàn),其實(shí)兩個(gè)模式差別不是很大,在當(dāng)今的服務(wù)器配置中,沒(méi)必要考慮這么多,雖然會(huì)有一些差別,但是可在可以忽略的范圍之內(nèi),建議直接選擇推送模式,因?yàn)榕渲闷饋?lái)相對(duì)簡(jiǎn)單
數(shù)據(jù)庫(kù)發(fā)布類(lèi)型有三種:快照發(fā)布,事務(wù)性發(fā)布,具有可更新訂閱和事務(wù)性發(fā)布,合并發(fā)布
一般都會(huì)采用事務(wù)性發(fā)布,具體好處,就不說(shuō)了,網(wǎng)上一大堆的
復(fù)制過(guò)程:
第一:點(diǎn)開(kāi)數(shù)據(jù)庫(kù)--復(fù)制---本地發(fā)布---新建發(fā)布
下面只提供需要注意的地方,其他的點(diǎn)擊下一步即可

上面已經(jīng)說(shuō)了,推薦事物

一般只復(fù)制表即可,但是如果需要其他的,請(qǐng)自行考慮

快照,如果每天需要快照一次,那么可以點(diǎn)擊下面的按鈕,如果只快照一次的話(huà),就沒(méi)必要了

使用默認(rèn)配置即可
這樣不出意外就完成了一個(gè)發(fā)布服務(wù)器的配置,那么現(xiàn)在配置訂閱服務(wù)器
可以在你自己機(jī)器上直接操作
第一:點(diǎn)開(kāi)數(shù)據(jù)庫(kù)--復(fù)制---本地發(fā)布---新建訂閱--


推送模式和請(qǐng)求模式,如果你不想找麻煩,建議直接使用推送模式


重點(diǎn)說(shuō)一下復(fù)制過(guò)程中出現(xiàn)的錯(cuò)誤
①:因?yàn)橹鞣?wù)器和備用服務(wù)器必須在一個(gè)局域網(wǎng)內(nèi),而且不能用IP連接,必須用主機(jī)名連接,那么會(huì)出現(xiàn)使用主機(jī)名無(wú)法連接的情況,可能是因?yàn)樾薷倪^(guò)機(jī)器名,使服務(wù)器.sql和訪問(wèn)和機(jī)器名不一致
使用一下查新,查看是否一致,如果不一致,使用下面代碼修改一下即可
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
②:如果你使用的是推送模式,那么最大的麻煩將會(huì)是讀取不到快照,一般錯(cuò)誤為:
由于出現(xiàn)操作系統(tǒng)錯(cuò)誤 3,進(jìn)程無(wú)法讀取文件“D:\DBSYNC\unc\FLOORWEB_FLOORLINK2_TESTFLOOR\20081128174839\ufoCorpAccount_2.pre”。
這個(gè)原因是訂閱服務(wù)器讀取不到快照文件夾位置.可能的原因較多,最直接和簡(jiǎn)單的解決辦法是:
將你的快照文件復(fù)制一份,復(fù)制到訂閱服務(wù)器上F:\XX,修改一下 某個(gè)訂閱屬性-》快照位置-》“備用文件夾”,快照文件夾-》F:\XX
錯(cuò)誤的原因:第一次復(fù)制時(shí),訂閱服務(wù)器需要到主服務(wù)器讀取快照,進(jìn)行同步,然后主服務(wù)器因?yàn)闄?quán)限問(wèn)題,無(wú)法讀取這個(gè)快照,所以導(dǎo)致如上錯(cuò)誤,將主服務(wù)器的快照復(fù)制到訂閱服務(wù)器,第一次直接根據(jù)這個(gè)快照進(jìn)行同步就可以解決了
測(cè)試的一些結(jié)果:僅供參考
1.1:如果在訂閱服務(wù)器上修改數(shù)據(jù)(例如update或delete),這個(gè)時(shí)候主服務(wù)器操作后,會(huì)報(bào)錯(cuò),直接會(huì)停止服務(wù)
1.2: 重新初始化訂閱的時(shí)候,最好使用最新快照,不要使用當(dāng)前快照,會(huì)死人的,因?yàn)樗麜?huì)從開(kāi)始到結(jié)束的快照以后的操作全部執(zhí)行一次,例如,你插入了1000w,刪除了1000w,你使用當(dāng)前快照,可以直接同步了,如果使用以前的,會(huì)將這兩個(gè)步驟全部執(zhí)行的
1.3:在百萬(wàn)數(shù)據(jù)插入過(guò)程中,內(nèi)存使用大約150-200mb左右,和平時(shí)本來(lái)就占用120mb左右的內(nèi)存相比,可以直接忽視
1.4:速度方面,500w的數(shù)據(jù)插入,在最后400-500w的時(shí)間約為7分鐘,插入100w的數(shù)據(jù)庫(kù)量,同步大約需要8-10分鐘
相關(guān)文章
SQL?Server?Reporting?Services?匿名登錄的問(wèn)題及解決方案
這篇文章主要介紹了關(guān)于?SQL?Server?Reporting?Services?匿名登錄的解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
SQL優(yōu)化基礎(chǔ) 使用索引(一個(gè)小例子)
一年多沒(méi)寫(xiě),偶爾會(huì)有沖動(dòng)寫(xiě)幾句,每次都欲寫(xiě)又止,有時(shí)候?qū)懗鰜?lái)就是個(gè)記錄,沒(méi)有其他想法,能對(duì)別人有用也算額外的功勞2012-01-01
MSSQL MySQL 數(shù)據(jù)庫(kù)分頁(yè)(存儲(chǔ)過(guò)程)
有關(guān)分頁(yè) SQL 的資料很多,有的使用存儲(chǔ)過(guò)程,有的使用游標(biāo)。本人不喜歡使用游標(biāo),我覺(jué)得它耗資、效率低;使用存儲(chǔ)過(guò)程是個(gè)不錯(cuò)的選擇,因?yàn)榇鎯?chǔ)過(guò)程是經(jīng)過(guò)預(yù)編譯的,執(zhí)行效率高,也更靈活2012-01-01
MS SQL Server獲取十二個(gè)月份的英文縮寫(xiě)
十二個(gè)月份的英文縮寫(xiě),只有五月份是全稱(chēng)與縮寫(xiě)一樣,其它月份的縮寫(xiě)僅是取前三位字母。因此Insus.NET寫(xiě)成一個(gè)自定義函數(shù)獲取月份名稱(chēng)縮寫(xiě),感興趣的朋友可以了解下2013-01-01
將備份數(shù)據(jù)還原到數(shù)據(jù)庫(kù)的步驟
如何將備份數(shù)據(jù)庫(kù).bak導(dǎo)入到新的空數(shù)據(jù)庫(kù)或已有數(shù)據(jù)中?做筆記 分享給大家希望有幫助2009-10-10
Windows環(huán)境下實(shí)現(xiàn)批量執(zhí)行Sql文件
這篇文章主要介紹了Windows環(huán)境下實(shí)現(xiàn)批量執(zhí)行Sql文件的相關(guān)資料,需要的朋友可以參考下2021-10-10
SQL Server實(shí)現(xiàn)跨庫(kù)跨服務(wù)器訪問(wèn)的方法
這篇文章主要給大家介紹了關(guān)于SQL Server實(shí)現(xiàn)跨庫(kù)跨服務(wù)器訪問(wèn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SQL Server具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
實(shí)例講解sql server排名函數(shù)DENSE_RANK的用法
這篇文章主要以一個(gè)實(shí)例講解了sql server排名函數(shù)DENSE_RANK的用法,感興趣的小伙伴們可以參考一下2016-03-03
SQL Server行列轉(zhuǎn)換的實(shí)現(xiàn)示例
在使用SQL Server數(shù)據(jù)庫(kù)的過(guò)程中我們經(jīng)常會(huì)遇到需要將行數(shù)據(jù)和列數(shù)據(jù)相互轉(zhuǎn)換顯示的問(wèn)題,本文就來(lái)介紹一下,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
SQL語(yǔ)句計(jì)算兩個(gè)日期之間有多少個(gè)工作日的方法
本文的主要內(nèi)容是用SQL語(yǔ)言計(jì)算兩個(gè)日期間有多少個(gè)工作日,需要的朋友可以參考下2015-08-08

