摘要:所謂數(shù)據(jù)復制,就是將數(shù)據(jù)庫中的數(shù)據(jù)資源復制到一個或多個不同的物理站點上。數(shù)據(jù)復制技術可以有效地保證目標數(shù)據(jù)庫與源數(shù)據(jù)庫的中數(shù)據(jù)的一致性。 目前,很多領域都會用到數(shù)據(jù)復制技術,如分布對象系統(tǒng)、移動計算和分布式數(shù)據(jù)庫系統(tǒng)等。
關鍵詞:網(wǎng)格;數(shù)據(jù)傳輸;數(shù)據(jù)復制
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2015)27-0045-03
Abstract: The so-called data replication, is the database in the data resources to one or more different physical sites. Data replication technology can effectively ensure the consistency of the data in the target database and the source database. At present, data replication technology is used in many fields, such as distributed object system, mobile computing and distributed database system.
Key words: grid; data transmission; data replication
1 數(shù)據(jù)復制的概念
所謂數(shù)據(jù)復制,就是將數(shù)據(jù)庫中的數(shù)據(jù)資源復制到一個或多個不同的物理站點上。數(shù)據(jù)復制技術可以有效地保證目標數(shù)據(jù)庫與源數(shù)據(jù)庫的中數(shù)據(jù)的一致性。
1.1 訪問地有效性
我們在進行數(shù)據(jù)處理里,有時候受到網(wǎng)絡的限制無法使用廣域網(wǎng)WAN,為了可以繼續(xù)訪問本地數(shù)據(jù),我們可以采用數(shù)據(jù)復制技術。在復制時,用戶可以直接在本地訊問數(shù)據(jù),非常方便,而不用通過數(shù)據(jù)庫之間的網(wǎng)絡連接來獲取用戶需要的數(shù)據(jù)資源。
1.2 縮短響應時間
數(shù)據(jù)復制可以縮短數(shù)據(jù)請求的響應時間,其原因如下:
1)由于數(shù)據(jù)復制的請求是在本地服務器上進行的,不需要訪問網(wǎng)絡,所以檢索速度更快。
2)在本地服務器上處理數(shù)據(jù)減輕了中心數(shù)據(jù)庫服務器的負擔,同時也緩解了對處理器時間的爭用。
1.3 事務的完整性
確保每個數(shù)據(jù)庫始終保持事務完整性是任何復制系統(tǒng)都面臨的挑戰(zhàn)。Replication Server 和 SQL Remote 按以下方式復制事務日志的各個部分,因此在復制期間可保持事務的完整性。
MobiLink合并多個已提交的事務中所做的更改。這些更改以單個事務的方式應用到另一數(shù)據(jù)庫中。
1.4 數(shù)據(jù)的準確性
我們在數(shù)據(jù)復制時,要使整個系統(tǒng)中的數(shù)據(jù)保持一致,提高數(shù)據(jù)的準確性。復制系統(tǒng)在整個體系中將工作時所做的改變以準確無誤的方式復制到其他站點上,但是不同的站點在同一時間擁有不同的數(shù)據(jù)副本。
2 數(shù)據(jù)復制的分類
在數(shù)據(jù)復制技術中,復制配置和復制類型是兩個重要方面,是區(qū)別不同復制技術的主要指標。配置,指的是有多少個源服務器被復制到多少個目標服務器,包括一對一復制、一對多復制、多對一復制、多對多復制。復制類型,指的是程序如何在兩個系統(tǒng)之間進行數(shù)據(jù)同步,一個復制解決方案可能根據(jù)計劃好的時間間隔來使數(shù)據(jù)保持同步,也可以用同步復制或異步復制的方式連續(xù)進行數(shù)據(jù)復制。數(shù)據(jù)復制類型主要有以下幾種:
1)同步復制
在一個同步復制環(huán)境中,為了確保目標系統(tǒng)上最高程度的數(shù)據(jù)整體性,數(shù)據(jù)必須在主系統(tǒng)完成寫入之前被寫入到目標系統(tǒng)中。一方面,同步復制使得無論何時,目標系統(tǒng)上的數(shù)據(jù)都與源系統(tǒng)數(shù)據(jù)完全相同;另一方面,同步復制也可能導致源系統(tǒng)的性能延遲,尤其是在兩個系統(tǒng)間的網(wǎng)絡連接速度比較慢的情況下,延遲問題更為嚴重。
2)異步復制
在異步復制時,復制軟件會對數(shù)據(jù)進行排隊,然后在網(wǎng)絡可用期間在系統(tǒng)之間批處理地傳遞改變的數(shù)據(jù),源系統(tǒng)在執(zhí)行前不會等候目標系統(tǒng)的確認。為了保持數(shù)據(jù)的完整性,有些解決方案將同步和異步復制操作組合在一起:當發(fā)生通訊問題時,同步復制會轉為異步復制;當通訊問題解決后,又會轉回同步方式。
3)計劃復制
對有些用途而言,連續(xù)的復制不是理想的方案,采用計劃復制更為適宜。在這種復制方式中,變化的數(shù)據(jù)將按預先設定的時間間隔被同步復制。
數(shù)據(jù)復制技術的應用范圍非常廣,不同的范圍內(nèi),復制的目標數(shù)據(jù)、數(shù)據(jù)復制粒度及重要技術都有很大差別。如分布數(shù)據(jù)庫、分布對象和移動計算等,這些應用領域和分布式儲存關系非常密切。分布數(shù)據(jù)庫系統(tǒng)的關鍵技術是非常有效的數(shù)據(jù)復制技術,它可以幫助我們有效地提高數(shù)據(jù)庫系統(tǒng)的性能,如增強系統(tǒng)容錯能力、改善數(shù)據(jù)訪問性能和實現(xiàn)數(shù)據(jù)系統(tǒng)的負載平衡等。
由于移動環(huán)境下網(wǎng)絡帶寬低、速度慢。如果采用數(shù)據(jù)復制技術,可以根據(jù)當前用戶的訪問需求和分布情況,進行動態(tài)數(shù)據(jù)復制。這樣做的好處是:可以使移動用戶就近訪問并復制所需的數(shù)據(jù),大大提高訪問的性能。
3 數(shù)據(jù)網(wǎng)格中的數(shù)據(jù)復制技術
為了改善數(shù)據(jù)網(wǎng)格系統(tǒng)性能,我們在網(wǎng)絡系統(tǒng)中大范圍地使用了數(shù)據(jù)復制技術。與傳統(tǒng)分布式系統(tǒng)應用領域中的復制相比,數(shù)據(jù)網(wǎng)格中的復制技術在復制目標、復制粒度、復制關鍵技術等方面表現(xiàn)出獨特性質(zhì)。數(shù)據(jù)網(wǎng)格系統(tǒng)中,采用數(shù)據(jù)復制技術的目的是為了節(jié)省網(wǎng)絡帶寬、減少系統(tǒng)的訪問時間等。在使用數(shù)據(jù)復制技術時通過數(shù)據(jù)在網(wǎng)格中的流動,實現(xiàn)數(shù)據(jù)網(wǎng)格系統(tǒng)的性能優(yōu)化,也就是根據(jù)用戶的訪問需求和數(shù)據(jù)網(wǎng)格系統(tǒng)的數(shù)據(jù)特征自動將數(shù)據(jù)流復制到不同的網(wǎng)格節(jié)點或服務器上。
3.1 在網(wǎng)格中數(shù)據(jù)復制的特點
數(shù)據(jù)復制技術可以多個服務器上建立數(shù)據(jù)備份,如果我們在操作過程中發(fā)現(xiàn)某個服務器中的數(shù)據(jù)出錯,就可以使用其他服務器進行操作,這樣可以提高數(shù)據(jù)的準確性和數(shù)據(jù)的可用性。數(shù)據(jù)復制技術為了提高使用效率,降低傳輸負載,一般都會將遠程服務器中的數(shù)據(jù)復制到本地服務器,讓用戶就近訪問并復制所需的數(shù)據(jù),大大提高訪問的性能。但是,網(wǎng)格中的數(shù)據(jù)復制技術與分布對象等、分布數(shù)據(jù)庫中的復制技術相比,還有一些問題要注意改進。
1)在數(shù)據(jù)系統(tǒng)中,用戶可以把數(shù)據(jù)存儲為一般文件、XML文件及各類數(shù)據(jù)庫文件等;
2)而在數(shù)據(jù)網(wǎng)格系統(tǒng)中,需要充分考慮網(wǎng)絡開銷,這和數(shù)據(jù)庫、分布對象系統(tǒng)選擇副本時是不同的,只在減少網(wǎng)絡開銷,才能提高使用數(shù)據(jù)的速度;
3)在數(shù)據(jù)網(wǎng)格系統(tǒng)中,由于網(wǎng)格環(huán)境是呈動態(tài)性的,而且數(shù)據(jù)副本的數(shù)量可達幾百甚至更多,存在巨大的數(shù)據(jù)量,為了對副本進行有效管理;我們必須采用合理的動態(tài)副本創(chuàng)建策略才能滿足要求;
4)一方面,數(shù)據(jù)網(wǎng)格系統(tǒng)中的數(shù)據(jù)量巨大,且操作頻率很高,整個文件的內(nèi)容會被一個操作改寫。這和傳統(tǒng)的數(shù)據(jù)庫中副本同步時幾個小事務的操作有著很大的不同;而另一方面,數(shù)據(jù)網(wǎng)格中的數(shù)據(jù)廣泛分布和復制在WAN上,更加靈活,一般的保持副本一致性算法并不適用于此。
3.2 在數(shù)據(jù)網(wǎng)格中對復制系統(tǒng)的相關需求
根據(jù)網(wǎng)絡系統(tǒng)特點和對數(shù)據(jù)復制技術的分析,我們在使用數(shù)據(jù)網(wǎng)格下的數(shù)據(jù)復制系統(tǒng)需要注意以下幾點需求:
1)動態(tài)性:在創(chuàng)建副本時,復制系統(tǒng)可以按需動態(tài)創(chuàng)建副本和刪除副本;
2)適應性:復制系統(tǒng)需要考慮各種網(wǎng)絡問題,如本地網(wǎng)速、用戶網(wǎng)速以及訪問失敗等多種情況;
3)安全性:在創(chuàng)建副本時,應保證用戶數(shù)據(jù)訪問的安全,不讓有圖謀的他人進入;
4)有效性:復制系統(tǒng)創(chuàng)建副本時必須考慮資源和時間的開銷,用自己能利用的資源設計出最佳方案;
5)靈活性:復制系統(tǒng)能夠根據(jù)操作需要,靈活創(chuàng)建、刪除和管理副本。
3.3 數(shù)據(jù)網(wǎng)格復制
Globus中數(shù)據(jù)管理的另一個基本服務是復制(replica management),Globus中數(shù)據(jù)的復制管理主要是針對遠程的大型數(shù)據(jù)庫文件進行訪問。replica的原意是指復制品,即在文件復制時要與其本身保持一致性。為了滿足這個要求,在復制管理體系結構中,必須要有一個支持WAN的分布式數(shù)據(jù)庫。這樣就可以在對文件復制時進行修改。同時,在原子操作時對文件進行加密。
在Globus項目中沒有采用復雜的分布數(shù)據(jù)庫。Globus中的復制管理服務實際上沒有按照“replica”的一般語義進行實現(xiàn),而是對“replica”語義放寬了限制,對于文件的多個復制操作,Globus的復制服務不會主動執(zhí)行任何操作來檢查確保文件的一致性。而當用戶在復制一個注冊的邏輯集合文件時,則需要由操作來保持數(shù)據(jù)文件之間的一致性。
在分布式計算的環(huán)境中,有時會遇到計算失敗,或網(wǎng)絡問題,這就給我們的復制管理服務提出了更高的要求,可以快速從錯誤中回復,并保持數(shù)據(jù)的一致性。在Globus的復制管理服務功能中只能夠保證注冊文件的一致性,但不能保證存儲在復制管理服務中信息的一致性。
Globus復制目錄服務可以使科學應用程序快速地進行數(shù)據(jù)訪問,它是Globus復制管理的核。其工作原理是智能地把部分相關數(shù)據(jù)放置在離科學應用程序最近的位置。復制管理服務的功能主要包括:注冊新的拷貝到復制目錄中以、創(chuàng)建全部或部分文件集合的新拷貝、允許用戶查詢復制目錄來找到部分或全部文件集合的拷貝。
4 基于網(wǎng)格環(huán)境中的數(shù)據(jù)復制具體實現(xiàn)
在網(wǎng)格環(huán)境中,我們在數(shù)據(jù)復制前要對具體問題進行具體分析,做好規(guī)劃與設計。這就需要我們在設計時必須確定出需要復制的數(shù)據(jù)對象、數(shù)據(jù)庫站點及類型、沖突解決方案、同步方式等內(nèi)容。從而設計出一套詳實并能滿足實際業(yè)務需求的合理方案。在進行詳細的規(guī)劃與設計后,我們就可以按計劃實現(xiàn)數(shù)據(jù)復制,具體操作如下:
1)創(chuàng)建數(shù)據(jù)復制站點;
2)創(chuàng)建組對象;
3)配置合理、詳實的解決沖突方案。
下面,我們舉例說明相關操作。我們會設置主控站點和共享數(shù)據(jù)表各兩個,采用多主控站點復制方式。
主控站點分別為處理站點(handle.world)和解釋站點(explain.world);數(shù)據(jù)表分別為測區(qū)(region)和測線(line)。
1)用系統(tǒng)身份進行登錄并訪問主站點數(shù)據(jù)庫。
2)為每個復制站點創(chuàng)建新用戶,并為其授權復制管理員身份,其主要任務是負責創(chuàng)建并管理復制的站點,其代碼如下圖所示:
3)指定本站點的propagator,其主要職責是將本地的最新數(shù)據(jù)傳播到其他站點上,完成任務。
4)指定本站點的receiver,其主要職責是接收其他站點上的propagator傳輸過來的數(shù)據(jù),其代碼如下圖所示:
5)為了提高運行速度,我們需要定時清除已經(jīng)加載的事務,在本例中設定每小時清除一次。這樣做的目的是避免事務隊列過長。
6)調(diào)度數(shù)據(jù)庫鏈接
我們用同樣的方法法創(chuàng)建處理站點(handle.world)和解釋站點(explain.world)。創(chuàng)建的過程如下:首先,需要先在各個主控站點之間建立數(shù)據(jù)庫鏈接,我們需要先建立一個公用的數(shù)據(jù)庫鏈接,讓它為其他私有數(shù)據(jù)庫鏈接提供服務。同時,我們需要在解釋站點(explain.world)上建立與處理站點(handle.world)的數(shù)據(jù)庫鏈接。其次,我們要為每個數(shù)據(jù)庫鏈接定義系統(tǒng)調(diào)度的時間。
5 解決數(shù)據(jù)復制中的沖突問題
在進行數(shù)據(jù)庫系統(tǒng)和應用程序設計過程中,設計者會考慮到?jīng)_突的問題,在設計時進行優(yōu)化操作,但是站點之間的沖突問題并不能完全避免。一旦發(fā)生沖突,就需要采用沖突解決機制來處理,從而保證各站點數(shù)據(jù)的一致性。我們可以通過以下幾種方法來解決上述問題:
5.1 查看出錯命令的具體內(nèi)容
當出現(xiàn)復制沖突問題時,我們要及時了解哪些數(shù)據(jù)容易出現(xiàn)沖突。在系統(tǒng)中,靜態(tài)數(shù)據(jù)很少出現(xiàn)沖突,發(fā)生沖突的主要是一些變化較大的動態(tài)數(shù)據(jù)。了解這一情況之后,我們要根據(jù)情況來解決沖突問題。其方法有如下幾種,方法1:建立各站點間的優(yōu)先次序,在數(shù)據(jù)不一致時,系統(tǒng)以基準站點上的數(shù)據(jù)為準;方法2:當數(shù)據(jù)不一致時,系統(tǒng)以某個站點上最新更新的修改為準。
雖然數(shù)據(jù)庫中提供了很多解決方案來避免沖突,如針對更新沖突、刪除沖突、唯一性沖突等多種沖突的解決方案。這些方案都有相應的適用范圍,用戶可以根據(jù)具體的業(yè)務情況來選擇合適的方案來解決沖突問題。除了這些系統(tǒng)中的方案以外,我們還可以通過自定義方案的方法來處理沖突問題。
5.2 比較數(shù)據(jù)之間的差異
如果遇到一些查詢復制出錯的語句,使用人工處理同步失敗時相對容易。但是當復制錯誤的命令很多時,就會比較麻煩,使用以上方法難以處理。這種情況下,我們一般會選擇忽略失敗的復制命令,然后通過比較訂閱表的數(shù)據(jù)之間的差異來解決問題 。
在具體的數(shù)據(jù)復制應用中,還有許多復雜的問題亟需解決,這些問題需要我們在實際應用中繼續(xù)研究,深入探索。
參考文獻:
[1] 南菊松. 分布式數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)分配算法研究[D].華中科技大學,2013.
[2] 鄒鈺. 淺談網(wǎng)絡安全策略[J].科學之友,2011(4):155.
[3] 王東喆. SharePoint數(shù)據(jù)復制系統(tǒng)的設計與實現(xiàn)[D].吉林大學,2010.
[4] 尹振鶴. 淺析網(wǎng)絡管理技術[J].科技視界,2013(8):104.