時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
通常情況下,快照復(fù)制有如下特點(diǎn)。
一是從快照這個(gè)名詞中,我們也可以看出,照片是一個(gè)靜態(tài)的過程,即只反映數(shù)據(jù)庫某個(gè)時(shí)刻的狀態(tài),而不會反映數(shù)據(jù)庫的一個(gè)變化過程??煺諒?fù)制知識對數(shù)據(jù)庫某個(gè)設(shè)定的時(shí)間的數(shù)據(jù)進(jìn)行復(fù)制,而不會對一段時(shí)間內(nèi)的數(shù)據(jù)更改進(jìn)行連續(xù)監(jiān)視。這跟其另一個(gè)兄弟"事務(wù)復(fù)制"有本質(zhì)的區(qū)別。若把快照復(fù)制比喻成完全備份的話,則事務(wù)復(fù)制就是一個(gè)差異備份。
二是快照復(fù)制所需要的資源比較大??煺諒?fù)制是對整個(gè)數(shù)據(jù)庫進(jìn)行復(fù)制,而不管其是否發(fā)生了變化。無疑,這復(fù)制的時(shí)間、傳輸?shù)臅r(shí)間都會比較長,其耗費(fèi)的服務(wù)器與網(wǎng)絡(luò)資源也會比較多。所以,快照復(fù)制的成本是比較高的。但是,在某些特定的情況下,快照復(fù)制反而可以提高效率。如對于不經(jīng)常更改當(dāng)數(shù)據(jù),或者不要求保持高同步性的數(shù)據(jù)的情況下,利用快照復(fù)制來協(xié)調(diào)多個(gè)數(shù)據(jù)庫之間的數(shù)據(jù)一致性反而使比較合理的選擇。
快照復(fù)制雖然是一門比較先進(jìn)的技術(shù),但是,并不是在所有應(yīng)用場景中,其都可以起到很好的效果。若使用不當(dāng),快照復(fù)制技術(shù)反而會拖數(shù)據(jù)庫管理員的后腿。根據(jù)筆者的經(jīng)驗(yàn),一般在以下情況下,最好采用快照復(fù)制。
一是當(dāng)數(shù)據(jù)更改量大但是不經(jīng)常發(fā)生時(shí),可以采用快照復(fù)制。如筆者有一個(gè)客戶,在全國各地都有服裝門市店,各個(gè)店面的銷售價(jià)格基本一致。由于經(jīng)濟(jì)危機(jī)的影響,在年底為了盡可能的收回現(xiàn)金,決定在12月24日到1月3日之間下調(diào)各個(gè)門市店的銷售價(jià)格。由于他們的銷售系統(tǒng)都是全國聯(lián)網(wǎng)的。價(jià)格的下調(diào)需要總部的系統(tǒng)來完成。此時(shí),就可以采用快照技術(shù),讓這個(gè)價(jià)格表跟各個(gè)地方的數(shù)據(jù)庫同步。在價(jià)格更改完成后,復(fù)制完成的數(shù)據(jù)庫快照。一般來說,某個(gè)表的數(shù)據(jù)主要是靜態(tài)數(shù)據(jù),不經(jīng)常更改。當(dāng)數(shù)據(jù)在一個(gè)時(shí)間發(fā)生更改時(shí),將一個(gè)全新的數(shù)據(jù)庫快照發(fā)布到服務(wù)器上,其效果會更好。
二是在某些決策支持系統(tǒng)中,采用快照復(fù)制技術(shù)的比較多。因?yàn)闆Q策支持系統(tǒng),他們只需要查詢數(shù)據(jù),而很少對數(shù)據(jù)進(jìn)行更改。同時(shí),往往對數(shù)據(jù)庫的及時(shí)性要求也不高。如一個(gè)銷售決策系統(tǒng),他們可能只需要到上個(gè)月月底的銷售數(shù)據(jù),而不需要到當(dāng)天的銷售數(shù)據(jù)。在這種情況下,采用快照復(fù)制技術(shù),比起其他的數(shù)據(jù)同步技術(shù),如事務(wù)復(fù)制技術(shù),效果會更加的好。通常情況下,在某個(gè)時(shí)期,如果允許有過時(shí)的數(shù)據(jù)副本,也就是說,對數(shù)據(jù)的及時(shí)性要求不怎么高的系統(tǒng),可以考慮采用快照技術(shù)。
三是復(fù)制數(shù)據(jù)比較少的情況下,可以采用快照復(fù)制技術(shù)。因?yàn)榭煺諒?fù)制是一次復(fù)制整個(gè)數(shù)據(jù)庫,如果數(shù)據(jù)量比較大的話,則每次復(fù)制、傳輸?shù)臅r(shí)間都會比較長。此時(shí),采用事務(wù)復(fù)制會比較合理。其實(shí),這跟完全備份與差異備份類似。當(dāng)數(shù)據(jù)庫容量比較小時(shí),采用完全備份反而比差異備份更加實(shí)際。因?yàn)榫S護(hù)起來方便。
四是可以利用快照復(fù)制來實(shí)現(xiàn)對SQL Server數(shù)據(jù)庫的異地備份。SQL Server服務(wù)器本身沒有異地備份功能。往往是先在本地進(jìn)行備份,然后把備份文件拷貝到其他主機(jī)上。有了快照復(fù)制的話,可以解決這個(gè)問題。即先建立一個(gè)分發(fā)服務(wù)器,然后每天晚上在空余的時(shí)候,對發(fā)布服務(wù)器進(jìn)行快照復(fù)制,傳輸給分發(fā)服務(wù)器。如此的話,分發(fā)服務(wù)器的內(nèi)容就跟發(fā)布服務(wù)器上的內(nèi)容保持一致。再對分發(fā)服務(wù)器執(zhí)行備份,就可以完成異地備份的策略了。
所以,通常情況下,如果企業(yè)的應(yīng)用場景符合上面四種情況的話,采用快照復(fù)制的效果會比較好。反之,則就需要考慮采用事務(wù)復(fù)制等其他的數(shù)據(jù)同步技術(shù)。
在使用快照復(fù)制技術(shù)的時(shí)候,筆者還有幾個(gè)善意的提醒。
一是快照復(fù)制技術(shù)可以在一定程度上實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)庫的功能。SQL Server數(shù)據(jù)庫到現(xiàn)在的版本為止,都不支持?jǐn)?shù)據(jù)庫橫向的擴(kuò)展。也就是說,不主張采用多個(gè)服務(wù)器來分擔(dān)主服務(wù)器的負(fù)擔(dān)。微軟一直強(qiáng)調(diào)的是服務(wù)器的縱向拓展,如增加服務(wù)器的CPU數(shù)、增加內(nèi)存等等,來改善服務(wù)器的性能。使用快照復(fù)制技術(shù)可以使得數(shù)據(jù)的分布過程實(shí)現(xiàn)自動化,讓多個(gè)服務(wù)器之間自動實(shí)現(xiàn)數(shù)據(jù)的同步,以適應(yīng)企業(yè)不同程度的需要。當(dāng)企業(yè)擴(kuò)展時(shí),可以增加額外的數(shù)據(jù)庫服務(wù)器,來減輕主服務(wù)器的工作負(fù)荷并提高數(shù)據(jù)的使用效率。這也就在一定程度上實(shí)現(xiàn)了多服務(wù)器(網(wǎng)絡(luò)數(shù)據(jù)庫)的功能。不過這個(gè)功能有個(gè)限制,請看下面一個(gè)注意點(diǎn)。
二是快照復(fù)制技術(shù)基本上是單向的。也就是說,只可以從主服務(wù)器上對數(shù)據(jù)進(jìn)行快照復(fù)制,然后傳遞給其他的數(shù)據(jù)庫服務(wù)器。其他的數(shù)據(jù)庫服務(wù)器只能夠被動的接收主服務(wù)器過來的快照。而不能夠把自己服務(wù)器的數(shù)據(jù)的變化情況反饋給主服務(wù)器。這就跟我們通常所說的網(wǎng)絡(luò)服務(wù)器有一個(gè)本質(zhì)的區(qū)別。網(wǎng)絡(luò)服務(wù)器的話,各個(gè)子服務(wù)器上更改的數(shù)據(jù),可以在相互的服務(wù)器上進(jìn)行同步。所以,若要利用快照服務(wù)器來實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)器的功能,以減輕主服務(wù)器的負(fù)荷,這里往往有一個(gè)部署上的技巧。就是對于子服務(wù)器來說,只接受查詢的功能。也就是說,把一些報(bào)表生成、數(shù)據(jù)查詢的任務(wù)交給子服務(wù)器來做。而把數(shù)據(jù)更新等任務(wù)則仍然交給主服務(wù)器來完成。
三是對一些數(shù)據(jù)突然變更的情況,可以采用強(qiáng)制復(fù)制與強(qiáng)制訂閱。如在發(fā)布服務(wù)器上(發(fā)布服務(wù)器是快照復(fù)制中對于主服務(wù)器的專業(yè)稱呼)數(shù)據(jù)發(fā)生了變更,則不管數(shù)據(jù)庫管理員設(shè)置的時(shí)間有沒有到,可以強(qiáng)制對發(fā)布服務(wù)器執(zhí)行快照復(fù)制。并且把它傳輸?shù)椒职l(fā)服務(wù)器上,強(qiáng)制采用更新后的數(shù)據(jù)。這就是強(qiáng)制訂閱。強(qiáng)制訂閱通常用在發(fā)生數(shù)據(jù)更改時(shí)必須立即發(fā)送更改到訂閱服務(wù)器的這種類型的應(yīng)用中。如在08年1月1日早上1點(diǎn)某個(gè)超市要對所有的商品價(jià)格進(jìn)行調(diào)價(jià)。此時(shí),調(diào)價(jià)完成后,就必須采用強(qiáng)制訂閱業(yè)務(wù),同步其他的一些價(jià)格查詢服務(wù)器上的數(shù)據(jù)。當(dāng)客戶在查詢機(jī)上查詢價(jià)格的時(shí)候,查到的是其調(diào)整后的價(jià)格。這就是強(qiáng)制訂閱的一種典型應(yīng)用。但是,若數(shù)據(jù)變更比較頻繁,則采用這種強(qiáng)制訂閱的話,很可能造成系統(tǒng)或者網(wǎng)絡(luò)的癱瘓。數(shù)據(jù)庫管理員在這一點(diǎn)上要引起重視。
四是從2005以后的版本中,包括剛推出的2008版本,引入了對Internet技術(shù)的支持。通過復(fù)制,可以把數(shù)據(jù)發(fā)布到Internet上,提高了數(shù)據(jù)庫中數(shù)據(jù)的使用效率。不過在Internet上復(fù)制數(shù)據(jù)時(shí),要注意幾個(gè)問題。一是要保證發(fā)布服務(wù)器和分發(fā)服務(wù)器在網(wǎng)絡(luò)防火墻的同一端,而不能夠位于防火墻的兩側(cè),負(fù)責(zé)的話,數(shù)據(jù)復(fù)制將不會成功。二是要保證發(fā)布服務(wù)器和分發(fā)服務(wù)器有直接的連接,而并發(fā)只有互聯(lián)網(wǎng)這一種連接方式。三是目前它支持TCP/IP協(xié)議。只有這個(gè)協(xié)議正常運(yùn)行,才可以進(jìn)行互聯(lián)網(wǎng)上的復(fù)制。同時(shí)要注意的問題就是互聯(lián)網(wǎng)的帶寬問題。帶寬的多少,直接影響著數(shù)據(jù)復(fù)制的效率問題。
總之,快照復(fù)制的出現(xiàn),為SQL Server各個(gè)數(shù)據(jù)庫之間數(shù)據(jù)的同步提供了一種捷徑,是保障SQL Server數(shù)據(jù)一致性的法寶。
關(guān)鍵詞標(biāo)簽:SQL Server
相關(guān)閱讀
熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構(gòu)的關(guān)系
人氣排行 配置和注冊O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫 SQL2000數(shù)據(jù)庫遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫服務(wù)端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法