異構(gòu)數(shù)據(jù)庫(kù)的變化捕捉和動(dòng)態(tài)同步策略研究與比較_第1頁(yè)
異構(gòu)數(shù)據(jù)庫(kù)的變化捕捉和動(dòng)態(tài)同步策略研究與比較_第2頁(yè)
異構(gòu)數(shù)據(jù)庫(kù)的變化捕捉和動(dòng)態(tài)同步策略研究與比較_第3頁(yè)
異構(gòu)數(shù)據(jù)庫(kù)的變化捕捉和動(dòng)態(tài)同步策略研究與比較_第4頁(yè)
異構(gòu)數(shù)據(jù)庫(kù)的變化捕捉和動(dòng)態(tài)同步策略研究與比較_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、異構(gòu)數(shù)據(jù)庫(kù)的變化捕捉和動(dòng)態(tài)同步策略的研究與比較摘 要 隨著信息技術(shù)的發(fā)展, 信息量的爆炸性的增加異構(gòu)數(shù)據(jù)庫(kù)間, 如何進(jìn)行有效 的動(dòng)態(tài)同步已經(jīng)成為研究的熱點(diǎn)。本文綜述了異構(gòu)數(shù)據(jù)庫(kù)動(dòng)態(tài)捕捉的常用的策略和技 術(shù),并分析了這些策略的優(yōu)缺點(diǎn), 為研究人員如何選取自身合適的同步策略提供了基礎(chǔ)。關(guān)鍵詞 異構(gòu)數(shù)據(jù)庫(kù) 同步 動(dòng)態(tài) 捕捉1 研究背景與意義在當(dāng)今信息爆炸的年代里, 隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展和分布式計(jì)算的廣泛應(yīng) 用,大大方便了企業(yè)的跨地域發(fā)展。 許多單位和科研機(jī)構(gòu)通過(guò)不斷重組和分散經(jīng) 營(yíng)來(lái)提高效率, 形成了分散、 異構(gòu)的環(huán)境特點(diǎn)。 這些機(jī)構(gòu)在地域上雖然分散, 但 在管理上相對(duì)集中, 往往既要有各機(jī)構(gòu)的局

2、部控制和分散管理, 各部門的協(xié)同工 作要求各自擁有的信息數(shù)據(jù)能夠靈活交流。 而從安全性、可用性及自治性來(lái)考慮, 分散信息資源的異地自主分布是最自然甚至必然的選擇。 這使得保證分布式數(shù)據(jù) 的一致性成為迫切需要。 數(shù)據(jù)同步技術(shù)能夠有效保證各數(shù)據(jù)副本的一致性, 使用 戶應(yīng)用只需訪問(wèn)本地副本而避免訪問(wèn)遠(yuǎn)程數(shù)據(jù), 減少數(shù)據(jù)訪問(wèn)延遲, 提高用戶應(yīng) 用性能;一致的多個(gè)數(shù)據(jù)副本允許提供更多的數(shù)據(jù)服務(wù), 進(jìn)而增大數(shù)據(jù)訪問(wèn)吞吐 量,增強(qiáng)數(shù)據(jù)可用性;同時(shí),多數(shù)據(jù)副本可以應(yīng)對(duì)不可測(cè)因素造成的數(shù)據(jù)丟失, 有利于保證數(shù)據(jù)的可靠性。 目前, 在特定的網(wǎng)絡(luò)應(yīng)用環(huán)境下, 如何有效地解決異 構(gòu)數(shù)據(jù)庫(kù)間的數(shù)據(jù)同步問(wèn)題已經(jīng)成為數(shù)據(jù)庫(kù)

3、系統(tǒng)應(yīng)用的重要環(huán)節(jié)。 異構(gòu)數(shù)據(jù)庫(kù)同 步問(wèn)題已越來(lái)越引起許多專家學(xué)者的重視,在他們的許多重要文獻(xiàn)中都有所涉 及,但從總體來(lái)說(shuō), 對(duì)異構(gòu)數(shù)據(jù)庫(kù)同步的研究在許多方面還處于探索階段, 需要 迸一步工作的地方還很多。 因此, 無(wú)論從理論研究還是實(shí)際應(yīng)用角度, 對(duì)基于異 構(gòu)數(shù)據(jù)庫(kù)同步的研究都具有非常重要的意義。2 數(shù)據(jù)同步方法分類對(duì)象變化捕獲是數(shù)據(jù)同步的基礎(chǔ), 它直接決定了數(shù)據(jù)同步的更新方式和選時(shí) 方式。變化捕獲不僅要獲得復(fù)制對(duì)象的變化序列或當(dāng)前映像, 還要在對(duì)等式復(fù)制 時(shí)提供盡可能詳細(xì)的控制信息。 通過(guò)對(duì)當(dāng)前使用捕獲方法的綜合分析, 目前主要 有七種基本變化捕獲形式,它們是: (1) 基于快照法; (2

4、) 基于觸發(fā)器法; (3) 基 于日志法; (4) 基于 API 法;(5) 基于時(shí)間戳法; (6) 影子表法; (7) 變更軌跡表法。21基于快照法該技術(shù)是最簡(jiǎn)單的數(shù)據(jù)捕獲技術(shù)。其基本原理是周期性的提取源數(shù)據(jù)庫(kù)系統(tǒng) 中的數(shù)據(jù)快照加載到目標(biāo)數(shù)據(jù)庫(kù)中??煺帐菙?shù)據(jù)庫(kù)中存儲(chǔ)對(duì)象在某一時(shí)刻的即時(shí) 映像。通過(guò)為同步對(duì)象定義一個(gè)快照或采用類似方法,可以將它的當(dāng)前映像作為更新副本的內(nèi)容。如圖1. 1所示。源數(shù)據(jù)那I成模塊】飛時(shí)刻數(shù)門時(shí)刻數(shù) 曲庫(kù)快照 據(jù)庫(kù)快照門時(shí)刻數(shù)T2時(shí)刻數(shù)變化信息關(guān)庫(kù)快照據(jù)庫(kù)快照?qǐng)D2. 1基于快照法快照法可以在任何數(shù)據(jù)庫(kù)甚至是其他結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù)源上實(shí)現(xiàn),它不需要依賴于特別的機(jī)制,

5、系統(tǒng)資源占用較小,容易管理和操作。但是由于對(duì)于 快照對(duì)象并不區(qū)分具體的變動(dòng)記錄,而且采用快照集合完全刷新,因此效率較低, 而且本方法不能用于同步復(fù)制和對(duì)等式復(fù)制。Oracle、SQL Server等常用的數(shù)據(jù)庫(kù)系統(tǒng)都提供了基于快照的捕獲方法。事實(shí)上它也是異構(gòu)數(shù)據(jù)集成過(guò)程中數(shù)據(jù) 復(fù)制過(guò)程實(shí)現(xiàn)的基礎(chǔ)。2. 2基于觸發(fā)器法觸發(fā)器是數(shù)據(jù)庫(kù)系統(tǒng)在特定的條件或某事件發(fā)生時(shí)調(diào)用的存儲(chǔ)過(guò)程。決定觸發(fā)的條件或事件的粒度和復(fù)雜性因數(shù)據(jù)庫(kù)而異。該技術(shù)與數(shù)據(jù)庫(kù)系統(tǒng)所支持的觸 發(fā)器緊密相關(guān)。因此,文件型存儲(chǔ)的數(shù)據(jù)庫(kù)系統(tǒng)和一些小型數(shù)據(jù)庫(kù)系統(tǒng)并不支持 該方法。在源數(shù)據(jù)庫(kù)為同步對(duì)象創(chuàng)建相應(yīng)的觸發(fā)器,當(dāng)對(duì)同步對(duì)象進(jìn)行修改、插

6、入或刪除等 DML (Dala Man ipulation Lan guage) 命令時(shí),觸發(fā)器被喚醒,將變 化傳播到目標(biāo)數(shù)據(jù)庫(kù)。如圖1. 2所示。基于觸發(fā)器法和基于快照法相比,克服了基于快照法的主要缺點(diǎn),極大提高 了系統(tǒng)效率,如果輔以其他機(jī)制,就可以用于同步復(fù)制和對(duì)等式復(fù)制。 但是基于觸發(fā)器捕獲法,使用的系統(tǒng)資源比較多,比較復(fù)雜的復(fù)制任務(wù)需要非常復(fù)雜的配 置和實(shí)施,管理極不方便。這種方法一般適合在那些有多觸發(fā)器機(jī)制的數(shù)據(jù)庫(kù)系 統(tǒng)中使用。Oracle的對(duì)稱復(fù)制(Symmetric Replication) 綜合應(yīng)用了快照和基于 觸發(fā)器兩種捕獲方法,并在許多細(xì)節(jié)上有獨(dú)特的設(shè)計(jì),使得它可以用于多種

7、類型 的復(fù)制。另外DIBAS系統(tǒng)也采用的是這種捕獲方法。2. 3基于日志法數(shù)據(jù)庫(kù)日志作為維護(hù)數(shù)據(jù)完整性和數(shù)據(jù)庫(kù)恢復(fù)的重要工具,其中已經(jīng)包含了全部成功提交的數(shù)據(jù)庫(kù)操作記錄信息。 基于日志法就是通過(guò)分析數(shù)據(jù)庫(kù)日志的這 些信息來(lái)捕獲復(fù)制對(duì)象的變化序列。如 INFORMIX!供的CDR就是通過(guò)讀取邏輯 日志來(lái)獲取變化信息的。如圖1. 3所示。!數(shù)據(jù)源日志日志流數(shù)據(jù)増量立件|目標(biāo)數(shù)齬庫(kù)圖2. 3基于日志法基于日志法不僅方便,而且也不會(huì)占用太多額外的系統(tǒng)資源, 對(duì)任何類型的 復(fù)制都適合,不但能提高效率和保證數(shù)據(jù)的完整性, 還能在對(duì)等式復(fù)制時(shí)提供詳 細(xì)的控制信息。但由于數(shù)據(jù)庫(kù)日志的格式是不公開(kāi)的, 因而不得

8、不基于某一同定 的數(shù)據(jù)庫(kù)日志分析工具或接口, 這給異構(gòu)數(shù)據(jù)庫(kù)復(fù)制帶來(lái)了問(wèn)題。另外,盡管都是利用數(shù)據(jù)庫(kù)日志獲取變化,但不同數(shù)據(jù)庫(kù)系統(tǒng)在具體細(xì)節(jié)上還是存在很大的差 異,這會(huì)給異構(gòu)數(shù)據(jù)庫(kù)復(fù)制帶來(lái)新的問(wèn)題。最后,很多情況下,DBA對(duì)數(shù)據(jù)庫(kù)日志的管理已經(jīng)很繁重、很復(fù)雜了,而基于日志法無(wú)疑會(huì)加重這種負(fù)擔(dān)。 在實(shí)際 應(yīng)用情況中,基于日志法是使用最普遍的變化捕獲方法,Sybase DB2,SQL Server 等主要商用數(shù)據(jù)庫(kù)都采用了這種捕獲方法.2. 4基于API的變化捕獲方法一些小型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)沒(méi)有觸發(fā)器和日志機(jī)制,另一些數(shù)據(jù)庫(kù)則因?yàn)槟承┰虿荒苁褂蒙鲜龅牟东@方法, 此時(shí)可以在應(yīng)用程序和數(shù)據(jù)庫(kù)之

9、間引入 一類中間件,由它提供一系列 API(包括ODBC/JDB驅(qū)動(dòng)程序),這些中間件在完 成應(yīng)用程序?qū)?shù)據(jù)庫(kù)修改的同時(shí), 也把復(fù)制對(duì)象的變化序列記錄下來(lái), 從而達(dá)到 捕獲的目的如圖1. 4所示。應(yīng)用秒序源數(shù)據(jù)郎捕獲中間件捕獲中間件數(shù)據(jù)變化瘁列口栩數(shù)據(jù)匪圖2.4基于API法它能夠?qū)嵰膊辉僭鎏碓谀撤N意義上,基于API方法可以看成是基于日志法的一個(gè)變種, 現(xiàn)基于曰志法的大多數(shù)優(yōu)點(diǎn),而且既會(huì)給異構(gòu)數(shù)據(jù)庫(kù)網(wǎng)步帶來(lái)便利,DBA的負(fù)擔(dān)。但是基于API法存在兩個(gè)嚴(yán)重缺陷:其一,對(duì)那些不經(jīng)過(guò) API操作 進(jìn)行的SQL語(yǔ)句而產(chǎn)生的數(shù)據(jù)變化,API是無(wú)法捕捉到的:其二,應(yīng)用程序的可 移植性差,當(dāng)從一種運(yùn)行環(huán)境(O

10、S、DBMS等)移植到另一種運(yùn)行環(huán)境時(shí),往往要 重新編寫應(yīng)用程序甚至改變數(shù)據(jù)庫(kù)模式。基于API法主要被ISV的產(chǎn)品使用。如SynchroLogic 的 SyneKit。2. 5基于影子表的變化捕獲方法許多情況下,源數(shù)據(jù)庫(kù)無(wú)須了解同步對(duì)象的每一次操作,只要知道最后總共發(fā)生了什么變化就足夠了。因此,可以在初始化時(shí)為同步對(duì)象表 T建立一個(gè)影子 (shadow)表S,也就是作一份當(dāng)時(shí)的拷貝,以后就可在適當(dāng)時(shí)機(jī)通過(guò)比較當(dāng)前T和S的內(nèi)容來(lái)獲取凈變化信息。如圖1. 5所示。源數(shù)則序T2時(shí)劇 対數(shù)農(nóng)盟TI吋刻 対象衷S1、彫了應(yīng)變化分析模塊入_!_ 一Z、區(qū)子衣變眶 分析槓塊J 一一 _-rfI TI時(shí)刻影子

11、表T對(duì)象表的 增星宿息MM口標(biāo)數(shù)掘用數(shù)據(jù)同歩橫塊數(shù)鬼同 步模塊J圖2. 5基于影子表法基于影子表法能在任何數(shù)據(jù)庫(kù)上實(shí)現(xiàn);應(yīng)用程序可以方便地在多種平臺(tái)間移 植,因此很適合解決異構(gòu)數(shù)據(jù)庫(kù)同步;影子表法的代價(jià)只有一倍的存儲(chǔ)空間和不 高的管理成本;由于得到的是凈變化值,傳輸效率還能進(jìn)一步提高。當(dāng)然基于影 子表法的缺點(diǎn)也很明顯:首先。它不符合單個(gè)節(jié)點(diǎn)的可串彳亍性的要求,中間過(guò)程的操作信息全部丟失,不能提供足夠的控制信息;其次,在判斷操作時(shí)間先后 時(shí)不可避免地會(huì)產(chǎn)生 FCLD(First Cha nge Last Detect),即先發(fā)生的操作后于 其它操作被實(shí)施同步)現(xiàn)象,這樣在對(duì)等式同步(即各個(gè)節(jié)點(diǎn)地

12、位平等,沒(méi)有主次, 相互同步)時(shí)就會(huì)出現(xiàn)許多問(wèn)題:最后,每次捕獲變化都需掃描整個(gè)T和S表,效率很低,隨著節(jié)點(diǎn)數(shù)目的增多會(huì)成為一個(gè)嚴(yán)重的性能瓶頸。在現(xiàn)實(shí)的應(yīng)用中 Syware開(kāi)發(fā)的DataSyc是使用影子表法的一個(gè)實(shí)例。2. 6基于控制表變化法基于控制表變化(Control Table Change)法就是為每個(gè)要同步的源表T創(chuàng)建 一個(gè)控制表C, C只包含T的主鍵字段Pk和一些控制信息字段,當(dāng)T中某個(gè)記錄 發(fā)生變化時(shí),C中同主鍵Pk的記錄也隨即被修改。這一過(guò)程通??梢酝ㄟ^(guò)觸發(fā)器實(shí)現(xiàn),到時(shí)候只需根據(jù) C就能知道T的變化信息。如圖2. 6所示。揑制流控制表C源數(shù)據(jù)庫(kù)I數(shù)據(jù)庫(kù)屮 某源衷別X控制表變化模

13、塊対象衷的 增屋信息數(shù)拯同I步模塊1數(shù)拯同步模塊冃標(biāo)數(shù)據(jù)庫(kù)圖2.6基于控制表變化法基于控制表變化法可以獲得同步對(duì)象的凈變化,運(yùn)行和傳輸效率都很高???制表占用的存儲(chǔ)空間小于影子表,而且易于管理。另外控制表中保存了修改時(shí)間、 操作者、節(jié)點(diǎn)等多種控制信息,彌補(bǔ)了解決同步?jīng)_突的不足。變更軌跡法實(shí)際上 是借用時(shí)間戳法和觸發(fā)器法技術(shù)來(lái)實(shí)現(xiàn)日志法的技術(shù)思想,雖然觸發(fā)器依然對(duì)數(shù)據(jù)庫(kù)平臺(tái)有依賴性,但是相比數(shù)據(jù)庫(kù)系統(tǒng)日志,采用變更軌跡法顯然具有更好的 開(kāi)放性和可移植性,并且繼承了日志法的優(yōu)點(diǎn)。但是對(duì)于多重定義和復(fù)雜的模式 交換時(shí),該方法有一定的困難。該方法最先由PeerDirect開(kāi)發(fā)的PDREt使用。2. 7

14、基于時(shí)間戳的變化捕獲方法時(shí)間戳變化捕捉法也稱數(shù)據(jù)庫(kù)掃描法,該方法概念上與快照法類似。主要的 區(qū)別是在時(shí)間戳法中,所有的記錄帶有他們自身最后被更新的時(shí)間信息。 這些時(shí) 間性的標(biāo)志,例如時(shí)間戳,提供了關(guān)于變化數(shù)據(jù)記錄捕獲的選取準(zhǔn)則。該方法的一個(gè)好處就是他不依賴于數(shù)據(jù)庫(kù)類型。 第二個(gè)好處是整個(gè)靜態(tài)捕獲 方法涉及的數(shù)據(jù)量比較小。如果業(yè)務(wù)系統(tǒng)不要求捕獲關(guān)鍵記錄的所有的變化過(guò)程 狀態(tài),該方法將是很適用。該技術(shù)存在的另外一個(gè)問(wèn)題是關(guān)于刪除的處理。在業(yè)務(wù)系統(tǒng)中,當(dāng)記錄不再有用而需要被刪除,為了通過(guò)時(shí)間戳捕獲應(yīng)用程序來(lái)捕獲 刪除操作,記錄只能標(biāo)示為非活動(dòng)狀態(tài)直到被捕獲后,才能從業(yè)務(wù)系統(tǒng)中被移除。 另外如果源數(shù)據(jù)

15、表中不含時(shí)間戳, 則需要對(duì)源系統(tǒng)進(jìn)行改造,否則將無(wú)法使用該 方法,這對(duì)遺留系統(tǒng)來(lái)說(shuō)通常不可行。3變動(dòng)數(shù)據(jù)捕獲技術(shù)的選取雖然我們看到有很多種變動(dòng)數(shù)據(jù)技術(shù)可以用于數(shù)據(jù)的增量更新,但是軟件領(lǐng)域沒(méi)有“銀彈(Silver Bullet),上述每個(gè)技術(shù)都有其明顯的優(yōu)缺點(diǎn),并且依賴 于業(yè)務(wù)領(lǐng)域的目標(biāo)定義和實(shí)際的技術(shù)實(shí)現(xiàn)環(huán)境,并沒(méi)有哪一種技術(shù)能完全取代其他技術(shù)作為通用的實(shí)施標(biāo)準(zhǔn)。表 3. 1中我們將各種技術(shù)對(duì)實(shí)際系統(tǒng)的影響及其 特點(diǎn)做一個(gè)簡(jiǎn)單上比較。表3. 1變化數(shù)據(jù)庫(kù)捕捉技術(shù)比較變化捕捉方法對(duì)元數(shù)據(jù)庫(kù)的影響對(duì)業(yè)務(wù)系統(tǒng)程序的影響實(shí)現(xiàn)過(guò)程的復(fù)雜度對(duì)源數(shù)據(jù)庫(kù) 平臺(tái)的依賴對(duì)業(yè)務(wù)系統(tǒng)性能的影響快照發(fā)無(wú)無(wú)低無(wú)低觸發(fā)器法高無(wú)適中高高日志法無(wú)無(wú)適中極高低API法無(wú)高高低高影子表法無(wú)無(wú)高無(wú)低控制表法高無(wú)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論