佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > SQLServer 數(shù)據(jù)庫中如何保持數(shù)據(jù)一致性

SQLServer 數(shù)據(jù)庫中如何保持數(shù)據(jù)一致性

熱門標(biāo)簽:網(wǎng)站排名優(yōu)化 服務(wù)外包 鐵路電話系統(tǒng) AI電銷 百度競價排名 地方門戶網(wǎng)站 Linux服務(wù)器 呼叫中心市場需求
根據(jù)實現(xiàn)策略的不同,主要有快照復(fù)制、事務(wù)復(fù)制、合并復(fù)制等三種類型。這三種復(fù)制類型,各有各的特點,分別適用于不同的場合。一般來說,在考慮采用哪種復(fù)制類型比較合適的時候,主要考慮的是性能與數(shù)據(jù)同步的時間間隔。那么在什么情形下比較適用快照復(fù)制呢?筆者就跟大家來討論一下這個話題。
  為了在恰當(dāng)?shù)臅r候采用快照復(fù)制,數(shù)據(jù)庫管理員首先需要知道快照復(fù)制的特點??煺諒?fù)制是指將數(shù)據(jù)以特定時刻的瞬時狀態(tài)轉(zhuǎn)發(fā),而不堅實對數(shù)據(jù)的更新。在發(fā)生同步時,將生成完整的快照并將其發(fā)送到訂閱服務(wù)器。簡單的說,快照復(fù)制就是每隔一段時間發(fā)生數(shù)據(jù)同步操作。而不是發(fā)布服務(wù)器的數(shù)據(jù)一有更新就出發(fā)這個快照復(fù)制。顯然這種快照復(fù)制的數(shù)據(jù)同步性稍微差一點。在訂閱服務(wù)器與發(fā)布服務(wù)器之間有一段時間會存在數(shù)據(jù)不一致的情況。但是這可以在很大程度上提高訂閱服務(wù)器與發(fā)布服務(wù)器的性能。這就好像汽車運輸。采用快照復(fù)制的話可以將一個集裝箱裝滿后在送貨,而不是有多少送多少。掌握這個數(shù)據(jù)庫復(fù)快照復(fù)制的具體特點之后,數(shù)據(jù)庫管理員就可以來考慮在什么情況下,采用快照復(fù)制更加的合理。

  一、數(shù)據(jù)更改比較少的系統(tǒng)中。

  快照復(fù)制與其他復(fù)制相比最主要的缺陷就是數(shù)據(jù)庫中的數(shù)據(jù)無法及時同發(fā)布服務(wù)器一致。為此如果發(fā)布服務(wù)器中的內(nèi)容很少更改的話,顯然此時采用快照復(fù)制是比較合理的。此時采用快照復(fù)制的話,不僅數(shù)據(jù)一致性延遲的負面效應(yīng)會越來越不明顯,同時可以提高發(fā)布服務(wù)器與訂閱服務(wù)器的性能。如在實際工作中,經(jīng)常會遇到這樣的客戶。如一家企業(yè)在各地都有辦事處或者銷售機構(gòu),就像肯德基一樣,各地的產(chǎn)品價格基本上都是相同的,不怎么會更改。即使更改的話,各地也是統(tǒng)一調(diào)整。由于此時產(chǎn)品價格表更改的比較少,那么在企業(yè)總部的數(shù)據(jù)庫服務(wù)與各地的訂閱服務(wù)器之間,采用快照復(fù)制的形式就會比較合適。其實類似的情況有很多。如不少的服裝企業(yè),像李寧、耐克等等,他們不僅自己生產(chǎn),而且在各地又有自己的銷售辦事處。在價格方面也是統(tǒng)一的。在這種情況下,采用快照復(fù)制往往能夠提高數(shù)據(jù)庫復(fù)制的性能,同時又不影響其使用。

  二、在某個時段內(nèi)會出現(xiàn)數(shù)據(jù)大量的更改。

  需要補充說明的一點是,上面說到的數(shù)據(jù)不怎么發(fā)生更改,指的是數(shù)據(jù)的延續(xù)性更改。如在一年中,每天或者每個小時更改的數(shù)據(jù)都比較平均。此時采用快照復(fù)制不怎么合適。但是如果數(shù)據(jù)的更改集中在一個時段內(nèi)。而其他時間中數(shù)據(jù)庫的內(nèi)容不會有多大的更改。此時采用快照復(fù)制是可行的。如一些決策性系統(tǒng),往往在起初導(dǎo)入數(shù)據(jù)的時候,需要進行大量的更改。而等到數(shù)據(jù)導(dǎo)入完畢,在大家對數(shù)據(jù)進行分析時,則數(shù)據(jù)庫中的內(nèi)容基本上保持不變。在這種情況下,筆者認為只要數(shù)據(jù)的更新集中在一個固定的時段,此時采用快照復(fù)制仍然是可行的。

  再如上面這個KFC或者服裝企業(yè)的案例中,如果市場部門維護一個產(chǎn)品的價格,而且這些價格往往在一個固定的時間進行幾次更新。如在換季的時候會進行一些促銷。此時數(shù)據(jù)庫管理員可以在數(shù)據(jù)更新完畢后立即執(zhí)行復(fù)制完成的數(shù)據(jù)快照。所以,以數(shù)據(jù)更新來判斷是否適合采用快照復(fù)制,標(biāo)準(zhǔn)并不是數(shù)據(jù)的更新量。像上面提到的分析決策系統(tǒng),其起初的數(shù)據(jù)更新量可能比有些數(shù)據(jù)庫系統(tǒng)幾年的數(shù)據(jù)更新量都要大。筆者認為,主要是根據(jù)數(shù)據(jù)更新的頻率來進行判斷。如果數(shù)據(jù)更新的比較頻繁,那么即使數(shù)據(jù)更新的數(shù)據(jù)不多,像那種細水長流似的更新,則不適合采用快照復(fù)制。而那些井噴似的數(shù)據(jù)更新,所有的更新都集中在一個固定的時刻,那么此時采用快照復(fù)制是比較合理的。

  三、在一段時間內(nèi)是否允許具有相對發(fā)布服務(wù)器已過時的數(shù)據(jù)副本?

  現(xiàn)在不少超市也已經(jīng)連鎖了,如世紀聯(lián)華等等。為了提高利潤,增加市場的份額,這些超市紛紛推出了沖值卡,即消費者先將一定金額的人民幣打入到?jīng)_值卡中。然后每次消費完成后從卡中扣費。但前些天經(jīng)常有新聞報道,說一個客戶的消費卡在一家聯(lián)華超市掛失了。但是撿到這張卡的人仍然可以在其他的聯(lián)華超市中消費。為此消費者就想不明白了,為什么掛失了的消費卡仍然可以在其他超市中消費?掛失后的損失該由誰來承擔(dān)呢?其實這就使超市在不適當(dāng)?shù)臅r候采用了快照復(fù)制所造成的。由于采用快照復(fù)制,在各個聯(lián)華超市的數(shù)據(jù)庫之間數(shù)據(jù)無法在短時間內(nèi)取得一致。如有些商戶說掛失當(dāng)日之內(nèi)的損失他們不承擔(dān),這就說明他們可能是每天下班后進行一次快照復(fù)制。一般情況下這不會有問題。但是像遇到消費卡被偷了等情況,就會遇到類似的問題了。

  所以,在考慮是否適合采用快照復(fù)制的時候,還需要考慮在一段時間內(nèi)是否允許具有相對發(fā)布服務(wù)器來說已過時的數(shù)據(jù)副本。如果不允許的話,那么就不允許采用這個快照復(fù)制。如果允許的話,那么數(shù)據(jù)庫管理員就需要評估這段時間最長是多少。如果是24個小時,那么就需要每隔24小時進行一次快照復(fù)制。但是需要注意的是,如果時間的間隔比較短,如才允許十分鐘的數(shù)據(jù)延遲,那么采用快照復(fù)制就沒有必要了。此時采用事務(wù)復(fù)制或則和合并復(fù)制可能更加的合適。

  四、復(fù)制少量的數(shù)據(jù)。

  快照復(fù)制跟其他復(fù)制類型相比,還有一個比較顯著的特點,即當(dāng)發(fā)生數(shù)據(jù)同步時,將生成完整的快照并將其從發(fā)布服務(wù)器傳送到訂閱服務(wù)器。這是一個什么概念呢?如訂閱服務(wù)器中有10G的數(shù)據(jù),而在一個快照復(fù)制的周期內(nèi),只有1M的數(shù)據(jù)發(fā)生了更改。此時發(fā)生快照復(fù)制的話,數(shù)據(jù)庫系統(tǒng)會將10G的數(shù)據(jù)都傳送到訂閱服務(wù)器上。此時更改的數(shù)據(jù)只有1M,卻需要在網(wǎng)絡(luò)上傳送10G的數(shù)據(jù)流量,顯然會對企業(yè)的網(wǎng)絡(luò)產(chǎn)生比較大的壓力。由于在發(fā)布服務(wù)器上快照復(fù)制的連續(xù)開銷低于事務(wù)復(fù)制的開銷,一次數(shù)據(jù)庫系統(tǒng)不會啟用跟蹤增量更改。但是像這種情況,如果要復(fù)制的數(shù)據(jù)量非常的大,而平時的更新又不多。此時數(shù)據(jù)庫系統(tǒng)要生成和應(yīng)用快照,就將耗用大量的資源,包括網(wǎng)絡(luò)資源和服務(wù)器資源。所以說,當(dāng)發(fā)布服務(wù)器中的數(shù)據(jù)比較多時,采用快照復(fù)制不怎么合適。因為此時網(wǎng)絡(luò)傳輸反而會成為其最重大的瓶頸資源。相反若能夠采取細水長流的事務(wù)復(fù)制策略,那么對于企業(yè)網(wǎng)絡(luò)性能的影響就會小的多,甚至可以忽略不計。

  所以在采用快照復(fù)制的時候,數(shù)據(jù)庫管理員一定要明白,快照復(fù)制會傳送整個數(shù)據(jù)庫對象。從而在快照復(fù)制傳輸過程中會侵蝕大量的網(wǎng)絡(luò)帶寬,從而明顯的降低企業(yè)網(wǎng)絡(luò)的性能,甚至導(dǎo)致網(wǎng)絡(luò)擁塞。有時候為了保障快照能夠準(zhǔn)確、迅速的傳遞到其他的訂閱服務(wù)器,還不得不采用VPN等技術(shù)來保障傳輸?shù)臏?zhǔn)確性。為此,筆者認為只有發(fā)布服務(wù)器的數(shù)據(jù)庫并不是很大的情況下,才適合采用快照復(fù)制。否則的話,采用快照復(fù)制是得不償失。

  從以上的分析中,可以得到一個結(jié)論。在考慮采用快照復(fù)制是否合適時,往往不能夠采用一個指標(biāo)來判斷。而需要考慮多個因素,如數(shù)據(jù)庫的大小、數(shù)據(jù)更新的頻率、允許數(shù)據(jù)延遲的時間等等因素來進行判斷。最后在數(shù)據(jù)的一致性與數(shù)據(jù)庫的性能之間取得一個均衡。說實話,對于大部分數(shù)據(jù)庫管理員來說,要做出一個抉擇,確實有困難。因為這沒有固定的指標(biāo)可以拿來參考。如數(shù)據(jù)庫容量小于多少時該采用快照復(fù)制。任何一個數(shù)據(jù)庫管理專家都不能夠下這個結(jié)論。所以在掌握影響其選擇的相關(guān)因素外,就要依靠數(shù)據(jù)庫管理員的經(jīng)驗了。在遇到類似的選擇題時,往往經(jīng)驗可以幫助管理員迅速解決問題。最后需要提醒的是,無論最終采取了什么方案,最好能夠持續(xù)跟蹤一段時間,看看自己的選擇是否合理。
您可能感興趣的文章:
  • 用戶管理的備份(一致性備份、非一致性備份、脫機備份、聯(lián)機備份)
  • MySQL數(shù)據(jù)庫備份與恢復(fù)方法
  • mysql備份與恢復(fù)詳解
  • 解析Mysql備份與恢復(fù)簡單總結(jié)與tee命令的使用介紹
  • MySQL備份與恢復(fù)之冷備(1)
  • MySQL備份與恢復(fù)之真實環(huán)境使用冷備(2)
  • MySQL備份與恢復(fù)之熱備(3)
  • MySQL備份與恢復(fù)之熱拷貝(4)
  • MySQL備份與恢復(fù)之保證數(shù)據(jù)一致性(5)

標(biāo)簽:銅川 黃山 衡水 仙桃 湖南 湘潭 蘭州 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQLServer 數(shù)據(jù)庫中如何保持數(shù)據(jù)一致性》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    连南| 沭阳县| 碌曲县| 泰兴市| 伊春市| 丹阳市| 旬阳县| 潮州市| 辽宁省| 延长县| 巴中市| 延边| 嵊泗县| 石屏县| 乾安县| 永丰县| 金塔县| 玉树县| 嘉定区| 常州市| 荣昌县| 松潘县| 阜宁县| 鄂伦春自治旗| 宜良县| 平远县| 嘉善县| 彩票| 涞源县| 平武县| 浮梁县| 刚察县| 开化县| 谢通门县| 淄博市| 巍山| 和田市| 张掖市| 乌海市| 阳泉市| 普陀区|