1. 程式人生 > >多源異構環境下資料庫的同步複製技術研究

多源異構環境下資料庫的同步複製技術研究

摘 要: 針對多源異構環境下資料的特點,提出一種資料同步複製新方案。該方案解決了多源異構環境下資料庫的訪問,資料的獲取與複製,動態資料來源的處理以及同步過程中資料衝突與同步的實時性等問題。最後將所提出的方案應用於某省高速公路車輛監控系統中,達到了實際應用要求,表明了該方案的正確性與有效性。

0 引言

隨著計算機技術的不斷髮展,各種不同資料結構型別的資料庫深入到不同的應用領域,尤其是那些地域上分散而管理上又相對集中的跨地域集團公司或者企業單位[1]。雖然使用資料同步技術可以提高資料資訊的集中管理,提高整個分散式資料庫系統的響應速度和可靠性[2],但是由於資料的異構性和多樣性,資料同步複製仍存在許多問題。本文針對資料同步複製中出現的問題,提出了一種多源異構資料同步複製的方法,該方法可以解決不同型別資料庫之間的訪問、資料的實時獲取與複製、同步過程中資料衝突以及實際應用中資料來源動態產生的處理、系統中斷資料丟失等問題。

1 多源異構資料同步複製技術

1.1 傳統的資料同步複製技術

傳統的分散式資料同步複製就是由資料庫自身同構複製技術實現的,當源表發生變化時,由資料庫引擎引發同步事件,把源表中變化的資料同步更新到目標資料庫中,但是這種複製技術只能在同構資料庫之間使用[2]。

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

1.2 多源異構資料的同步複製

多源異構環境下資料同步複製技術的研究

通常情況下,多源異構資料所在的分散式網路結構如圖1所示。圖中下級資料庫存在多個且分佈在不同的物理位置上,它們的表結構甚至採用的系統也不一樣。

與傳統資料同步相比,多源異構資料的同步複製存在如下幾個難點:(1)多個下級伺服器的資料庫會因為使用各種不同的資料模型來表示和儲存資料,導致資料格式的混亂,訪問介面獨立。(2)需同步複製的下級資料來源是動態的,比如下級資料庫中某些表是按日或月動態生成的。(3)某些情況下,不能對下級資料庫的表結構進行任何改變。當表是動態生成時,無法修改表結構因此不能利用資料庫本身的複製功能。(4)同步過程中能對重複的資料進行過濾並進行衝突處理。

2 多源異構資料同步複製方案

從多源異構環境下的資料同步特點可以看出,資料同步複製要解決的問題包括:(1)異構資料庫的訪問;(2)資料的獲取與複製;(3)動態資料來源的處理;(4)資料衝突與同步實時性。

2.1 異構資料庫的訪問

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

2.2 資料的獲取與複製

資料的獲取與複製指從下級源資料庫中讀取資料,然後將所讀取的資料複製到上級資料庫中並標記同步完成的過程。根據下級資料來源中表結構有可修改與不可修改兩種情況,分別設計方案:

(1)表結構可修改時,在下級資料庫的表中增加新欄位int sendok,並設定欄位的預設值為0。每同步成功一條資料,將sendok欄位的值設定為1,若沒有同步成功,仍設定為0,其流程圖如圖2所示。

多源異構環境下資料同步複製技術的研究

(2)表結構不允許修改時,在上級資料庫中新建輔助表來記錄下級資料庫的同步操作過程。設定同步跟蹤記錄的表名為Track,表中欄位定義如表1所示。

多源異構環境下資料同步複製技術的研究

在同步過程中,下級資料庫中的資料是不斷更新的,需要設定定時同步複製機制來完成同步。首先需要獲取當前的系統時間和最近一次上傳的結束時間,若當前系統時間小於上次上傳的結束時間,則放棄本次更新,等待下次更新。若當前系統時間大於上次結束時間,則進行該時間段內新資料的同步操作。同步後,判斷此次操作是否成功,成功置1,否則置0,並在追蹤表中記錄操作,流程圖如圖3所示。

多源異構環境下資料同步複製技術的研究

2.3 動態資料來源的處理

在下級資料庫中,由於不同資料庫中表的建立方式不同,有些下級是按日或按月來動態生成新表,會增加上級對下級資料來源的查詢難度,此時需根據表形成的規律來查詢。例如有些資料來源中表是以固定字元加年月日作為表名,需獲取表的名稱,再根據表形成的規律自動拼裝來獲取日期資訊。同步複製前,系統需要檢測是否有新表,若存在新表則進行資料同步的操作,不存在則退出。

2.4 資料衝突與同步實時性

與傳統資料同步複製不同,多源異構下的資料衝突主要是由於網路異常造成的重複同步,以及為了保證資料一致性而不斷檢查與複製下級資料來源等造成的。因此在設計上級資料庫中表的屬性時,設定表的主鍵,對每條資料同步時先檢查相同主鍵的記錄是否存在,如果存在則返回。

同步的實時性取決於資料上傳的時間間隔,時間間隔越短,實時性越好,但計算機與網路負荷越大;反之,實時性差,計算機與網路負荷就小。為了解決這個矛盾,可採用動態快取機制提高同步的實時性,即將已同步資料的主鍵及關鍵欄位資訊,動態地儲存在記憶體快取中,從而有效地減少了計算機與網路的負擔。

3 多源異構下資料同步複製技術的應用

為了驗證所提出方案的正確性和有效性,結合某省高速公路車輛監控系統的資料同步任務進行實際應用研究。

在高速公路網路系統中,收費站出入口以及眾多斷面節點基本實現了全線無盲點監控,各個地點的子系統均記錄了所經車輛的車牌、時間、車型等流水資訊。為了實現對車輛在整個交通網路中執行情況的監控,首要的任務就是將這些分散於各子系統的車輛流水資料實時同步複製到一箇中心資料庫中。

3.1 軟體的設計

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

為了實現對以上情況的靈活處理,軟體以XML格式的方式配置資料來源的情況,同時利用多執行緒技術實現對多個數據源的同時處理,整個軟體的總體結構如圖4所示。

多源異構環境下資料同步複製技術的研究

3.2 系統實現

高速公路車輛資料採集系統提供對全線各子系統中的車輛流水資料的實時收集功能,即實現對各個分散資料來源的異構資料的同步複製。該軟體系統以Visual C++語言進行開發,利用本文提出的多源異構下資料同步複製方案,並結合多執行緒技術提升軟體的執行效率。整個系統的執行介面如圖5所示。

多源異構環境下資料同步複製技術的研究

從圖5可以看出,該系統可同時將多個下級資料來源的資料同步複製到一個上級資料庫伺服器中,實現對車輛流水資料的集中整合。該系統經實際測試,已實現了23 h不間斷執行,資料同步複製未發現多出一條記錄或者少一條記錄,資料正確率100%,在系統可靠性與資料完整性方面均達到了資料同步複製的要求。

4 結論

本文針對多源異構資料同步的實時性、可靠性、通用性的需求進行了研究,提出了一種資料同步複製方案,解決了異構環境下資料庫之間資料共享的問題,並結合高速公路監控系統的實際專案進行了測試,驗證了該方案具有可實用性並取得了預期的效果。

參考文獻

[1] 胡金龍,許衛,房福龍.異構資料庫同步複製技術研究與實現[J].長江科學院院報,2011,6(28):71-75.

[2] 王婉菲,張志浩.分散式資料庫系統的複製機制及應用[J].計算機工程與科學,2003,25(1):88-91.

[3] 楊鵬.異構資料庫同步中介軟體技術的研究與實現[D].長沙:國防科學技術大學,2007.

[4] 趙中華.基於XML的異地異構資料庫的資料同步技術的研究[D].濟南:山東輕工業學院,2009.

[5] 譚德才.基於郵件系統的遠端異構資料庫同步的設計與實現[D].廣州:華南理工大學,2010.

[6] 姜亦學.分散式資料庫系統同步技術研究[D].長春:長春理工大學,2008.

相關推薦

環境資料庫同步複製技術研究

摘 要: 針對多源異構環境下資料的特點,提出一種資料同步複製新方案。該方案解決了多源異構環境下資料庫的訪問,資料的獲取與複製,動態資料來源的處理以及同步過程中資料衝突與同步的實時性等問題。最後將所提出的方案應用於某省高速公路車輛監控系統中,達到了實際應用要求,表明了該方案的正確性與有效性。 0 引言 隨著計

如何在環境(兩個伺服器的Network Interface名稱不一致)建立VCS NIC資源

VCS的NIC資源是一個非常常用的資源,若你使用VCS做浮動IP,則定會使用到NIC資源。 在一些環境下,VCS叢集節點是異構的,意思就是伺服器的配置不是完全一致的,通常存在的就是網絡卡名稱不一致,如一臺伺服器svr1的網絡卡為bge0並對應的作業系統上的Network Interface為eth0

什麼是資料?

在企業資訊化建設過程中,由於各業務系統建設和實施資料管理系統的階段性、技術性以及其它經濟和人為因素等因素影響,導致企業在發展過程中積累了大量採用不同儲存方式的業務資料,包括採用的資料管理系統也大不相同,從簡單的檔案資料庫到複雜的網路資料庫,它們構成了企業的異構資

資料庫同步複製技術

SQLServer2000同步複製技術實現步驟 作者:gaojier 日期:2007-06-25 字型大小: 小 中 大 一、 預備工作 1.釋出伺服器,訂閱伺服器都建立一個同名的windows使用者,並設定相同的密碼,

【簡介】DSG RealSync資料庫同步複製容災軟體

容災備份異地容災資料容災容災系統資料同步複製採集歸檔檢索集中分發容災方案異地容災備份遠端容災容災技術異地容災方案oracle容災容災方案異地容災資料容災容災是什麼容災系統異地容災備份oracle容災容災備份資料容災系統異構容災方案下載EMCSRDF容災技術和業務連續性服務方,IBMPPRC,HPBusines

[ZZ] 如何在版本anaconda python環境轉換spyder

過程 pda 名稱 -- idt anaconda rip gin div https://www.zhihu.com/people/alexwhu/answers 使用anaconda的話,可以參考以下步驟: 1、打開anaconda navigator

創龍TI AM5728工業控制處理器

mco 教程 blog 工業機器人 image sgx 技術分享 ESS uart 由廣州創龍自主研發的SOM-TL5728核心板,基於TI-AM5728浮點雙DSP+雙ARM核,大小僅86.5mm*60.5mm,性能強、成本低、性價比高。采用沈金無鉛工藝的10層板設計,專

工序、機臺(產線)環境的排程要點

個性 即使 個性化 hang 等待 機制 範圍 暫時 org 關於生產計劃排程的種類及其特性 釋義:文中提到的資源,是指需要完成一個生產作業(或稱任務,生產任務)所需的生產條件,例如機臺、原料等,稱為廣義資源。 對於生產計劃,常見有以下四種類型: 單一工序,單一資源種

Eureka的自我保護模式、網絡卡環境的IP選擇和健康檢查

Eureka的自我保護模式 禁用自我保護模式: eureka.server.enable-self-preservation = false 多網絡卡環境下的IP選擇 對於多網絡卡的伺服器,各個微服務註冊到Eureka Server上的IP要如何指定呢? 指定IP在某些場合下

離線資料同步神器:DataX,支援幾乎所有資料來源的離線同步到MaxCompute

摘要: 概述 DataX 是阿里巴巴集團內被廣泛使用的離線資料同步工具/平臺,實現包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各種異構資料來源之間高效的資料同步功能。

Elasticsearch學習-----第二章 windows環境Elasticsearch同步mysql數據庫

mysql數據庫 kibana user 窗口 上下 pass targe mov 解決 在上一章中,我們已經能夠通過spring boot來使用Elasticsearch,但是由於我們習慣性的將數據寫入mysql,所以為了解決這個問題,Elasticsearch為我們提供

如何在版本anaconda python環境轉換spyder?

1、開啟anaconda navigator,選擇左側的環境選單 Environments,在中間會列出當前已經配置好的各種環境名稱,如root、tensorflow等 2、在中間環境列表框下邊,選擇建立 Create,建立新的環境和對應配置,在這裡,你可以命名自己的環境名稱,選擇python的版本等,然後

執行緒/程序環境,計算系統的總響應時間

通過一個多道程式設計的具體例子,來看看多道程式設計時計算機裡面事件的發生順序和多道程式設計環境下系統響應時間的提升。 假定我們有4個程式,每個程式花費80%的時間進行I/O,20%的時間使用CPU

資料遷移經驗總結——億級別的資料遷移工作

由於系統改版,最近三個月在做資料遷移工作,由於業務的特殊,基本將資料遷移所能踩的坑都踩了一遍,決定好好做個總結。 遷移型別——新老系統表結構變化較大的歷史資料 一、核心問題 1.新老表結構變化極大。新表是以deliver為核心,另外還涉及倉儲系統的一張表,訂單系統的4張表,

Spring Cloud 網絡卡環境Eureka服務註冊IP選擇問題

問題場景 伺服器上分別配置了eth0, eth1和eth2三塊網絡卡,只有eth1的地址可供其它機器訪問,eth0和eth2的 IP 無效。在這種情況下,服務註冊時Eureka Client會自動選擇eth0作為服務ip, 導致其它服務無法呼叫由於官方並沒有寫明Eureka

解決網絡卡環境使用特定網絡卡廣播UDP訊息的問題

多網絡卡環境下發送UDP廣播到特定網路通常有以下幾種方式: 將socket繫結到特定網絡卡ip; 使用socket選項; 遍歷網絡卡; 設定路由表。 繫結到特定IP 建立socket後將其繫結到特定IP地址,則傳送廣播詳細的時候會通過此網絡卡傳送。如果我們的

OMAPL通訊驅動AD9833波形發生器-Notify元件

OMAPL多核異構通訊驅動AD9833-Notify元件demo OMAPL多核通訊有三個主要機制,Notify,MessageQ,RegionShare;這裡主要利用了Notify機制進行通訊控制。 要做一個什麼實驗? 簡單的說,ARM跑一個介面上面

MySQL生產環境的主從複製啟動項

MySQL的複製引數除了我們之前搭建主從時遇到的那幾個之外,還有以下兩個: 1、log-slave-updates 這個引數用來配置從庫上是否啟動了二進位制日誌的功能,預設是不開啟的,如果開啟了那麼從庫上的更新操作將會被記錄到二進位制日誌中。 不過在級聯複製的架構中,比如某個從庫A也要作為其他伺服器的主

weblogic 12C叢集環境的session複製

做過weblogic叢集環境的人應該都清楚,要想實現session同步,必須滿足兩個條件:第一,在weblogic.xml裡面增加session同步相關的程式碼;第二,所有放入session的類都要序列化。    但是,我終於還是栽了。兩個條件明明都滿足了,但就是“有些”物件就是不能同步。    我以前使用s

資料庫同步資料庫複製技術

 在面對當今,網路的應用市場來看,對資料庫的要求也有了不同的需求,所以資料的同步和資料的複製,成為了一個亮點, 如何針對不同的應用選擇不同的產品,需要我們必須清楚資料庫同步和資料庫複製的具體含義。 無論概念如何定義,我們都必須清楚,這兩種操作的基礎是資料庫中的資料,但是