摘 要:在傳統(tǒng)數據庫同步技術基礎上,針對數據集成系統(tǒng)的異構性,研究了一種新的基于事務日志的數據同步模型。通過對異構DBMS的事務日志進行分析,提出一種通用的事務日志的變化捕獲方法,結合數據庫的事務工作過程,在窗口機制的約束下將提取的增量數據按照統(tǒng)一的規(guī)范集成到共享數據庫形成全局模式,再將增量數據加載到共享端實現數據過濾和映射。實驗結果表明,在正確設置具體應用環(huán)境下的時間窗口時,該模型可有效降低數據同步的時間開銷,保證了數據一致性。
關鍵詞:異構性;事務日志;數據變化捕獲;數據同步
引言
為了屏蔽異構的應用系統(tǒng)在集成共享數據庫時造成的“信息孤島”局面,需要將異構的數據副本(replica)集成到統(tǒng)一數據平臺,按照預處理規(guī)則完成數據變化捕獲、數據分發(fā)、數據轉儲與加載,以及沖突數據的檢測和解決,以向用戶提供統(tǒng)一的數據全局模式[1-2],實現數據的同步更新。
數據的同步更新方法中:文件傳輸方法[3]的缺點是效率和可靠性較差。數據復制方法[4]將主節(jié)點的數據更新副本拷貝到從節(jié)點并修改從節(jié)點上的副本,主要應用在具有高自治性的分布式數據庫系統(tǒng)中。數據變化捕獲[5](Change Data Capture,CDC)方法利用觸發(fā)器、時間戳機制,將數據更新記錄到CDC初始化時創(chuàng)建的表或者隊列進行發(fā)布。CDC方法在近幾年的數據同步領域獲得了關注,通過它不僅能獲得待同步副本對象的變化序列或當前映像,還能提供詳細的控制信息[6]。而CDC方式主要有下面幾種,其主要性能參數如表1所示[7-8]。
然而,上述所有CDC方法都不能完全實現實時、雙向和增量同步,文獻[9]基于數據庫日志的CDC方法可以實現對不同的日志類型進行分析,并利用應用程序接口讀取日志文件,分析了針對不同類型日志文件的可靠性讀取規(guī)則和方法,但是對數據變化捕獲算法缺乏深入的研究,而且缺少統(tǒng)一描述。文獻[10]的RTDWH是數據倉庫中的CDC方法,雖然可以保證數據更新的成功率,但是對事務處理性能耗損較大。
因此,文章提出一種異構環(huán)境下的基于事務日志的數據同步模型(Transaction Log-based Data Synchronous Model,TLDS),從事務角度闡述了主要模塊的工作流程和原理。此外通過對事務日志的結構進行深入分析,設計了基于事務日志的變化捕獲算法。最后進行了實驗并對結果進行分析,保證了數據更新效果的同時對系統(tǒng)的性能影響也有所降低。
1 TLDS模型
TLDS模型要達到如下功能:各業(yè)務子系統(tǒng)維護的共享數據能實時同步到共享數據庫中;對于已經進入統(tǒng)一數據共享與交換平臺的數據,可以提供自動實時同步或者按需手動同步。按照該功能需求,結合數據交互工具OGG的工作原理,設計如圖1的TLDS模型。
1.1 事務日志
事務日志記錄一系列事務對數據庫更新的日志序列,是維護數據完整性和一致性的重要依據,包括所有數據操作語言(DML)和數據定義語言(DDL)的記錄。它以事務為單位持續(xù)寫入,記錄了在每個事務期間,對數據的更改及撤消更改所需的控制信息,包括事務開始(表示為
1.2 數據變化捕獲、傳輸、轉換與加載
(1)數據變化引起新事務產生,該新事務由LGWR寫入日志后,標識該日志記錄的LSN和該事務的TID會相繼自增。日志的提取操作從初始時刻的head file開始,如果用戶對數據庫進行如下的事務操作:
TX={
直至polltime1設置的時間段結束,停止事務日志對數據的繼續(xù)讀取,記錄這個事務日志的LSN號作為捕獲檢查點(capture checkpoint)。由于事務TX1和TX4最終只有
(2)數據序列在等到trail傳送隊列的緩存被寫滿或者到達指定的時間,即達到2.3節(jié)設置的窗口邊界值的條件之后,停止數據傳送,并記錄還未寫入trail傳送隊列的事務日志的LSN號作為傳輸檢查點(pump checkpoint)。已提交的TX事務操作段內已經提交的事務序列有TX2和TX3,如圖2所示,pump checkpoint寫在
(3)對已傳送的事務進行數據轉換與加載,trail傳送隊列以元
組的形式記錄數據更新信息,將他們被發(fā)送到目的端后,對更新信息的主鍵值以及更新的前、后像值經過本地解析還原并創(chuàng)建出對應的SQL更新語句。利用數據庫的本地接口將這些SQL語句應用到目標端,實現目標DB的同步執(zhí)行。更新信息成功提交到數據庫后,也要記錄下這個事務日志的LSN號作為保留檢查點(replicat checkpoint)保存已經完成本地應用的位置,保持數據的完整性。
1.3 窗口機制
文章引入窗口機制,對事務日志定義了事務窗口、用戶需求窗口、時間周期大小窗口和緩沖區(qū)窗口等以避免數據處理不協(xié)調,而以時間周期窗口和緩沖區(qū)窗口較為常見。事務日志的關系如下:
(1)IF Ta.beginLSN (2)IF Tb.commitLSN 在以上條件下定義窗口的交替或者遷移。窗口的交替或者遷移可以由任何事件觸發(fā),觸發(fā)后產生事務集T={ti|Li∈tj,i∈LSN,j∈TId},即只要滿足: 兩個條件就能判定Ta,Tb∈Wk,即事務a和b都是屬于該窗口內的,并且Wk.l和Wk.r分別表示其左右邊界,其中的a,b,k均為自然數。 2 實驗結果及分析 實驗環(huán)境:分別使用WIN環(huán)境下的SQL server 2000和Oracle 11gR2,通過Exp/Imp保持SourceD, TargetDB相關Schema中的初始數據一致;安裝OGG,對源數據庫的歸檔模式、最小附加日志模式和強制日志等參數進行設置;分別建立ggate測試用戶,添加manager管理服務;分別開啟復制隊列和同步隊列并添加檢查點表;開啟同步任務。實驗結果如表2所示。 結果及分析:根據上述結果,會發(fā)現日志文件規(guī)模影響到數據同步時間和同步發(fā)生頻率。日志文件規(guī)模較小時,同步發(fā)生頻率可以稍微偏高,日志分析工具的運行會影響數據庫效率,這種發(fā)生頻率主要應用在對實時性要求相對高的場合;但是日志文件規(guī)模設置較大時,又會出現數據同步時間過長(必須在晚上等非工作時間運行),主要應用到對數據實時性要求不高的場合。 3 前景展望 文章通過事務日志的分析,研究了一種TLDS模型,在忽略異構數據庫的DBMS、數據模式、數據類型的基礎上,實現已有的業(yè)務系統(tǒng)和共享數據庫之間的數據同步,使數據在本地更改的同時傳送到其他業(yè)務節(jié)點上,并對該節(jié)點上的數據副本進行修改。下一步的工作是針對異構數據源日志的可靠性讀取及相關的應用問題進行更加深入的研究。 參考文獻 [1]Pucciani G,Domenici A,Donno F,et al.A performance study on the synchronisation of heterogeneous Grid databases using CONStanza[J].Future Generation Computer Systems,2010,26(6):820-834. [2]Gustafsson T,Hansson J.Dynamic on-demand updating of data in real-time database systems[C].SAC '04 Proceedings of the 2004 ACM symposium on Applied computing. New York:ACM,2004. [3]張虎,董小社,伍衛(wèi)國,等.一種基于日志合并優(yōu)化的數據同步機制[J].小型微型計算機系統(tǒng),2006,27(12):2183-2188. [4]Saito Y,Shapiro M.Optimistic Replication[J].ACM Computing Surve ys (CSUR),2005,37(1):42-81. [5]Dan Snoddy,James Spyker,Mir Rupik,et al.Change Data Capture: what is it and how it impacts solution architecture[C].CASCON '09 Proceedings of the 2009 Conference of the Center for Advanced Studies on Collaborative Research.Riverton,New Jersey:IBM Corporat ion,2009. [6]許力,馬瑞新.基于快照比對的增量數據捕獲研究與實現[C].第三屆全國信息檢索與內容安全學術會議,蘇州,2007. [7]劉勝,楊岳湘,鄧勁生,等.基于關鍵屬性比對的增量數據抽取方法[J].計算機工程與應用,2012,48(4):115-117. [8]張春玲,呂震宇,劉遵峰.基于虛擬日志壓縮的數據同步方案[J].計算機工程,2010,36(18):67-69. [9]鄒先霞,賈維嘉,潘久輝.基于數據庫日志的變化數據捕獲研究[J].小型微型計算機系統(tǒng),2012,33(3):532-536. [10]Shi Jin-gang, Bao Yu-bin, Leng Fang-ling, et al.Study on Log-Based Change Data Capture and Handling Mechanism in Real-Time Data Warehouse[C].Proceedings of 2008 International Conference on Computer Science and Software Engineering,Wuhan, Hubei:IEEE Conference Publications,2008.