《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 多源異構環(huán)境下數(shù)據(jù)同步復制技術的研究
多源異構環(huán)境下數(shù)據(jù)同步復制技術的研究
2015年微型機與應用第22期
顧倩文,曾獻輝
(東華大學 信息科學與技術學院,上海 201620)
摘要: 針對多源異構環(huán)境下數(shù)據(jù)的特點,提出一種數(shù)據(jù)同步復制新方案。該方案解決了多源異構環(huán)境下數(shù)據(jù)庫的訪問,數(shù)據(jù)的獲取與復制,動態(tài)數(shù)據(jù)源的處理以及同步過程中數(shù)據(jù)沖突與同步的實時性等問題。最后將所提出的方案應用于某省高速公路車輛監(jiān)控系統(tǒng)中,達到了實際應用要求,表明了該方案的正確性與有效性。
Abstract:
Key words :

  摘  要: 針對多源異構環(huán)境下數(shù)據(jù)的特點,提出一種數(shù)據(jù)同步復制新方案。該方案解決了多源異構環(huán)境下數(shù)據(jù)庫的訪問,數(shù)據(jù)的獲取與復制,動態(tài)數(shù)據(jù)源的處理以及同步過程中數(shù)據(jù)沖突與同步的實時性等問題。最后將所提出的方案應用于某省高速公路車輛監(jiān)控系統(tǒng)中,達到了實際應用要求,表明了該方案的正確性與有效性。

  關鍵詞: 多源異構;數(shù)據(jù)同步復制;動態(tài)數(shù)據(jù)源;數(shù)據(jù)沖突

0 引言

  隨著計算機技術的不斷發(fā)展,各種不同數(shù)據(jù)結構類型的數(shù)據(jù)庫深入到不同的應用領域,尤其是那些地域上分散而管理上又相對集中的跨地域集團公司或者企業(yè)單位[1]。雖然使用數(shù)據(jù)同步技術可以提高數(shù)據(jù)信息的集中管理,提高整個分布式數(shù)據(jù)庫系統(tǒng)的響應速度和可靠性[2],但是由于數(shù)據(jù)的異構性和多樣性,數(shù)據(jù)同步復制仍存在許多問題。本文針對數(shù)據(jù)同步復制中出現(xiàn)的問題,提出了一種多源異構數(shù)據(jù)同步復制的方法,該方法可以解決不同類型數(shù)據(jù)庫之間的訪問、數(shù)據(jù)的實時獲取與復制、同步過程中數(shù)據(jù)沖突以及實際應用中數(shù)據(jù)源動態(tài)產(chǎn)生的處理、系統(tǒng)中斷數(shù)據(jù)丟失等問題。

1 多源異構數(shù)據(jù)同步復制技術

  1.1 傳統(tǒng)的數(shù)據(jù)同步復制技術

  傳統(tǒng)的分布式數(shù)據(jù)同步復制就是由數(shù)據(jù)庫自身同構復制技術實現(xiàn)的,當源表發(fā)生變化時,由數(shù)據(jù)庫引擎引發(fā)同步事件,把源表中變化的數(shù)據(jù)同步更新到目標數(shù)據(jù)庫中,但是這種復制技術只能在同構數(shù)據(jù)庫之間使用[2]。

  目前各數(shù)據(jù)庫開發(fā)商在各自的數(shù)據(jù)庫同構復制的基礎上提出了異構數(shù)據(jù)庫的復制方案,例如Microsoft SQL Server提出了出版者/預訂者同步方案[3-6],Oracle中采用多主復制和物化視圖的方案來實現(xiàn)數(shù)據(jù)同步的功能[4-6],DB使用CCD表來實現(xiàn)異構數(shù)據(jù)庫之間的復制。雖然各廠商研發(fā)出輔助工具更好地完善了數(shù)據(jù)同步復制的功能,但是復制方案仍依賴于自己的數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)核心技術,不能保證完全與DBMS無關。

  1.2 多源異構數(shù)據(jù)的同步復制

001.jpg

  通常情況下,多源異構數(shù)據(jù)所在的分布式網(wǎng)絡結構如圖1所示。圖中下級數(shù)據(jù)庫存在多個且分布在不同的物理位置上,它們的表結構甚至采用的系統(tǒng)也不一樣。

  與傳統(tǒng)數(shù)據(jù)同步相比,多源異構數(shù)據(jù)的同步復制存在如下幾個難點:(1)多個下級服務器的數(shù)據(jù)庫會因為使用各種不同的數(shù)據(jù)模型來表示和存儲數(shù)據(jù),導致數(shù)據(jù)格式的混亂,訪問接口獨立。(2)需同步復制的下級數(shù)據(jù)源是動態(tài)的,比如下級數(shù)據(jù)庫中某些表是按日或月動態(tài)生成的。(3)某些情況下,不能對下級數(shù)據(jù)庫的表結構進行任何改變。當表是動態(tài)生成時,無法修改表結構因此不能利用數(shù)據(jù)庫本身的復制功能。(4)同步過程中能對重復的數(shù)據(jù)進行過濾并進行沖突處理。

2 多源異構數(shù)據(jù)同步復制方案

  從多源異構環(huán)境下的數(shù)據(jù)同步特點可以看出,數(shù)據(jù)同步復制要解決的問題包括:(1)異構數(shù)據(jù)庫的訪問;(2)數(shù)據(jù)的獲取與復制;(3)動態(tài)數(shù)據(jù)源的處理;(4)數(shù)據(jù)沖突與同步實時性。

  2.1 異構數(shù)據(jù)庫的訪問

  當前主流的數(shù)據(jù)庫類型有SQL Server、Oracle、Mysql、DB2D等。針對不同類型的數(shù)據(jù)庫,本文采用ADO技術訪問數(shù)據(jù)庫,其連接數(shù)據(jù)庫的形式為:“Provider=SQLOLEDB.1/SQLNCLI10.1;Data Source=%s;Presist Security Info=False;User ID=%s;Password=%s;Initial Catalog=%s”,其中:Provider針對數(shù)據(jù)源不同,可選擇SQLOLEDB.1和SQLNCLI10.1兩種驅(qū)動方式。

  2.2 數(shù)據(jù)的獲取與復制

  數(shù)據(jù)的獲取與復制指從下級源數(shù)據(jù)庫中讀取數(shù)據(jù),然后將所讀取的數(shù)據(jù)復制到上級數(shù)據(jù)庫中并標記同步完成的過程。根據(jù)下級數(shù)據(jù)源中表結構有可修改與不可修改兩種情況,分別設計方案:

 ?。?)表結構可修改時,在下級數(shù)據(jù)庫的表中增加新字段int sendok,并設置字段的默認值為0。每同步成功一條數(shù)據(jù),將sendok字段的值設置為1,若沒有同步成功,仍設置為0,其流程圖如圖2所示。

002.jpg

 ?。?)表結構不允許修改時,在上級數(shù)據(jù)庫中新建輔助表來記錄下級數(shù)據(jù)庫的同步操作過程。設置同步跟蹤記錄的表名為Track,表中字段定義如表1所示。

006.jpg

  在同步過程中,下級數(shù)據(jù)庫中的數(shù)據(jù)是不斷更新的,需要設置定時同步復制機制來完成同步。首先需要獲取當前的系統(tǒng)時間和最近一次上傳的結束時間,若當前系統(tǒng)時間小于上次上傳的結束時間,則放棄本次更新,等待下次更新。若當前系統(tǒng)時間大于上次結束時間,則進行該時間段內(nèi)新數(shù)據(jù)的同步操作。同步后,判斷此次操作是否成功,成功置1,否則置0,并在追蹤表中記錄操作,流程圖如圖3所示。

003.jpg

  2.3 動態(tài)數(shù)據(jù)源的處理

  在下級數(shù)據(jù)庫中,由于不同數(shù)據(jù)庫中表的創(chuàng)建方式不同,有些下級是按日或按月來動態(tài)生成新表,會增加上級對下級數(shù)據(jù)源的查找難度,此時需根據(jù)表形成的規(guī)律來查找。例如有些數(shù)據(jù)源中表是以固定字符加年月日作為表名,需獲取表的名稱,再根據(jù)表形成的規(guī)律自動拼裝來獲取日期信息。同步復制前,系統(tǒng)需要檢測是否有新表,若存在新表則進行數(shù)據(jù)同步的操作,不存在則退出。

  2.4 數(shù)據(jù)沖突與同步實時性

  與傳統(tǒng)數(shù)據(jù)同步復制不同,多源異構下的數(shù)據(jù)沖突主要是由于網(wǎng)絡異常造成的重復同步,以及為了保證數(shù)據(jù)一致性而不斷檢查與復制下級數(shù)據(jù)源等造成的。因此在設計上級數(shù)據(jù)庫中表的屬性時,設定表的主鍵,對每條數(shù)據(jù)同步時先檢查相同主鍵的記錄是否存在,如果存在則返回。

  同步的實時性取決于數(shù)據(jù)上傳的時間間隔,時間間隔越短,實時性越好,但計算機與網(wǎng)絡負荷越大;反之,實時性差,計算機與網(wǎng)絡負荷就小。為了解決這個矛盾,可采用動態(tài)緩存機制提高同步的實時性,即將已同步數(shù)據(jù)的主鍵及關鍵字段信息,動態(tài)地保存在內(nèi)存緩存中,從而有效地減少了計算機與網(wǎng)絡的負擔。

3 多源異構下數(shù)據(jù)同步復制技術的應用

  為了驗證所提出方案的正確性和有效性,結合某省高速公路車輛監(jiān)控系統(tǒng)的數(shù)據(jù)同步任務進行實際應用研究。

  在高速公路網(wǎng)絡系統(tǒng)中,收費站出入口以及眾多斷面節(jié)點基本實現(xiàn)了全線無盲點監(jiān)控,各個地點的子系統(tǒng)均記錄了所經(jīng)車輛的車牌、時間、車型等流水信息。為了實現(xiàn)對車輛在整個交通網(wǎng)絡中運行情況的監(jiān)控,首要的任務就是將這些分散于各子系統(tǒng)的車輛流水數(shù)據(jù)實時同步復制到一個中心數(shù)據(jù)庫中。

  3.1 軟件的設計

  通過分析,高速公路系統(tǒng)數(shù)據(jù)源可歸納為三類:收費站、主線卡口和服務區(qū),其特點如下:(1)存在的數(shù)據(jù)庫管理系統(tǒng)有SQL Server 2000、SQL Server 2008、Oracle 9i;(2)數(shù)據(jù)存放的方式多樣,包括單一表、按月生成表、按日生成表等;(3)有些表結構可修改,有些表結構不能修改,比如按月生成表的情況,因此無法獲得生成表的源代碼。

  為了實現(xiàn)對以上情況的靈活處理,軟件以XML格式的方式配置數(shù)據(jù)源的情況,同時利用多線程技術實現(xiàn)對多個數(shù)據(jù)源的同時處理,整個軟件的總體結構如圖4所示。

004.jpg

  3.2 系統(tǒng)實現(xiàn)

  高速公路車輛數(shù)據(jù)采集系統(tǒng)提供對全線各子系統(tǒng)中的車輛流水數(shù)據(jù)的實時收集功能,即實現(xiàn)對各個分散數(shù)據(jù)源的異構數(shù)據(jù)的同步復制。該軟件系統(tǒng)以Visual C++語言進行開發(fā),利用本文提出的多源異構下數(shù)據(jù)同步復制方案,并結合多線程技術提升軟件的運行效率。整個系統(tǒng)的運行界面如圖5所示。

005.jpg

  從圖5可以看出,該系統(tǒng)可同時將多個下級數(shù)據(jù)源的數(shù)據(jù)同步復制到一個上級數(shù)據(jù)庫服務器中,實現(xiàn)對車輛流水數(shù)據(jù)的集中整合。該系統(tǒng)經(jīng)實際測試,已實現(xiàn)了23 h不間斷運行,數(shù)據(jù)同步復制未發(fā)現(xiàn)多出一條記錄或者少一條記錄,數(shù)據(jù)正確率100%,在系統(tǒng)可靠性與數(shù)據(jù)完整性方面均達到了數(shù)據(jù)同步復制的要求。

4 結論

  本文針對多源異構數(shù)據(jù)同步的實時性、可靠性、通用性的需求進行了研究,提出了一種數(shù)據(jù)同步復制方案,解決了異構環(huán)境下數(shù)據(jù)庫之間數(shù)據(jù)共享的問題,并結合高速公路監(jiān)控系統(tǒng)的實際項目進行了測試,驗證了該方案具有可實用性并取得了預期的效果。

  參考文獻

  [1] 胡金龍,許衛(wèi),房福龍.異構數(shù)據(jù)庫同步復制技術研究與實現(xiàn)[J].長江科學院院報,2011,6(28):71-75.

  [2] 王婉菲,張志浩.分布式數(shù)據(jù)庫系統(tǒng)的復制機制及應用[J].計算機工程與科學,2003,25(1):88-91.

  [3] 楊鵬.異構數(shù)據(jù)庫同步中間件技術的研究與實現(xiàn)[D].長沙:國防科學技術大學,2007.

  [4] 趙中華.基于XML的異地異構數(shù)據(jù)庫的數(shù)據(jù)同步技術的研究[D].濟南:山東輕工業(yè)學院,2009.

  [5] 譚德才.基于郵件系統(tǒng)的遠程異構數(shù)據(jù)庫同步的設計與實現(xiàn)[D].廣州:華南理工大學,2010.

  [6] 姜亦學.分布式數(shù)據(jù)庫系統(tǒng)同步技術研究[D].長春:長春理工大學,2008.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉(zhuǎn)載。
主站蜘蛛池模板: 国内精品一区二区三区app| 无码精品日韩中文字幕| 亚洲美女又黄又爽在线观看| 老扒的幸福时光| 国产在线jyzzjyzz免费麻豆| 男女xx动态图| 国产超爽人人爽人人做| jjizz全部免费看片| 成人免费漫画在线播放| 久久99精品国产99久久6男男| 日韩黄在线观看免费视频| 亚洲国产午夜精品理论片| 欧美黄色免费看| 在线91精品亚洲网站精品成人| 一本色道无码不卡在线观看| 挺进男同的屁股眼o漫画| 久久天天躁狠狠躁夜夜2020一| 欧美一级va在线视频免费播放| 亚洲欧洲自拍拍偷午夜色无码| 色综合色综合色综合色综合网| 国产成人麻豆亚洲综合无码精品| 色狠狠一区二区三区香蕉蜜桃| 国产自产视频在线观看香蕉| china男男versios| 好男人资源视频在线播放| 中国人免费观看高清在线观看二区| 日日躁夜夜躁狠狠天天| 久久国产色av| 日韩在线一区视频| 乱肉妇岳奶水小说| 樱桃视频影院在线播放| 亚洲另类无码专区丝袜| 欧美成人免费全部观看在线看 | 啊灬啊灬别停啊灬用力啊| 色老头成人免费综合视频| 国产三级电影网站| 18av黄动漫网站在线观看| 国产韩国精品一区二区三区| 97av在线播放| 国产高清在线精品一区| 91视频最新地址|