一種數(shù)據(jù)同步增量跟蹤的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種數(shù)據(jù)同步增量跟蹤的方法及系統(tǒng),其中方法包括以下步驟:步驟1:捕獲模塊實(shí)時采集源數(shù)據(jù)庫的增量數(shù)據(jù),并將采集的增量數(shù)據(jù)發(fā)送到至少一個傳輸模塊;步驟2:每個傳輸模塊分別將增量數(shù)據(jù)傳輸?shù)揭粋€加載模塊;步驟3:每個加載模塊將增量數(shù)據(jù)加載到與所述加載模塊對應(yīng)的目標(biāo)數(shù)據(jù)庫。本發(fā)明通過數(shù)據(jù)追蹤和日志追溯方法,解決了增量數(shù)據(jù)的提取和分析問題;可以隨時通過了解目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化,并根據(jù)日志跟蹤表一目了然的了解數(shù)據(jù)變化情況,當(dāng)源數(shù)據(jù)庫中的增量數(shù)據(jù)變化時,實(shí)時進(jìn)行捕獲。
【專利說明】
一種數(shù)據(jù)同步増量跟蹤的方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及一種數(shù)據(jù)同步增量跟蹤的方法及系統(tǒng)。
【背景技術(shù)】
[0002]目前商用軟件需求中,對數(shù)據(jù)的實(shí)時同步處理要求越來越多,對關(guān)系型數(shù)據(jù)庫的實(shí)時同步需求越來越廣泛,Oracle作為傳統(tǒng)關(guān)系性數(shù)據(jù)庫代表,在商用中使用最多,但由于Oracle本身為甲骨文多年研發(fā)產(chǎn)品,其內(nèi)部邏輯及實(shí)現(xiàn)方式并未對外開放,因此對Oracle數(shù)據(jù)庫本身的實(shí)時采集成為瓶頸。
[0003]但對于大多數(shù)信息化系統(tǒng)而言,數(shù)據(jù)同步之后,很多系統(tǒng)想針對于同步的數(shù)據(jù)增量做進(jìn)一步的分析和驗證,但由于數(shù)據(jù)已經(jīng)和歷史數(shù)據(jù)溶為一起,很難在提取出來。
【發(fā)明內(nèi)容】
[0004]Go I denGate作為甲骨文的附屬產(chǎn)品運(yùn)應(yīng)而生;該產(chǎn)品可通過捕獲Orac I e的日志增量,并解密轉(zhuǎn)換為數(shù)據(jù)庫操作語言,實(shí)時捕獲增量數(shù)據(jù)進(jìn)行數(shù)據(jù)同步。
[0005]本發(fā)明所要解決的技術(shù)問題是提供一種通過GoldenGate的數(shù)據(jù)追溯實(shí)現(xiàn)數(shù)據(jù)同步增量跟蹤的數(shù)據(jù)同步增量跟蹤的方法及系統(tǒng)。
[0006]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種數(shù)據(jù)同步增量跟蹤的方法,具體包括以下步驟:
[0007]步驟1:捕獲模塊實(shí)時采集源數(shù)據(jù)庫的增量數(shù)據(jù),并將采集的增量數(shù)據(jù)發(fā)送到至少一個傳輸模塊;
[0008]步驟2:每個傳輸模塊分別將增量數(shù)據(jù)傳輸?shù)揭粋€加載模塊;
[0009]步驟3:每個加載模塊將增量數(shù)據(jù)加載到與所述加載模塊對應(yīng)的目標(biāo)數(shù)據(jù)庫。
[0010]本發(fā)明的有益效果是:通過數(shù)據(jù)追蹤和日志追溯方法,解決了增量數(shù)據(jù)的提取和分析問題;可以隨時通過了解目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化,并根據(jù)日志跟蹤表一目了然的了解數(shù)據(jù)變化情況,當(dāng)源數(shù)據(jù)庫中的增量數(shù)據(jù)變化時,實(shí)時進(jìn)行捕獲,使源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)通過傳輸模塊實(shí)現(xiàn)平衡,通過傳輸模塊將增量數(shù)據(jù)壓人通道,并在傳輸過程中進(jìn)行類型轉(zhuǎn)換,使增量數(shù)據(jù)更快速的加載到目標(biāo)數(shù)據(jù)庫中。
[0011]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0012]進(jìn)一步,每個所述傳輸模塊在傳輸增量數(shù)據(jù)的過程中,根據(jù)對應(yīng)的目標(biāo)數(shù)據(jù)庫的類型對增量數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換。
[0013]采用上述進(jìn)一步方案的有益效果是,在傳輸過程中對數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,可以實(shí)現(xiàn)數(shù)據(jù)存入目標(biāo)數(shù)據(jù)庫,不會出現(xiàn)無法存入的問題。
[0014]進(jìn)一步,所述步驟3中每個加載模塊將增量數(shù)據(jù)加載到目標(biāo)數(shù)據(jù)庫的同時,根據(jù)增量數(shù)據(jù)的類型確定一個對應(yīng)的日志跟蹤表,記錄目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化。
[0015]進(jìn)一步,所述日志跟蹤表的確定方法包括:首先根據(jù)目標(biāo)數(shù)據(jù)庫確定日志跟蹤表的名稱,根據(jù)名稱建立日志表,并將日志表中的字段對應(yīng)增量數(shù)據(jù)的消息報文頭信息,實(shí)現(xiàn)目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化自動加載到日志跟蹤表中。
[0016]進(jìn)一步,所述步驟I中捕獲模塊還配置有用于修改數(shù)據(jù)類型的配置信息。
[0017]進(jìn)一步,所述配置信息包括目標(biāo)數(shù)據(jù)庫的登錄用戶名信息、登錄密碼信息、目標(biāo)數(shù)據(jù)庫類型信息和目標(biāo)數(shù)據(jù)庫的位置信息。
[0018]本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種數(shù)據(jù)同步增量跟蹤的系統(tǒng),包括捕獲模塊、至少一個傳輸模塊和與傳輸模塊數(shù)量對應(yīng)的加載模塊;
[0019]所述捕獲模塊實(shí)時采集源數(shù)據(jù)庫的增量數(shù)據(jù),并將采集的增量數(shù)據(jù)發(fā)送到至少一個傳輸模塊;
[0020]每個所述傳輸模塊分別將增量數(shù)據(jù)傳輸?shù)揭粋€加載模塊;
[0021 ]每個所述加載模塊將增量數(shù)據(jù)加載到與所述加載模塊對應(yīng)的目標(biāo)數(shù)據(jù)庫。
[0022]本發(fā)明的有益效果是:通過數(shù)據(jù)追蹤和日志追溯方法,解決了增量數(shù)據(jù)的提取和分析問題;可以隨時通過了解目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化,并根據(jù)日志跟蹤表一目了然的了解數(shù)據(jù)變化情況,當(dāng)源數(shù)據(jù)庫中的增量數(shù)據(jù)變化時,實(shí)時進(jìn)行捕獲,使源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)通過傳輸模塊實(shí)現(xiàn)平衡,通過傳輸模塊將增量數(shù)據(jù)壓人通道,并在傳輸過程中進(jìn)行類型轉(zhuǎn)換,使增量數(shù)據(jù)更快速的加載到目標(biāo)數(shù)據(jù)庫中。
[0023]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0024]進(jìn)一步,每個所述傳輸模塊在傳輸增量數(shù)據(jù)的過程中,根據(jù)對應(yīng)的目標(biāo)數(shù)據(jù)庫的類型對增量數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換。
[0025]采用上述進(jìn)一步方案的有益效果是,在傳輸過程中對數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,可以實(shí)現(xiàn)數(shù)據(jù)存入目標(biāo)數(shù)據(jù)庫,不會出現(xiàn)無法存入的問題。
[0026]進(jìn)一步,所述加載模塊中每個加載模塊將增量數(shù)據(jù)加載到目標(biāo)數(shù)據(jù)庫的同時,根據(jù)增量數(shù)據(jù)的類型確定一個對應(yīng)的日志跟蹤表,記錄目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化。
[0027]進(jìn)一步,所述捕獲模塊中還配置有用于修改數(shù)據(jù)類型的配置信息。
【附圖說明】
[0028]圖1為本發(fā)明實(shí)施例1所述的一種數(shù)據(jù)同步增量跟蹤的方法流程圖;
[0029]圖2為本發(fā)明實(shí)施例1所述的一種數(shù)據(jù)同步增量跟蹤的系統(tǒng)結(jié)構(gòu)框圖。
[0030]附圖中,各標(biāo)號所代表的部件列表如下:
[0031]1、捕獲模塊,2、傳輸模塊,3、加載模塊。
【具體實(shí)施方式】
[0032]以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0033]如圖1所示,為本發(fā)明實(shí)施例1所述的一種數(shù)據(jù)同步增量跟蹤的方法,具體包括以下步驟:
[0034]步驟1:捕獲模塊實(shí)時采集源數(shù)據(jù)庫的增量數(shù)據(jù),并將采集的增量數(shù)據(jù)發(fā)送到至少一個傳輸模塊;
[0035]步驟2:每個傳輸模塊分別將增量數(shù)據(jù)傳輸?shù)揭粋€加載模塊;
[0036]步驟3:每個加載模塊將增量數(shù)據(jù)加載到與所述加載模塊對應(yīng)的目標(biāo)數(shù)據(jù)庫。
[0037]實(shí)施例2所述的一種數(shù)據(jù)同步增量跟蹤的方法,在實(shí)施例1的基礎(chǔ)上,每個所述傳輸模塊在傳輸增量數(shù)據(jù)的過程中,根據(jù)對應(yīng)的目標(biāo)數(shù)據(jù)庫的類型對增量數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換。
[0038]實(shí)施例3所述的一種數(shù)據(jù)同步增量跟蹤的方法,在實(shí)施例1或2的基礎(chǔ)上,所述步驟3中每個加載模塊將增量數(shù)據(jù)加載到目標(biāo)數(shù)據(jù)庫的同時,根據(jù)增量數(shù)據(jù)的類型確定一個對應(yīng)的日志跟蹤表,記錄目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化。
[0039]實(shí)施例4所述的一種數(shù)據(jù)同步增量跟蹤的方法,在實(shí)施例3的基礎(chǔ)上,所述日志跟蹤表的確定方法包括:首先根據(jù)目標(biāo)數(shù)據(jù)庫確定日志跟蹤表的名稱,根據(jù)名稱建立日志表,并將日志表中的字段對應(yīng)增量數(shù)據(jù)的消息報文頭信息,實(shí)現(xiàn)目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化自動加載到日志跟蹤表中。
[0040]實(shí)施例5所述的一種數(shù)據(jù)同步增量跟蹤的方法,在實(shí)施例1-4任一項的基礎(chǔ)上,所述步驟I中捕獲模塊還配置有用于修改數(shù)據(jù)類型的配置信息。
[0041]實(shí)施例6所述的一種數(shù)據(jù)同步增量跟蹤的方法,在實(shí)施例5的基礎(chǔ)上,所述配置信息包括目標(biāo)數(shù)據(jù)庫的登錄用戶名信息、登錄密碼信息、目標(biāo)數(shù)據(jù)庫類型信息和目標(biāo)數(shù)據(jù)庫的位置信息。
[0042]如圖2所示,為本發(fā)明實(shí)施例1所述的一種數(shù)據(jù)同步增量跟蹤的系統(tǒng),包括捕獲模塊1、至少一個傳輸模塊2和與傳輸模塊2數(shù)量對應(yīng)的加載模塊3;
[0043]所述捕獲模塊I實(shí)時采集源數(shù)據(jù)庫的增量數(shù)據(jù),并將采集的增量數(shù)據(jù)發(fā)送到至少一個傳輸模塊2 ;
[0044]每個所述傳輸模塊2分別將增量數(shù)據(jù)傳輸?shù)揭粋€加載模塊3;
[0045]每個所述加載模塊3將增量數(shù)據(jù)加載到與所述加載模塊3對應(yīng)的目標(biāo)數(shù)據(jù)庫。
[0046]實(shí)施例2所述的一種數(shù)據(jù)同步增量跟蹤的系統(tǒng),在實(shí)施例1的基礎(chǔ)上,每個所述傳輸模塊在傳輸增量數(shù)據(jù)的過程中,根據(jù)對應(yīng)的目標(biāo)數(shù)據(jù)庫的類型對增量數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換。
[0047]實(shí)施例3所述的一種數(shù)據(jù)同步增量跟蹤的系統(tǒng),在實(shí)施例1或2的基礎(chǔ)上,所述加載模塊中每個加載模塊將增量數(shù)據(jù)加載到目標(biāo)數(shù)據(jù)庫的同時,根據(jù)增量數(shù)據(jù)的類型確定一個對應(yīng)的日志跟蹤表,記錄目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化。
[0048]實(shí)施例4所述的一種數(shù)據(jù)同步增量跟蹤的系統(tǒng),在實(shí)施例1-3任一項的基礎(chǔ)上,所述捕獲模塊中還配置有用于修改數(shù)據(jù)類型的配置信息。
[0049]本技術(shù)方案核心包括三部分:I)源端捕獲進(jìn)程時,增加修改數(shù)據(jù)捕獲器配置信息;2)數(shù)據(jù)傳輸進(jìn)程時,配置傳輸過程增量數(shù)據(jù)轉(zhuǎn)換器3)數(shù)據(jù)入庫進(jìn)程,指定日志跟蹤表,將數(shù)據(jù)變化信息記錄。
[0050]三個部分之間為串行執(zhí)行,源端所在數(shù)據(jù)庫服務(wù)器上安裝OGG的客戶端,在上面啟動源端捕獲進(jìn)程和傳輸進(jìn)程;捕獲進(jìn)程將實(shí)時采集源數(shù)據(jù)庫數(shù)據(jù),并傳送給傳輸進(jìn)程,傳輸進(jìn)程又將數(shù)據(jù)最終傳給數(shù)據(jù)加載進(jìn)程,數(shù)據(jù)加載入庫進(jìn)程配置在目標(biāo)端數(shù)據(jù)庫所在服務(wù)器。
[0051 ]本發(fā)明具體示例所述的方法包括以下步驟:
[0052]I)配置源端捕獲器
[0053]GGSCI>edit params eoral
[0054]EXTRACT eoral
[0055]SETENV(0RACLE_SID = orcI)
[0056]SETENV(NLS_LANG = ZHS16GBK)
[0057]USERID goldengate,PASSWORD oraclel23
[0058]EXTTRAIL./dirdat/cc
[0059]DBOPT1NS ALLOWUNUSEDCOLUMN
[0060]tranlogopt1ns convertucs2clobs
[0061]getupdatebefores
[0062]nocompressdeletes
[0063]tabIe hr.lookup;
[0064]在源端已有的數(shù)據(jù)抽取進(jìn)程中,插入“getupdatebefores”,“nocompr essdeletes“捕獲器,G0LDENGATE則將增量數(shù)據(jù)記錄在通道中;
[0065]2)數(shù)據(jù)傳輸進(jìn)程
[0066]GGSCI>edit params pp
[0067]EXTRACT pp
[0068]PASSTHRU
[0069]RMTH0ST target,MGRPORT 7809,COMPRESS
[0070]RMTTRAIL./dirdat/cc[0071 ]GETUPDATEBEFORES
[0072]tabIe hr.lookup;
[0073]數(shù)據(jù)傳輸進(jìn)程將源端捕獲增量數(shù)據(jù)壓入通道中,傳遞給數(shù)據(jù)加載進(jìn)程。
[0074]3)數(shù)據(jù)加載進(jìn)程
[0075]REPLICAT rep2
[0076]USERID goldengate,PASSWORD oraclel23
[0077]ASSUMETARGETDEFS
[0078]INSERTALLRECORDS
[0079]DISCARDFILE./dirrpt/rep2, PURGE,MEGABYTES 100
[0080]map hr.lookup, target hr.1ookup_history,
[0081]C0LMAP(usedefaults,
[0082]BEF0RE_AFTER = @getenv("GGHEADER","BEFOREAFTERINDICATOR"),
[0083]DEAL_DATE = @getenv(〃GGHEADER","COMMITHMESTAMP"),
[0084]0P_FLAG = @getenv( "GGHEADER","0ΡΤΥΡΕ")
[0085]);
[0086]數(shù)據(jù)加載進(jìn)程是將源數(shù)據(jù)最終放入到目標(biāo)數(shù)據(jù)庫,因此以上配置需目標(biāo)數(shù)據(jù)庫的登陸用戶名、密碼(USERID goldengate,PASSWORD oraclel23);同時(DISCARDFILE./dirrpt/rep2 , PURGE , MEGABYTES 100)為取得數(shù)據(jù)文件的位置信息;BEF0RE_AFTER、DEALDATE、0P_FLAG為日志表的三個字段,記錄了日志的關(guān)鍵字內(nèi)容是操作前還是操作后的,操作時間,以及是什么樣的操作等;
[0087]數(shù)據(jù)加載進(jìn)程需要指明數(shù)據(jù)變化日志記錄的表名稱,同時建立日志表,并將日志表中的字段(修改表名稱,動作前后標(biāo)志,動作時間,動作類型,變化內(nèi)容,相應(yīng)ORACLE的R0WID)全部對應(yīng)GOLDENGATE的消息報文頭信息,則變化數(shù)據(jù)自動加載入日志表。
[0088]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項】
1.一種數(shù)據(jù)同步增量跟蹤的方法,其特征在于,具體包括以下步驟: 步驟1:捕獲模塊實(shí)時采集源數(shù)據(jù)庫的增量數(shù)據(jù),并將采集的增量數(shù)據(jù)發(fā)送到至少一個傳輸模塊; 步驟2:每個傳輸模塊分別將增量數(shù)據(jù)傳輸?shù)揭粋€加載模塊; 步驟3:每個加載模塊將增量數(shù)據(jù)加載到與所述加載模塊對應(yīng)的目標(biāo)數(shù)據(jù)庫。2.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)同步增量跟蹤的方法,其特征在于,每個所述傳輸模塊在傳輸增量數(shù)據(jù)的過程中,根據(jù)對應(yīng)的目標(biāo)數(shù)據(jù)庫的類型對增量數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換。3.根據(jù)權(quán)利要求1或2所述的一種數(shù)據(jù)同步增量跟蹤的方法,其特征在于,所述步驟3中每個加載模塊將增量數(shù)據(jù)加載到目標(biāo)數(shù)據(jù)庫的同時,根據(jù)增量數(shù)據(jù)的類型確定一個對應(yīng)的日志跟蹤表,記錄目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化。4.根據(jù)權(quán)利要求3所述的一種數(shù)據(jù)同步增量跟蹤的方法,其特征在于,所述日志跟蹤表的確定方法包括:首先根據(jù)目標(biāo)數(shù)據(jù)庫確定日志跟蹤表的名稱,根據(jù)名稱建立日志表,并將日志表中的字段對應(yīng)增量數(shù)據(jù)的消息報文頭信息,實(shí)現(xiàn)目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化自動加載到日志跟蹤表中。5.根據(jù)權(quán)利要求2所述的一種數(shù)據(jù)同步增量跟蹤的方法,其特征在于,所述步驟I中捕獲模塊還配置有用于修改數(shù)據(jù)類型的配置信息。6.根據(jù)權(quán)利要求5所述的一種數(shù)據(jù)同步增量跟蹤的方法,其特征在于,所述配置信息包括目標(biāo)數(shù)據(jù)庫的登錄用戶名信息、登錄密碼信息、目標(biāo)數(shù)據(jù)庫類型信息和目標(biāo)數(shù)據(jù)庫的位置信息。7.—種數(shù)據(jù)同步增量跟蹤的系統(tǒng),其特征在于,包括捕獲模塊、至少一個傳輸模塊和與傳輸模塊數(shù)量對應(yīng)的加載模塊; 所述捕獲模塊實(shí)時采集源數(shù)據(jù)庫的增量數(shù)據(jù),并將采集的增量數(shù)據(jù)發(fā)送到至少一個傳輸模塊; 每個所述傳輸模塊分別將增量數(shù)據(jù)傳輸?shù)揭粋€加載模塊; 每個所述加載模塊將增量數(shù)據(jù)加載到與所述加載模塊對應(yīng)的目標(biāo)數(shù)據(jù)庫。8.根據(jù)權(quán)利要求7所述的一種數(shù)據(jù)同步增量跟蹤的系統(tǒng),其特征在于,每個所述傳輸模塊在傳輸增量數(shù)據(jù)的過程中,根據(jù)對應(yīng)的目標(biāo)數(shù)據(jù)庫的類型對增量數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換。9.根據(jù)權(quán)利要求7或8所述的一種數(shù)據(jù)同步增量跟蹤的系統(tǒng),其特征在于,所述加載模塊中每個加載模塊將增量數(shù)據(jù)加載到目標(biāo)數(shù)據(jù)庫的同時,根據(jù)增量數(shù)據(jù)的類型確定一個對應(yīng)的日志跟蹤表,記錄目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)變化。10.根據(jù)權(quán)利要求8所述的一種數(shù)據(jù)同步增量跟蹤的系統(tǒng),其特征在于,所述捕獲模塊中還配置有用于修改數(shù)據(jù)類型的配置信息。
【文檔編號】G06F17/30GK105938492SQ201610232614
【公開日】2016年9月14日
【申請日】2016年4月14日
【發(fā)明人】穆亮
【申請人】北京思特奇信息技術(shù)股份有限公司