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