亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)庫(kù)同步方法及系統(tǒng)的制作方法

文檔序號(hào):6423095閱讀:137來(lái)源:國(guó)知局

專利名稱::數(shù)據(jù)庫(kù)同步方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及數(shù)據(jù)同步
技術(shù)領(lǐng)域
,更具體地說(shuō),涉及一種數(shù)據(jù)庫(kù)同步方法及系統(tǒng)。
背景技術(shù)
:在企業(yè)生產(chǎn)運(yùn)營(yíng)過(guò)程中,往往擁有多個(gè)系統(tǒng),而且這些系統(tǒng)之間需要相互配合,部分?jǐn)?shù)據(jù)需要在這些系統(tǒng)間共享,因此需要使這些共享數(shù)據(jù)在不同系統(tǒng)間保持同步。在現(xiàn)有技術(shù)中,由于不同系統(tǒng)的差異以及功能的不同,各系統(tǒng)中數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)并非完全一致,為同步這些共享數(shù)據(jù)通常需要為每個(gè)系統(tǒng)編寫同步程序。在數(shù)據(jù)同步過(guò)程中,由同步程序?qū)υ幢頂?shù)據(jù)進(jìn)行轉(zhuǎn)換,將轉(zhuǎn)換后的數(shù)據(jù)與目標(biāo)表中的數(shù)據(jù)進(jìn)行比對(duì),然后再對(duì)差異部分進(jìn)行增量同步。這種同步方式由于丟失了最初入表時(shí)的事務(wù)信息,必須在同步過(guò)程中同步對(duì)應(yīng)所有事務(wù)的差異部分的數(shù)據(jù),否則無(wú)法保證事務(wù)的完整性。這種同步方式不僅工作繁瑣,而且如果同步數(shù)據(jù)較多會(huì)導(dǎo)致數(shù)據(jù)庫(kù)事務(wù)過(guò)長(zhǎng),不僅會(huì)占用較多系統(tǒng)資源,而且有可能造成同步失敗。
發(fā)明內(nèi)容本發(fā)明實(shí)施例針對(duì)現(xiàn)有技術(shù)中存在的上述問題,提供一種數(shù)據(jù)庫(kù)同步方法及系統(tǒng),實(shí)現(xiàn)不同類型的數(shù)據(jù)庫(kù)以及異構(gòu)數(shù)據(jù)表之間的數(shù)據(jù)同步,降低同步過(guò)程對(duì)系統(tǒng)資源的消耗,保證同步過(guò)程的可靠性。為此,本發(fā)明實(shí)施例提供如下技術(shù)方案—種數(shù)據(jù)庫(kù)同步方法,包括實(shí)時(shí)捕捉源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及該數(shù)據(jù)變化對(duì)應(yīng)的事務(wù),并將捕捉到的變化信息及事務(wù)保存到中間數(shù)據(jù)庫(kù)中;根據(jù)中間數(shù)據(jù)庫(kù)中保存的變化信息確定需要同步的目標(biāo)數(shù)據(jù)庫(kù);將所述變化信息轉(zhuǎn)換為對(duì)應(yīng)所述目標(biāo)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù);將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)同時(shí)更新到所述目標(biāo)數(shù)據(jù)庫(kù)中。優(yōu)選地,所述實(shí)時(shí)捕捉源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及該變化信息對(duì)應(yīng)的事務(wù),并將捕捉到的變化信息及事務(wù)保存到中間數(shù)據(jù)庫(kù)中包括通過(guò)訪問源數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)接口獲得對(duì)源數(shù)據(jù)庫(kù)的操作信息;根據(jù)所述操作信息生成對(duì)應(yīng)源數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的SQL語(yǔ)句及事務(wù)序號(hào);將所述對(duì)應(yīng)源數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的SQL語(yǔ)句及事務(wù)序號(hào)保存到中間數(shù)據(jù)庫(kù)中。優(yōu)選地,所述根據(jù)中間數(shù)據(jù)庫(kù)中保存的變化信息確定需要同步的目標(biāo)數(shù)據(jù)庫(kù)包括根據(jù)中間數(shù)據(jù)庫(kù)中保存的SQL語(yǔ)句確定對(duì)源數(shù)據(jù)庫(kù)操作的數(shù)據(jù)表;根據(jù)配置文件查找使用所述數(shù)據(jù)表中數(shù)據(jù)的其他數(shù)據(jù)庫(kù);將查找到的使用所述數(shù)據(jù)表中數(shù)據(jù)的其他數(shù)據(jù)庫(kù)作為需要同步的目標(biāo)數(shù)據(jù)庫(kù)。優(yōu)選地,所述將所述變化信息轉(zhuǎn)換為對(duì)應(yīng)所述目標(biāo)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)包括根據(jù)所述中間數(shù)據(jù)庫(kù)中保存的SQL語(yǔ)句,得到對(duì)源數(shù)據(jù)庫(kù)的操作信息;根據(jù)所述目標(biāo)數(shù)據(jù)庫(kù)的類型及對(duì)應(yīng)該目標(biāo)數(shù)據(jù)庫(kù)的轉(zhuǎn)換規(guī)則,將得到的對(duì)源數(shù)據(jù)庫(kù)的操作信息生成符合目標(biāo)數(shù)據(jù)庫(kù)語(yǔ)法的SQL語(yǔ)句。優(yōu)選地,如果需要同步的目標(biāo)數(shù)據(jù)庫(kù)有多個(gè),則分別將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)更新到每個(gè)目標(biāo)數(shù)據(jù)庫(kù)中。一種數(shù)據(jù)同步系統(tǒng),包括捕捉單元,用于實(shí)時(shí)捕捉源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及該數(shù)據(jù)變化對(duì)應(yīng)的事務(wù),并將捕捉到的變化信息及事務(wù)保存到中間數(shù)據(jù)庫(kù)中;目標(biāo)數(shù)據(jù)庫(kù)確定單元,用于根據(jù)中間數(shù)據(jù)庫(kù)中保存的變化信息確定需要同步的目標(biāo)數(shù)據(jù)庫(kù);轉(zhuǎn)換單元,用于將所述變化信息轉(zhuǎn)換為對(duì)應(yīng)所述目標(biāo)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù);同步管理單元,用于將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)同時(shí)更新到所述目標(biāo)數(shù)據(jù)庫(kù)中。優(yōu)選地,所述捕捉單元包括操作信息獲取子單元,用于通過(guò)訪問源數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)接口獲得對(duì)源數(shù)據(jù)庫(kù)的操作fn息;變化信息生成子單元,用于根據(jù)所述操作信息生成對(duì)應(yīng)源數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的SQL語(yǔ)句及事務(wù)序號(hào);保存子單元,用于將所述對(duì)應(yīng)源數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的SQL語(yǔ)句及事務(wù)序號(hào)保存到中間數(shù)據(jù)庫(kù)中。優(yōu)選地,所述目標(biāo)數(shù)據(jù)庫(kù)確定單元包括數(shù)據(jù)表確定子單元,用于根據(jù)中間數(shù)據(jù)庫(kù)中保存的SQL語(yǔ)句確定對(duì)源數(shù)據(jù)庫(kù)操作的數(shù)據(jù)表;查找子單元,用于根據(jù)配置文件查找使用所述數(shù)據(jù)表中數(shù)據(jù)的其他數(shù)據(jù)庫(kù),將查找到的使用所述數(shù)據(jù)表中數(shù)據(jù)的其他數(shù)據(jù)庫(kù)作為需要同步的目標(biāo)數(shù)據(jù)庫(kù)。優(yōu)選地,所述轉(zhuǎn)換單元包括操作信息獲取子單元,用于根據(jù)所述中間數(shù)據(jù)庫(kù)中保存的SQL語(yǔ)句,得到對(duì)源數(shù)據(jù)庫(kù)的操作信息;目標(biāo)數(shù)據(jù)生成子單元,用于根據(jù)所述目標(biāo)數(shù)據(jù)庫(kù)的類型及對(duì)應(yīng)該目標(biāo)數(shù)據(jù)庫(kù)的轉(zhuǎn)換規(guī)則,將得到的對(duì)源數(shù)據(jù)庫(kù)的操作信息生成符合目標(biāo)數(shù)據(jù)庫(kù)語(yǔ)法的SQL語(yǔ)句。優(yōu)選地,如果需要同步的目標(biāo)數(shù)據(jù)庫(kù)有多個(gè),則所述同步管理單元分別將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)更新到每個(gè)目標(biāo)數(shù)據(jù)庫(kù)中。本發(fā)明實(shí)施例數(shù)據(jù)庫(kù)同步方法及系統(tǒng),通過(guò)實(shí)時(shí)捕捉源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及該數(shù)據(jù)變化對(duì)應(yīng)的事務(wù),并將捕捉到的變化信息及事務(wù)保存到中間數(shù)據(jù)庫(kù)中,將變化信息轉(zhuǎn)換為對(duì)應(yīng)目標(biāo)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù),然后將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)同時(shí)更新到所述目標(biāo)數(shù)據(jù)庫(kù)中。從而可以實(shí)現(xiàn)不同類型的數(shù)據(jù)庫(kù)以及異構(gòu)數(shù)據(jù)表之間的數(shù)據(jù)同步,而且,由于保存了事務(wù)信息,使得在一次數(shù)據(jù)同步過(guò)程中,只需將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)同步到相應(yīng)的目標(biāo)數(shù)據(jù)庫(kù)中,而無(wú)需在一次同步過(guò)程中同步對(duì)應(yīng)所有事務(wù)的差異數(shù)據(jù)即可保證數(shù)據(jù)的一致性,因而大大降低成了同步過(guò)程對(duì)系統(tǒng)資源的消耗,保證了同步過(guò)程的可5靠性。為了更清楚地說(shuō)明本發(fā)明實(shí)施的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例數(shù)據(jù)庫(kù)同步方法的流程圖;圖2是本發(fā)明實(shí)施例數(shù)據(jù)庫(kù)同步系統(tǒng)的一種結(jié)構(gòu)示意圖。具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。如圖1所示,是本發(fā)明實(shí)施例數(shù)據(jù)庫(kù)同步方法的流程圖,包括以下步驟步驟101,實(shí)時(shí)捕捉源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及該變化信息對(duì)應(yīng)的事務(wù),并將捕捉到的變化信息及事務(wù)保存到中間數(shù)據(jù)庫(kù)中。在本發(fā)明實(shí)施例中,可以通過(guò)訪問源數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)接口獲得對(duì)源數(shù)據(jù)庫(kù)的操作信息,比如利用JDBC(JavaDataBaseConnectivity,Java數(shù)據(jù)庫(kù)連接)提供的Java程序訪問源數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)接口來(lái)獲得對(duì)源數(shù)據(jù)庫(kù)的操作信息,當(dāng)然,也可以采用其他能夠訪問數(shù)據(jù)庫(kù)接口的程序,對(duì)此本發(fā)明實(shí)施例不做限定。然后,根據(jù)獲得的對(duì)源數(shù)據(jù)庫(kù)的操作信息生成對(duì)應(yīng)源數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的SQL語(yǔ)句及事務(wù)序號(hào),將這些信息保存到中間數(shù)據(jù)庫(kù)中。也就是說(shuō),中間數(shù)據(jù)庫(kù)中記錄的內(nèi)容可以是符合源數(shù)據(jù)庫(kù)語(yǔ)法的SQL語(yǔ)句和事務(wù)序號(hào)。需要說(shuō)明的是,對(duì)源數(shù)據(jù)庫(kù)的操作可以是數(shù)據(jù)表中信息的增加、修改、或刪除等操作。例如,通過(guò)JDBC的ft·印arecKtatement接口更新數(shù)據(jù),其中con表示一個(gè)活動(dòng)連接con.setAutoCommit(false);//事務(wù)開始PreparedStatementpstmt=con.prepareStatement("UPDATEEMPLOYEESSETSALARY=?WHEREID=?");pstmt.setBigDecimal(1,153833.00);pstmt.setlnt(2,110592);con.commitQ;//事務(wù)提交通過(guò)在JDBC層攔截,可以獲得SQL語(yǔ)句“UPDATEEMPLOYEESSETSALARY=?WHEREID=〃、以及對(duì)應(yīng)的兩個(gè)參數(shù)153833.00和110592,根據(jù)參數(shù)類型(參數(shù)153833.00的類型為BigDecimal,參數(shù)110592的類型為ht),可以得到對(duì)應(yīng)源數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的SQL語(yǔ)句〃UPDATEEMPLOYEESSETSALARY=153833.OOffHEREID=110592〃,同時(shí)還要記錄對(duì)應(yīng)該SQL語(yǔ)句的事務(wù)序號(hào),用于表示該SQL語(yǔ)句是在該事務(wù)內(nèi)完成的。該事務(wù)序號(hào)可以按照多種方式來(lái)設(shè)定,比如可以按順序編號(hào),也可以是MD5、SHA等散列值或者UUID(UniversallyUniqueIdentifier,通用唯一識(shí)別碼)等唯一標(biāo)識(shí)算法對(duì)所述事務(wù)進(jìn)行標(biāo)識(shí),只要保證不同事務(wù)的序號(hào)不會(huì)重復(fù)即可。當(dāng)然,本發(fā)明實(shí)施例并不限于基于JDBC來(lái)捕捉源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及該變化信息對(duì)應(yīng)的事務(wù),也可以采用其他方式來(lái)實(shí)現(xiàn),比如,可以基于ODBC(OpenDatabaseConnectivity,開放式數(shù)據(jù)庫(kù)互連)標(biāo)準(zhǔn)實(shí)現(xiàn)應(yīng)用程序和關(guān)系數(shù)據(jù)庫(kù)之間通信。一個(gè)基于ODBC的應(yīng)用程序?qū)?shù)據(jù)庫(kù)進(jìn)行操作時(shí),用戶直接將SQLGtructuredQueryLanguage,結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句傳送給ODBC,同時(shí)ODBC對(duì)數(shù)據(jù)庫(kù)的操作也不依賴任何DBMS(DatabaseManagementSystem,數(shù)據(jù)庫(kù)管理系統(tǒng)),不直接與DBMS打交道,它將所有的數(shù)據(jù)庫(kù)操作由對(duì)應(yīng)的DBMS的ODBC驅(qū)動(dòng)程序完成,由對(duì)應(yīng)DBMS的ODBC驅(qū)動(dòng)程序?qū)BMS進(jìn)行操作。也就是說(shuō),不論是R)xPro、Access還是Oracle數(shù)據(jù)庫(kù),均可用ODBCAPI(ApplicationProgramminghterface,應(yīng)用程序編程接口)進(jìn)行訪問。同樣,利用ODBC同樣能夠以統(tǒng)一的方式處理所有的關(guān)系數(shù)據(jù)庫(kù)。步驟102,根據(jù)中間數(shù)據(jù)庫(kù)中保存的變化信息確定需要同步的目標(biāo)數(shù)據(jù)庫(kù)。具體地,可以根據(jù)中間數(shù)據(jù)庫(kù)中保存的SQL語(yǔ)句確定對(duì)源數(shù)據(jù)庫(kù)操作的數(shù)據(jù)表,然后再根據(jù)配置文件查找使用所述數(shù)據(jù)表中數(shù)據(jù)的其他數(shù)據(jù)庫(kù),查找到的使用所述數(shù)據(jù)表中數(shù)據(jù)的其他數(shù)據(jù)庫(kù)即為需要同步的目標(biāo)數(shù)據(jù)庫(kù)。需要說(shuō)明的是,上述查找到的目標(biāo)數(shù)據(jù)庫(kù)可以是一個(gè)或多個(gè)。例如,上例中的SQL語(yǔ)句更新了EMPLOYEES表,根據(jù)配置文件可以知道哪幾個(gè)目標(biāo)數(shù)據(jù)庫(kù)需要EMPLOYEES表的數(shù)據(jù),從而確定需要同步哪幾個(gè)目標(biāo)數(shù)據(jù)庫(kù)。步驟103,將所述變化信息轉(zhuǎn)換為對(duì)應(yīng)所述目標(biāo)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)。具體地,可以對(duì)中間數(shù)據(jù)庫(kù)中保存的SQL語(yǔ)句進(jìn)行分析,得到對(duì)源數(shù)據(jù)庫(kù)的操作信息,比如表名、字段、數(shù)據(jù)、調(diào)用的函數(shù)等等信息,然后再根據(jù)預(yù)先配置的目標(biāo)數(shù)據(jù)庫(kù)的類型、表名和字段等信息,以及對(duì)應(yīng)該目標(biāo)數(shù)據(jù)庫(kù)的轉(zhuǎn)換規(guī)則,將得到的對(duì)源數(shù)據(jù)庫(kù)的操作信息轉(zhuǎn)換生成符合目標(biāo)數(shù)據(jù)庫(kù)語(yǔ)法的SQL語(yǔ)句,根據(jù)需要,在轉(zhuǎn)換過(guò)程中還可以進(jìn)行簡(jiǎn)單的數(shù)據(jù)處理。例如,源表中是符合informix語(yǔ)法的SQL語(yǔ)句insertintostatselectuserCountfromtable(multiset(selectcount(氺)userCountfromusers))。目標(biāo)表是oracle類型的,則轉(zhuǎn)換后的SQL語(yǔ)句為insertintostatselectuserCountfromselectcount(氺)userCountfromusers。需要說(shuō)明的是,需要同步的目標(biāo)數(shù)據(jù)庫(kù)可以有多個(gè),在這種情況下,對(duì)應(yīng)每個(gè)目標(biāo)數(shù)據(jù)庫(kù)有一相映射規(guī)則,不同目標(biāo)數(shù)據(jù)庫(kù)的映射規(guī)則可以相同,也可以不同。步驟104,將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)同時(shí)更新到所述目標(biāo)數(shù)據(jù)庫(kù)中。需要說(shuō)明的是,如果有多個(gè)需要同步的目標(biāo)數(shù)據(jù)庫(kù),則需要分別將對(duì)應(yīng)每個(gè)目標(biāo)數(shù)據(jù)庫(kù)的轉(zhuǎn)換后的目標(biāo)數(shù)據(jù)更新到相應(yīng)的目標(biāo)數(shù)據(jù)庫(kù)中。7另外,對(duì)應(yīng)同一事務(wù),可能會(huì)有多種變化信息,比如在同一事務(wù)內(nèi)刪除了部分?jǐn)?shù)據(jù)又新增了一些數(shù)據(jù)。由于在中間數(shù)據(jù)庫(kù)中保存了每個(gè)變化信息對(duì)應(yīng)的事務(wù),因此,在進(jìn)行數(shù)據(jù)庫(kù)同步時(shí),可以根據(jù)中間數(shù)據(jù)庫(kù)中保存的事務(wù)信息,將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)同時(shí)更新到所述目標(biāo)數(shù)據(jù)庫(kù)中。而且由于保存了事務(wù)信息,在數(shù)據(jù)同步過(guò)程中,不需要像現(xiàn)有技術(shù)那樣,在一次同步過(guò)程中同步對(duì)應(yīng)所有事務(wù)的差異數(shù)據(jù)即可保證數(shù)據(jù)的一致性。由此可見,利用本發(fā)明實(shí)施例數(shù)據(jù)庫(kù)同步方法,無(wú)需為每個(gè)系統(tǒng)編寫一個(gè)同步程序,通過(guò)實(shí)時(shí)捕捉源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及該變化信息對(duì)應(yīng)的事務(wù),并利用中間數(shù)據(jù)庫(kù)保存源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及對(duì)應(yīng)的事務(wù),從而在需要對(duì)目標(biāo)數(shù)據(jù)庫(kù)進(jìn)行同步時(shí),直接將所述變化信息轉(zhuǎn)換為對(duì)應(yīng)該目標(biāo)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù),并將目標(biāo)數(shù)據(jù)同步到該目標(biāo)數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)不同類型的數(shù)據(jù)庫(kù)以及異構(gòu)數(shù)據(jù)表之間的數(shù)據(jù)同步。而且,由于保存了事務(wù)信息,使得在一次數(shù)據(jù)同步過(guò)程中,只需將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)同步到相應(yīng)的目標(biāo)數(shù)據(jù)庫(kù)中,而無(wú)需在一次同步過(guò)程中同步對(duì)應(yīng)所有事務(wù)的差異數(shù)據(jù)即可保證數(shù)據(jù)的一致性,因而大大降低成了同步過(guò)程對(duì)系統(tǒng)資源的消耗,保證了同步過(guò)程的可靠性。當(dāng)然,本發(fā)明實(shí)施例數(shù)據(jù)庫(kù)同步方法,同樣也適用于相同類型數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步。對(duì)于相同類型數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步,還可以省略SQL語(yǔ)句的轉(zhuǎn)換過(guò)程,直接將中間數(shù)據(jù)庫(kù)中保存的SQL語(yǔ)句寫到目標(biāo)數(shù)據(jù)庫(kù)中。下面舉例進(jìn)一步詳細(xì)說(shuō)明本發(fā)明實(shí)施例數(shù)據(jù)庫(kù)同步方法的具體實(shí)現(xiàn)過(guò)程。假設(shè)源數(shù)據(jù)庫(kù)的類型是informix,表名為testl,包含兩個(gè)varchar字段;目標(biāo)數(shù)據(jù)庫(kù)的類型是oracle,表名為test2,包含一個(gè)自增長(zhǎng)id和一個(gè)varchar。兩個(gè)數(shù)據(jù)庫(kù)表的結(jié)構(gòu)分別如下testliinformix權(quán)利要求1.一種數(shù)據(jù)庫(kù)同步方法,其特征在于,包括實(shí)時(shí)捕捉源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及該數(shù)據(jù)變化對(duì)應(yīng)的事務(wù),并將捕捉到的變化信息及事務(wù)保存到中間數(shù)據(jù)庫(kù)中;根據(jù)中間數(shù)據(jù)庫(kù)中保存的變化信息確定需要同步的目標(biāo)數(shù)據(jù)庫(kù);將所述變化信息轉(zhuǎn)換為對(duì)應(yīng)所述目標(biāo)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù);將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)同時(shí)更新到所述目標(biāo)數(shù)據(jù)庫(kù)中。2.如權(quán)利要求1所述的方法,其特征在于,所述實(shí)時(shí)捕捉源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及該變化信息對(duì)應(yīng)的事務(wù),并將捕捉到的變化信息及事務(wù)保存到中間數(shù)據(jù)庫(kù)中包括通過(guò)訪問源數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)接口獲得對(duì)源數(shù)據(jù)庫(kù)的操作信息;根據(jù)所述操作信息生成對(duì)應(yīng)源數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的SQL語(yǔ)句及事務(wù)序號(hào);將所述對(duì)應(yīng)源數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的SQL語(yǔ)句及事務(wù)序號(hào)保存到中間數(shù)據(jù)庫(kù)中。3.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)中間數(shù)據(jù)庫(kù)中保存的變化信息確定需要同步的目標(biāo)數(shù)據(jù)庫(kù)包括根據(jù)中間數(shù)據(jù)庫(kù)中保存的SQL語(yǔ)句確定對(duì)源數(shù)據(jù)庫(kù)操作的數(shù)據(jù)表;根據(jù)配置文件查找使用所述數(shù)據(jù)表中數(shù)據(jù)的其他數(shù)據(jù)庫(kù);將查找到的使用所述數(shù)據(jù)表中數(shù)據(jù)的其他數(shù)據(jù)庫(kù)作為需要同步的目標(biāo)數(shù)據(jù)庫(kù)。4.如權(quán)利要求2所述的方法,其特征在于,所述將所述變化信息轉(zhuǎn)換為對(duì)應(yīng)所述目標(biāo)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)包括根據(jù)所述中間數(shù)據(jù)庫(kù)中保存的SQL語(yǔ)句,得到對(duì)源數(shù)據(jù)庫(kù)的操作信息;根據(jù)所述目標(biāo)數(shù)據(jù)庫(kù)的類型及對(duì)應(yīng)該目標(biāo)數(shù)據(jù)庫(kù)的轉(zhuǎn)換規(guī)則,將得到的對(duì)源數(shù)據(jù)庫(kù)的操作信息生成符合目標(biāo)數(shù)據(jù)庫(kù)語(yǔ)法的SQL語(yǔ)句。5.如權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,如果需要同步的目標(biāo)數(shù)據(jù)庫(kù)有多個(gè),則分別將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)更新到每個(gè)目標(biāo)數(shù)據(jù)庫(kù)中。6.一種數(shù)據(jù)同步系統(tǒng),其特征在于,包括捕捉單元,用于實(shí)時(shí)捕捉源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及該數(shù)據(jù)變化對(duì)應(yīng)的事務(wù),并將捕捉到的變化信息及事務(wù)保存到中間數(shù)據(jù)庫(kù)中;目標(biāo)數(shù)據(jù)庫(kù)確定單元,用于根據(jù)中間數(shù)據(jù)庫(kù)中保存的變化信息確定需要同步的目標(biāo)數(shù)據(jù)庫(kù);轉(zhuǎn)換單元,用于將所述變化信息轉(zhuǎn)換為對(duì)應(yīng)所述目標(biāo)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù);同步管理單元,用于將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)同時(shí)更新到所述目標(biāo)數(shù)據(jù)庫(kù)中。7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述捕捉單元包括操作信息獲取子單元,用于通過(guò)訪問源數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)接口獲得對(duì)源數(shù)據(jù)庫(kù)的操作信息;變化信息生成子單元,用于根據(jù)所述操作信息生成對(duì)應(yīng)源數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的SQL語(yǔ)句及事務(wù)序號(hào);保存子單元,用于將所述對(duì)應(yīng)源數(shù)據(jù)庫(kù)中數(shù)據(jù)變化的SQL語(yǔ)句及事務(wù)序號(hào)保存到中間數(shù)據(jù)庫(kù)中。8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述目標(biāo)數(shù)據(jù)庫(kù)確定單元包括數(shù)據(jù)表確定子單元,用于根據(jù)中間數(shù)據(jù)庫(kù)中保存的SQL語(yǔ)句確定對(duì)源數(shù)據(jù)庫(kù)操作的數(shù)據(jù)表;查找子單元,用于根據(jù)配置文件查找使用所述數(shù)據(jù)表中數(shù)據(jù)的其他數(shù)據(jù)庫(kù),將查找到的使用所述數(shù)據(jù)表中數(shù)據(jù)的其他數(shù)據(jù)庫(kù)作為需要同步的目標(biāo)數(shù)據(jù)庫(kù)。9.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述轉(zhuǎn)換單元包括操作信息獲取子單元,用于根據(jù)所述中間數(shù)據(jù)庫(kù)中保存的SQL語(yǔ)句,得到對(duì)源數(shù)據(jù)庫(kù)的操作信息;目標(biāo)數(shù)據(jù)生成子單元,用于根據(jù)所述目標(biāo)數(shù)據(jù)庫(kù)的類型及對(duì)應(yīng)該目標(biāo)數(shù)據(jù)庫(kù)的轉(zhuǎn)換規(guī)則,將得到的對(duì)源數(shù)據(jù)庫(kù)的操作信息生成符合目標(biāo)數(shù)據(jù)庫(kù)語(yǔ)法的SQL語(yǔ)句。10.如權(quán)利要求6至9任一項(xiàng)所述的系統(tǒng),其特征在于,如果需要同步的目標(biāo)數(shù)據(jù)庫(kù)有多個(gè),則所述同步管理單元分別將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)更新到每個(gè)目標(biāo)數(shù)據(jù)庫(kù)中。全文摘要本發(fā)明涉及數(shù)據(jù)同步
技術(shù)領(lǐng)域
,公開了一種數(shù)據(jù)庫(kù)同步方法,該方法包括實(shí)時(shí)捕捉源數(shù)據(jù)庫(kù)中數(shù)據(jù)的變化信息及該數(shù)據(jù)變化對(duì)應(yīng)的事務(wù),并將捕捉到的變化信息及事務(wù)保存到中間數(shù)據(jù)庫(kù)中;根據(jù)中間數(shù)據(jù)庫(kù)中保存的變化信息確定需要同步的目標(biāo)數(shù)據(jù)庫(kù);將所述變化信息轉(zhuǎn)換為對(duì)應(yīng)所述目標(biāo)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù);將對(duì)應(yīng)同一事務(wù)的所有目標(biāo)數(shù)據(jù)同時(shí)更新到所述目標(biāo)數(shù)據(jù)庫(kù)中。利用本發(fā)明,可以實(shí)現(xiàn)不同類型的數(shù)據(jù)庫(kù)以及異構(gòu)數(shù)據(jù)表之間的數(shù)據(jù)同步,降低同步過(guò)程對(duì)系統(tǒng)資源的消耗,保證同步過(guò)程的可靠性。文檔編號(hào)G06F17/30GK102129478SQ20111010500公開日2011年7月20日申請(qǐng)日期2011年4月26日優(yōu)先權(quán)日2011年4月26日發(fā)明者溫文全,陳宏明申請(qǐng)人:廣州從興電子開發(fā)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1