欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步方法和裝置的制作方法

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

專(zhuān)利名稱(chēng)::基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步方法和裝置的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及數(shù)據(jù)庫(kù)
技術(shù)領(lǐng)域
,特別涉及一種基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步方法和裝置。
背景技術(shù)
:遠(yuǎn)程數(shù)據(jù)同步是指跨網(wǎng)段的兩個(gè)數(shù)據(jù)庫(kù)系統(tǒng)保持?jǐn)?shù)據(jù)的一致性。源系統(tǒng)一般為部署在前端的業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù),而目的系統(tǒng)一般為用于支持決策分析的OLAP數(shù)據(jù)集市或者數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)。前端業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù)與后端數(shù)據(jù)中心的連接需要穿透防火墻?,F(xiàn)有的遠(yuǎn)程數(shù)據(jù)同步系統(tǒng)存在有以下問(wèn)題1、遠(yuǎn)程數(shù)據(jù)傳輸手段固定單一,無(wú)法應(yīng)對(duì)各種復(fù)雜情況。遠(yuǎn)程數(shù)據(jù)傳輸可以采用Web服務(wù)、JMS消息中間件以及FTP等各種方式。Web服務(wù)的方式可以實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)同步傳輸,但只能傳輸少量數(shù)據(jù),適用于數(shù)據(jù)零星變化的場(chǎng)景,且無(wú)法保證數(shù)據(jù)投遞的質(zhì)量JMS消息中間件通用適用于傳輸少量數(shù)據(jù),但可以保證數(shù)據(jù)在惡劣的網(wǎng)絡(luò)環(huán)境下也能達(dá)到目的;FTP可以傳輸較大規(guī)模的數(shù)據(jù)量,并可以支持?jǐn)帱c(diǎn)續(xù)傳。這三種方式各有優(yōu)劣,現(xiàn)有的遠(yuǎn)程數(shù)據(jù)傳輸方法只能采取其中一種方式,無(wú)法應(yīng)對(duì)不同的網(wǎng)絡(luò)環(huán)境和數(shù)據(jù)同步需求下各種復(fù)雜的情況。2、遠(yuǎn)程數(shù)據(jù)傳輸前端采用的增量數(shù)據(jù)采集器有一定的局限性。在數(shù)據(jù)庫(kù)中,經(jīng)常需要對(duì)原始數(shù)據(jù)進(jìn)行插入、刪除或修改等操作,這些操作的對(duì)象被稱(chēng)為增量數(shù)據(jù)。在某些情況下,需要將一些原始表的增量數(shù)據(jù)同步到其它一些表中,使這些表的數(shù)據(jù)保持一致;還有一些情況,需要詳細(xì)了解一些原始表的變化,及時(shí)將這些變化的數(shù)據(jù)提交到數(shù)據(jù)倉(cāng)庫(kù)中,用于數(shù)據(jù)分析和挖掘,上述情況下,需要進(jìn)行增量數(shù)據(jù)采集?,F(xiàn)有的增量數(shù)據(jù)采集實(shí)現(xiàn)的方法主要有觸發(fā)器、時(shí)間戳、全表抽取、全表比對(duì)、日志表、閃回查詢(flashback)等。這些機(jī)制存在以下缺點(diǎn)和不足觸發(fā)器方式需要源系統(tǒng)進(jìn)行侵入,會(huì)嚴(yán)重?fù)p傷源系統(tǒng)的性能,而且有時(shí)這種侵入是被客戶禁止的。時(shí)間戳的方式要求源系統(tǒng)所有的表需要具備時(shí)間戳字段,如果沒(méi)有需要額外添力口,對(duì)源系統(tǒng)的侵入較大,甚至需要修改源系統(tǒng)的業(yè)務(wù)代碼。此外,該方式對(duì)數(shù)據(jù)刪除操作的判斷與更新實(shí)現(xiàn)較復(fù)雜。全表抽取實(shí)際上是放棄增量抽取的思路,直接進(jìn)行全表抽取,對(duì)于大表來(lái)說(shuō)抽取效率很低。全表比對(duì)的方式需要逐條比較原始表和目標(biāo)表的記錄,將新增和修改的記錄讀取出來(lái),效率最低。日志表的做法是在源數(shù)據(jù)庫(kù)中創(chuàng)建業(yè)務(wù)日志表,當(dāng)特定需要監(jiān)控的業(yè)務(wù)數(shù)據(jù)發(fā)生變化時(shí),由相應(yīng)的業(yè)務(wù)系統(tǒng)程序模塊來(lái)更新維護(hù)日志表內(nèi)容。增量抽取時(shí),通過(guò)讀日志表數(shù)據(jù)決定加載哪些數(shù)據(jù)及如何加載。日志表的維護(hù)需要由業(yè)務(wù)系統(tǒng)程序用代碼來(lái)完成。對(duì)源系統(tǒng)具有極大的入侵性,增量抽取效率高但實(shí)現(xiàn)復(fù)雜。閃回查詢(flashback):0racle9i以上版本的數(shù)據(jù)庫(kù)系統(tǒng)提供了閃回查詢機(jī)制,允許用戶查詢過(guò)去某個(gè)時(shí)刻的數(shù)據(jù)庫(kù)狀態(tài)。這樣,抽取進(jìn)程可以將源數(shù)據(jù)庫(kù)的當(dāng)前狀態(tài)和上次抽取時(shí)刻的狀態(tài)進(jìn)行對(duì)比,快速得出源表數(shù)據(jù)記錄的變化情況。但這種方式需要特定DBMS(Databasemanagementsystem,數(shù)據(jù)庫(kù)管理系統(tǒng))的依賴,并且需要源系統(tǒng)支持閃回查詢,應(yīng)用范圍較窄。
發(fā)明內(nèi)容本發(fā)明的主要目的在于,針對(duì)上述現(xiàn)有技術(shù)中的不足,提供一種基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步方法和裝置,通過(guò)分析源數(shù)據(jù)庫(kù)的操作日志,定時(shí)將數(shù)據(jù)庫(kù)中發(fā)生增、刪、改的記錄提取出來(lái)形成包含增量記錄的數(shù)據(jù)包,然后根據(jù)網(wǎng)絡(luò)狀況和數(shù)據(jù)同步需求,將數(shù)據(jù)包以JMS或FTP的方式,利用消息中間件或FTP客戶端/服務(wù)器端產(chǎn)品,并在一定的配置管理支持下,將數(shù)據(jù)包傳輸給目標(biāo)數(shù)據(jù)庫(kù)系統(tǒng)。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采用以下技術(shù)方案。本發(fā)明提供一種基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步方法,包括以下步驟獲取源數(shù)據(jù)庫(kù)的DML;將所述DML導(dǎo)出為數(shù)據(jù)包;將所述數(shù)據(jù)包遠(yuǎn)程同步到目標(biāo)數(shù)據(jù)庫(kù);將所述數(shù)據(jù)包解析成SQL語(yǔ)句和變更數(shù)據(jù);將所述SQL語(yǔ)句和變更數(shù)據(jù)更新到目標(biāo)數(shù)據(jù)庫(kù)。本發(fā)明還提供一種基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步裝置,包括獲取模塊,用于獲取源數(shù)據(jù)庫(kù)的DML;數(shù)據(jù)包生成模塊,用于將所述DML導(dǎo)出為數(shù)據(jù)包;同步模塊,用于將所述數(shù)據(jù)包遠(yuǎn)程同步到目標(biāo)數(shù)據(jù)庫(kù);解析模塊,用于將所述數(shù)據(jù)包解析成SQL語(yǔ)句和變更數(shù)據(jù);入庫(kù)模塊,用于將所述SQL語(yǔ)句和變更數(shù)據(jù)更新到目標(biāo)數(shù)據(jù)庫(kù)。相比于上述現(xiàn)有技術(shù),本發(fā)明具有以下有益效果。本發(fā)明前端抽取程序形成的數(shù)據(jù)包,可以選擇以JMS或者FTP的方式送達(dá)目的端。JMS基于消息中間件,可以保證零星和少量數(shù)據(jù)的遠(yuǎn)程實(shí)時(shí)投遞;FTP支持?jǐn)帱c(diǎn)續(xù)傳,適合大規(guī)模數(shù)據(jù)的遠(yuǎn)程傳輸,兩者互為補(bǔ)充,保證了遠(yuǎn)程同步過(guò)程的穩(wěn)定性。而且,數(shù)據(jù)包既是前段抽取程序和遠(yuǎn)程同步程序的交接點(diǎn),又作為源端系統(tǒng)增量數(shù)據(jù)的備份,可以永久保存起來(lái),這樣即使在網(wǎng)絡(luò)環(huán)境極其惡劣甚至網(wǎng)絡(luò)訪問(wèn)受限的情況下,也能采取線下的方式將保存有數(shù)據(jù)包的物理介質(zhì)送達(dá)目的端,具有傳統(tǒng)遠(yuǎn)程數(shù)據(jù)同步或傳輸裝置所不具備的功倉(cāng)泛。圖1是本發(fā)明實(shí)施例中基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步方法的流程圖。圖2是圖1所示實(shí)施例中獲取源數(shù)據(jù)庫(kù)的DML的流程圖。圖3是本發(fā)明實(shí)施例中基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步裝置的結(jié)構(gòu)圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。具體實(shí)施例方式以下將結(jié)合附圖及具體實(shí)施例詳細(xì)說(shuō)明本發(fā)明的技術(shù)方案,以便更清楚、直觀地理解本發(fā)明的發(fā)明實(shí)質(zhì)。圖1是本發(fā)明實(shí)施例中基于日志捕獲的增量數(shù)據(jù)采集方法的流程圖;圖2是圖1所示實(shí)施例中獲取源數(shù)據(jù)庫(kù)的DML的流程圖。參照?qǐng)D1和圖2所示,本發(fā)明實(shí)施例首先提供一種基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步方法,包括以下步驟51:獲取源數(shù)據(jù)庫(kù)的DML;52:將DML導(dǎo)出為數(shù)據(jù)包;53:將所述數(shù)據(jù)包遠(yuǎn)程同步到目標(biāo)數(shù)據(jù)庫(kù);54:將所述數(shù)據(jù)包解析成SQL語(yǔ)句和變更數(shù)據(jù);55:將所述SQL語(yǔ)句和變更數(shù)據(jù)更新到目標(biāo)數(shù)據(jù)庫(kù)。DML是指DataManipulationLanguage,即數(shù)據(jù)操縱語(yǔ)言,它是SQL的分類(lèi)之一,用于記錄數(shù)據(jù)庫(kù)的狀態(tài)變化。SQL語(yǔ)句是指數(shù)據(jù)庫(kù)語(yǔ)句,用于記錄對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行增力口、刪除、修改和查詢等操作及操作對(duì)象。在步驟SI中,獲取源數(shù)據(jù)庫(kù)的DML的步驟具體包括以下幾個(gè)子步驟511:獲取所需監(jiān)聽(tīng)的表,并創(chuàng)建變更表;512:創(chuàng)建日志表,用于記錄DML;513:監(jiān)聽(tīng)數(shù)據(jù)庫(kù)日志,得到數(shù)據(jù)更新操作;514:將數(shù)據(jù)更新操作還原為完整的SQL語(yǔ)句和變更數(shù)據(jù);515:將變更數(shù)據(jù)寫(xiě)入變更表,將SQL語(yǔ)句寫(xiě)入日志表。上述各步驟中,所需監(jiān)聽(tīng)的表稱(chēng)為目標(biāo)表。目標(biāo)表可以是源數(shù)據(jù)庫(kù)系統(tǒng)中特定的某一個(gè)數(shù)據(jù)表,也可以是所有指定類(lèi)型的一批數(shù)據(jù)表。變更表與要監(jiān)聽(tīng)的目標(biāo)表一一對(duì)應(yīng),結(jié)構(gòu)相同,用于臨時(shí)存儲(chǔ)目標(biāo)表在本次監(jiān)聽(tīng)過(guò)程中產(chǎn)生的變更數(shù)據(jù)。在步驟SI中,獲取所需監(jiān)聽(tīng)的表,并創(chuàng)建變更表的步驟是通過(guò)讀取數(shù)據(jù)庫(kù)字典以獲取目標(biāo)表的結(jié)構(gòu),然后創(chuàng)建與目標(biāo)表相對(duì)應(yīng)的變更表。Oracle數(shù)據(jù)庫(kù)中實(shí)施這一步驟,需要執(zhí)行以下語(yǔ)句selecttable—namefromdba—tableswhereowner=....selectname,length,type#,charsetformfromsys.col$whereobj#=(selectobj#...)orderbyintcol#若數(shù)據(jù)庫(kù)為SQLserver,需執(zhí)行以下語(yǔ)句selectnamefromsysobjectswherextype=’U’anduid=(selectuidfromsysuserswherename=...)selectname,length,xtypefromsyscolumnswhereid=(selectidfrmosysobjectswherename=tabIeNameanduid=(selectuidfromsysuserswherename=username))0實(shí)際上,在進(jìn)行步驟SI之前,數(shù)據(jù)庫(kù)管理員還需要進(jìn)行登錄操作,進(jìn)行身份識(shí)別,確保數(shù)據(jù)庫(kù)系統(tǒng)的安全性。在步驟S12中,在數(shù)據(jù)庫(kù)系統(tǒng)中創(chuàng)建名為MY_CDC_LOG_TABLE或類(lèi)似名稱(chēng)的日志表,用于臨時(shí)記錄增量DML。在步驟S13中,監(jiān)聽(tīng)數(shù)據(jù)庫(kù)日志具體操作為根據(jù)用戶設(shè)置的監(jiān)聽(tīng)周期,啟動(dòng)監(jiān)聽(tīng)線程。對(duì)于ORACLE數(shù)據(jù)庫(kù),監(jiān)聽(tīng)線程使用LOGMNR包相關(guān)函數(shù),監(jiān)聽(tīng)ORACLE的日志記錄,得到數(shù)據(jù)變更操作(包括insert、update和delete語(yǔ)句);對(duì)于SQLSERVER,監(jiān)聽(tīng)線程使用相關(guān)數(shù)據(jù)字典監(jiān)聽(tīng)日志記錄,得到數(shù)據(jù)變更操作。Oracle數(shù)據(jù)庫(kù)中讀取日志信息需要執(zhí)行以下語(yǔ)句selectname,COMPLET10N_TIMEfromv$archived_logwhere...selectv$logfile.memberfromv$logfile,v$logwherev$logfile.group#=v$log.group#andv$logfile.status=’CURRENT’selectseg_owner,table_name,sql_redo,timestamp,row_id,operation,data_obj#fromv$logmnr_contentswhereDATA_0BJ#in(表序號(hào)..)andoperationin(’INSERT’,’DELETE’,’UPDATE’)selectseg_owner,seg_name,sql_redo,timestamp,row_id,operation,data_obj#from...。SQLServer數(shù)據(jù)庫(kù)中讀取日志信息需要執(zhí)行以下語(yǔ)句selectallocunitname,operation,[RowlogContents0]asrO,[RowlogContentsI]asrl,[RowlogContents2].....[R…4]asr4,[CurrentLSN]from::fn_dblog(null,null)whereallocunitnamelikeuserName.tableNameandnotallocunitnamelikeuserName.tableName_cdcandoperationin(’Lop_Insert_Rows’,’Lop—Delete—Rows’,’Lop—Modify—Row’,’Lop—Modify—Columns’)…select[objectName],operation,[CurrentLSN]frmo::fn_dblog(null,null)where[objectName]like·…。在步驟S14中,將數(shù)據(jù)更新操作還原為完整的SQL語(yǔ)句和變更數(shù)據(jù)的步驟具體為,監(jiān)聽(tīng)線程通過(guò)分析日志和相關(guān)數(shù)據(jù)字典,將數(shù)據(jù)變更操作還原為完整的SQL語(yǔ)句和變更數(shù)據(jù)。變更數(shù)據(jù)還原SQL語(yǔ)句,在Oracle中需要執(zhí)行以下語(yǔ)句selectobj#fromsys.obj$wherename=’table—name’andowner#=(selectuser#fromsys.user$wherename=’user—name’)selectc.column_namefromdba_cons_columnsc,dba_constraintstwherec.constraint—name=t.constraint_nameandt.constraint_type=’P’andt.table_name=’table—name’andc.owner=’user—name’。SQLServer則需要執(zhí)行以下語(yǔ)句selectcolumn_namefrominformation_schema.constraint_column_usagewhereconstraint—name=(selectconstraint—namefrominformation_schema.table_constraintswhereconstraint_type=’PRIMARYKEY’andtable—schema=userName.tableName)。在步驟S15中,將變更數(shù)據(jù)寫(xiě)入變更表,將SQL語(yǔ)句寫(xiě)入日志表時(shí),監(jiān)聽(tīng)線程按照一定周期將獲取到的變更數(shù)據(jù)寫(xiě)入變更表,將SQL語(yǔ)句寫(xiě)入MY—CDC—LOG—TABLE日志表。在步驟S2中,導(dǎo)出為數(shù)據(jù)包,該數(shù)據(jù)包包括XML文件和CSV文件,其中XML文件記錄所有數(shù)據(jù)更新操作的SQL語(yǔ)句,CSV記錄所有增加和修改的變更數(shù)據(jù)。數(shù)據(jù)包可作為下游應(yīng)用程序的輸入以完成后續(xù)的數(shù)據(jù)傳輸和抽取處理。在步驟S3中,將數(shù)據(jù)包遠(yuǎn)程同步到目標(biāo)數(shù)據(jù)庫(kù)的步驟具體包括根據(jù)網(wǎng)絡(luò)狀況和同步緊急度需求,選擇采用JMS或者FTP的方式進(jìn)行遠(yuǎn)程同步。具體地,對(duì)于FTP方式,在目標(biāo)數(shù)據(jù)庫(kù)中建立數(shù)據(jù)包目錄,部署FTP客戶端程序和FTP服務(wù)器端程序,發(fā)送端按照一定的時(shí)間周期,執(zhí)行數(shù)據(jù)掃描,若發(fā)現(xiàn)數(shù)據(jù)包目錄中存在新的數(shù)據(jù)包文件,先將文件信息記載到發(fā)送端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)FTP協(xié)議,訪問(wèn)遠(yuǎn)程FTP服務(wù)器端,將數(shù)據(jù)包文件上傳,并等待接收端回復(fù)信息。接收端收到所述數(shù)據(jù)包文件后,將數(shù)據(jù)包文件保存并將所述文件信息記載到接收端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)FTP命令的方式向接收端反饋回執(zhí),即發(fā)送確認(rèn)信息。基于FTP協(xié)議數(shù)據(jù)遠(yuǎn)程同步處理流程如下UFTP客戶端掃描數(shù)據(jù);2、將待發(fā)送的數(shù)據(jù)包信息計(jì)入FTP客戶端的配置庫(kù),用于糾錯(cuò)或重傳;3、連接FTP服務(wù)器;4、上傳數(shù)據(jù)包,并發(fā)送命令;5、FTP服務(wù)器接收上述命令,并下載數(shù)據(jù)包;6、斷開(kāi)FTP連接;7、將接收到的數(shù)據(jù)包信息計(jì)入FTP服務(wù)器的配置庫(kù),用于糾錯(cuò)或重傳;8、保存數(shù)據(jù)包。對(duì)于JMS方式,前端采集器部署發(fā)送端程序,目的端部署接收端程序,發(fā)送端按照一定的時(shí)間周期,執(zhí)行數(shù)據(jù)掃描,一旦發(fā)現(xiàn)數(shù)據(jù)包目錄中存在新的數(shù)據(jù)包文件,先將文件信息記載到發(fā)送端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)JMS協(xié)議,利用消息中間件將數(shù)據(jù)包文件作為消息附件進(jìn)行投遞,并等待接收端回復(fù)信息。接收端收到信息后,將文件保存并將文件信息記載到本地配置數(shù)據(jù)庫(kù)中,然后向接收端反饋回執(zhí),即發(fā)送確認(rèn)信息?;贘MS協(xié)議數(shù)據(jù)遠(yuǎn)程同步處理流程如下UJMS發(fā)送端掃描數(shù)據(jù);2、將待發(fā)送的數(shù)據(jù)包信息計(jì)入JMS發(fā)送端的配置庫(kù),用于糾錯(cuò)或重傳;3、JMS消息生產(chǎn)者服務(wù);4、JMS發(fā)送端的ActiveMQ以附件形式上傳數(shù)據(jù)包;5、JMS接收端的ActiveMQ下載數(shù)據(jù)包;6、JMS消息消費(fèi)者服務(wù);7、將接收到的數(shù)據(jù)包信息計(jì)入JMS接收端的配置庫(kù),用于糾錯(cuò)或重傳;8、保存數(shù)據(jù)包。在上述步驟S4和S5中,將數(shù)據(jù)包解析成SQL語(yǔ)句和變更數(shù)據(jù)和將SQL語(yǔ)句和變更數(shù)據(jù)入庫(kù)到目標(biāo)數(shù)據(jù)庫(kù)的步驟具體為目標(biāo)數(shù)據(jù)庫(kù)接收到數(shù)據(jù)包后,對(duì)于XML格式,解析SQL語(yǔ)句,并按照預(yù)定規(guī)則轉(zhuǎn)化為自身的數(shù)據(jù)庫(kù)格式后入庫(kù);對(duì)于CSV格式,則按照目標(biāo)數(shù)據(jù)庫(kù)相應(yīng)的數(shù)據(jù)字典信息構(gòu)造入庫(kù)操作語(yǔ)句執(zhí)行入庫(kù)操作。通過(guò)以上所述,本實(shí)施例的遠(yuǎn)程數(shù)據(jù)增量同步方法通過(guò)分析源數(shù)據(jù)庫(kù)的操作日志,不僅可以定時(shí)將數(shù)據(jù)庫(kù)中發(fā)生增、刪、改的記錄提取出來(lái)形成包含增量記錄的數(shù)據(jù)包,而且可以根據(jù)網(wǎng)絡(luò)狀況和數(shù)據(jù)同步需求,將數(shù)據(jù)包以JMS或FTP的方式,利用消息中間件或FTP客戶端/服務(wù)器端產(chǎn)品,并在一定的配置管理支持下,將數(shù)據(jù)包傳輸給目標(biāo)數(shù)據(jù)庫(kù)系統(tǒng)。圖3是本發(fā)明實(shí)施例中基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步裝置的結(jié)構(gòu)圖。參照?qǐng)D3所示,本實(shí)施例提供一種基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步裝置,其主要包括獲取模塊I,用于獲取源數(shù)據(jù)庫(kù)的DML;數(shù)據(jù)包生成模塊2,用于將DML導(dǎo)出為數(shù)據(jù)包;同步模塊3,用于將數(shù)據(jù)包遠(yuǎn)程同步到目標(biāo)數(shù)據(jù)庫(kù);解析模塊4,用于將數(shù)據(jù)包解析成SQL語(yǔ)句和變更數(shù)據(jù);入庫(kù)模塊5,用于將SQL語(yǔ)句和變更數(shù)據(jù)入庫(kù)到目標(biāo)數(shù)據(jù)庫(kù)。具體地,上述數(shù)據(jù)包生成模塊具體用于導(dǎo)出數(shù)據(jù)包文件,包括XML文件和CSV文件,其中XML文件記錄所有DML中的SQL語(yǔ)句,CSV記錄所有增加和修改的變更數(shù)據(jù)。同步模塊具體用于根據(jù)網(wǎng)絡(luò)狀況和同步緊急度需求,選擇采用JMS或者FTP的方式進(jìn)行遠(yuǎn)程同步。對(duì)于FTP方式,建立數(shù)據(jù)包目錄,前端采集器部署發(fā)送端程序,目的端部署接收端程序,發(fā)送端按照一定的時(shí)間周期,執(zhí)行數(shù)據(jù)掃描,若發(fā)現(xiàn)數(shù)據(jù)包目錄中存在新的數(shù)據(jù)包文件,先將文件信息記載到發(fā)送端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)FTP協(xié)議,訪問(wèn)遠(yuǎn)程FTP服務(wù)器端,將數(shù)據(jù)包文件上傳,并等待接收端回復(fù)信息。接收端收到所述數(shù)據(jù)包文件后,將數(shù)據(jù)包文件保存并將所述文件信息記載到接收端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)FTP命令的方式向接收端反饋回執(zhí)。對(duì)于JMS方式,建立數(shù)據(jù)包目錄,部署發(fā)送端程序和接收端程序,發(fā)送端按照一定的時(shí)間周期,執(zhí)行數(shù)據(jù)掃描,若發(fā)現(xiàn)數(shù)據(jù)包目錄中存在新的數(shù)據(jù)包文件,先將文件信息記載到發(fā)送端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)JMS協(xié)議,利用消息中間件將數(shù)據(jù)包文件作為消息附件進(jìn)行投遞,并等待接收端回復(fù)信息。接收端收到信息后,將文件保存并將文件信息記載到本地配置數(shù)據(jù)庫(kù)中,然后向接收端反饋回執(zhí),即發(fā)送確認(rèn)信息。本實(shí)施例的入庫(kù)模塊具體用于目標(biāo)數(shù)據(jù)庫(kù)接收到數(shù)據(jù)包后,對(duì)于XML格式,解析SQL語(yǔ)句,并按照預(yù)定規(guī)則轉(zhuǎn)化為自身的數(shù)據(jù)庫(kù)格式后入庫(kù);對(duì)于CSV格式,則按照目標(biāo)數(shù)據(jù)庫(kù)相應(yīng)的數(shù)據(jù)字典信息構(gòu)造入庫(kù)操作語(yǔ)句執(zhí)行入庫(kù)操作。綜上所述,本發(fā)明前端抽取程序形成的數(shù)據(jù)包,可以選擇以JMS或者FTP的方式送達(dá)目的端。JMS基于消息中間件,可以保證零星和少量數(shù)據(jù)的遠(yuǎn)程實(shí)時(shí)投遞;FTP支持?jǐn)帱c(diǎn)續(xù)傳,適合大規(guī)模數(shù)據(jù)的遠(yuǎn)程傳輸,兩者互為補(bǔ)充,保證了遠(yuǎn)程同步過(guò)程的穩(wěn)定性。而且,數(shù)據(jù)包既是前段抽取程序和遠(yuǎn)程同步程序的交接點(diǎn),又作為源端系統(tǒng)增量數(shù)據(jù)的備份,可以永久保存起來(lái),這樣即使在網(wǎng)絡(luò)環(huán)境極其惡劣甚至網(wǎng)絡(luò)訪問(wèn)受限的情況下,也能采取線下的方式將保存有數(shù)據(jù)包的物理介質(zhì)送達(dá)目的端,具有傳統(tǒng)遠(yuǎn)程數(shù)據(jù)同步或傳輸裝置所不具備的功能。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制其專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,直接或間接運(yùn)用在其他相關(guān)的
技術(shù)領(lǐng)域
,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。權(quán)利要求1.一種基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步方法,其特征在于,包括以下步驟獲取源數(shù)據(jù)庫(kù)的DML;將所述DML導(dǎo)出為數(shù)據(jù)包;將所述數(shù)據(jù)包遠(yuǎn)程同步到目標(biāo)數(shù)據(jù)庫(kù);將所述數(shù)據(jù)包解析成SQL語(yǔ)句和變更數(shù)據(jù);將所述SQL語(yǔ)句和變更數(shù)據(jù)更新到目標(biāo)數(shù)據(jù)庫(kù)。2.如權(quán)利要求1所述的遠(yuǎn)程數(shù)據(jù)增量同步方法,其特征在于,所述將DML導(dǎo)出為數(shù)據(jù)包的步驟具體包括導(dǎo)出數(shù)據(jù)包文件,包括XML文件和CSV文件,其中XML文件記錄所有DML中的SQL語(yǔ)句,CSV記錄所有增加和修改的變更數(shù)據(jù)。3.如權(quán)利要求1所述的遠(yuǎn)程數(shù)據(jù)增量同步方法,其特征在于,所述將數(shù)據(jù)包遠(yuǎn)程同步到目標(biāo)數(shù)據(jù)庫(kù)的步驟包括根據(jù)網(wǎng)絡(luò)狀況和同步緊急度需求,選擇采用JMS或者FTP的方式進(jìn)行遠(yuǎn)程同步。4.如權(quán)利要求3所述的遠(yuǎn)程數(shù)據(jù)增量同步方法,其特征在于,所述將數(shù)據(jù)包遠(yuǎn)程同步到目標(biāo)數(shù)據(jù)庫(kù)的步驟具體包括對(duì)于FTP方式,建立數(shù)據(jù)包目錄,部署FTP客戶端程序和FTP服務(wù)器端程序,發(fā)送端按照一定的時(shí)間周期,執(zhí)行數(shù)據(jù)掃描,若發(fā)現(xiàn)數(shù)據(jù)包目錄中存在新的數(shù)據(jù)包文件,先將文件信息記載到發(fā)送端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)FTP協(xié)議,訪問(wèn)遠(yuǎn)程FTP服務(wù)器端,將數(shù)據(jù)包文件上傳,并等待接收端回復(fù)信息,接收端收到所述數(shù)據(jù)包文件后,將數(shù)據(jù)包文件保存并將所述文件信息記載到接收端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)FTP命令的方式向接收端反饋回執(zhí);對(duì)于JMS方式,建立數(shù)據(jù)包目錄,部署發(fā)送端程序和接收端程序,發(fā)送端按照一定的時(shí)間周期,執(zhí)行數(shù)據(jù)掃描,若發(fā)現(xiàn)數(shù)據(jù)包目錄中存在新的數(shù)據(jù)包文件,先將文件信息記載到發(fā)送端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)JMS協(xié)議,利用消息中間件將數(shù)據(jù)包文件作為消息附件進(jìn)行投遞,并等待接收端回復(fù)信息,接收端收到信息后,將文件保存并將文件信息記載到本地配置數(shù)據(jù)庫(kù)中,然后向接收端反饋回執(zhí)。5.如權(quán)利要求1所述的遠(yuǎn)程數(shù)據(jù)增量同步方法,其特征在于,所述將SQL語(yǔ)句和變更數(shù)據(jù)入庫(kù)到目標(biāo)數(shù)據(jù)庫(kù)的步驟包括目標(biāo)數(shù)據(jù)庫(kù)接收到數(shù)據(jù)包后,對(duì)于XML格式,解析SQL語(yǔ)句,并按照預(yù)定規(guī)則轉(zhuǎn)化為自身的數(shù)據(jù)庫(kù)格式后入庫(kù);對(duì)于CSV格式,則按照目標(biāo)數(shù)據(jù)庫(kù)相應(yīng)的數(shù)據(jù)字典信息構(gòu)造入庫(kù)操作語(yǔ)句執(zhí)行入庫(kù)操作。6.一種基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步裝置,其特征在于,包括獲取模塊,用于獲取源數(shù)據(jù)庫(kù)的DML;數(shù)據(jù)包生成模塊,用于將所述DML導(dǎo)出為數(shù)據(jù)包;同步模塊,用于將所述數(shù)據(jù)包遠(yuǎn)程同步到目標(biāo)數(shù)據(jù)庫(kù);解析模塊,用于將所述數(shù)據(jù)包解析成SQL語(yǔ)句和變更數(shù)據(jù);入庫(kù)模塊,用于將所述SQL語(yǔ)句和變更數(shù)據(jù)更新到目標(biāo)數(shù)據(jù)庫(kù)。7.如權(quán)利要求6所述的遠(yuǎn)程數(shù)據(jù)增量同步裝置,其特征在于,所述數(shù)據(jù)包生成模塊具體用于導(dǎo)出數(shù)據(jù)包文件,包括XML文件和CSV文件,其中XML文件記錄所有DML中的SQL語(yǔ)句,CSV記錄所有增加和修改的變更數(shù)據(jù)。8.如權(quán)利要求6所述的遠(yuǎn)程數(shù)據(jù)增量同步裝置,其特征在于,所述同步模塊具體用于根據(jù)網(wǎng)絡(luò)狀況和同步緊急度需求,選擇采用JMS或者FTP的方式進(jìn)行遠(yuǎn)程同步。9.如權(quán)利要求8所述的遠(yuǎn)程數(shù)據(jù)增量同步裝置,其特征在于,所述同步模塊還用于對(duì)于FTP方式,建立數(shù)據(jù)包目錄,部署FTP客戶端程序和FTP服務(wù)器端程序,發(fā)送端按照一定的時(shí)間周期,執(zhí)行數(shù)據(jù)掃描,若發(fā)現(xiàn)數(shù)據(jù)包目錄中存在新的數(shù)據(jù)包文件,先將文件信息記載到發(fā)送端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)FTP協(xié)議,訪問(wèn)遠(yuǎn)程FTP服務(wù)器端,將數(shù)據(jù)包文件上傳,并等待接收端回復(fù)信息,接收端收到所述數(shù)據(jù)包文件后,將數(shù)據(jù)包文件保存并將所述文件信息記載到接收端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)FTP命令的方式向接收端反饋回執(zhí);對(duì)于JMS方式,建立數(shù)據(jù)包目錄,部署發(fā)送端程序和接收端程序,發(fā)送端按照一定的時(shí)間周期,執(zhí)行數(shù)據(jù)掃描,若發(fā)現(xiàn)數(shù)據(jù)包目錄中存在新的數(shù)據(jù)包文件,先將文件信息記載到發(fā)送端本地配置數(shù)據(jù)庫(kù)中,然后通過(guò)JMS協(xié)議,利用消息中間件將數(shù)據(jù)包文件作為消息附件進(jìn)行投遞,并等待接收端回復(fù)信息,接收端收到信息后,將文件保存并將文件信息記載到本地配置數(shù)據(jù)庫(kù)中,然后向接收端反饋回執(zhí)。10.如權(quán)利要求6所述的遠(yuǎn)程數(shù)據(jù)增量同步裝置,其特征在于,所述入庫(kù)模塊具體用于目標(biāo)數(shù)據(jù)庫(kù)接收到數(shù)據(jù)包后,對(duì)于XML格式,解析SQL語(yǔ)句,并按照預(yù)定規(guī)則轉(zhuǎn)化為自身的數(shù)據(jù)庫(kù)格式后入庫(kù);對(duì)于CSV格式,則按照目標(biāo)數(shù)據(jù)庫(kù)相應(yīng)的數(shù)據(jù)字典信息構(gòu)造入庫(kù)操作語(yǔ)句執(zhí)行入庫(kù)操作。全文摘要本發(fā)明涉及基于數(shù)據(jù)包的遠(yuǎn)程數(shù)據(jù)增量同步方法,包括步驟獲取源數(shù)據(jù)庫(kù)的DML;將DML導(dǎo)出為數(shù)據(jù)包;將數(shù)據(jù)包遠(yuǎn)程同步到目標(biāo)數(shù)據(jù)庫(kù);將數(shù)據(jù)包解析成SQL語(yǔ)句和變更數(shù)據(jù);將SQL語(yǔ)句和變更數(shù)據(jù)更新到目標(biāo)數(shù)據(jù)庫(kù)。本發(fā)明可以定時(shí)將數(shù)據(jù)庫(kù)中發(fā)生增、刪、改的記錄提取出來(lái)形成包含增量記錄的數(shù)據(jù)包,然后根據(jù)網(wǎng)絡(luò)狀況和數(shù)據(jù)同步需求,將數(shù)據(jù)包以JMS或FTP的方式,利用消息中間件或FTP客戶端/服務(wù)器端產(chǎn)品,并在一定的配置管理支持下,將數(shù)據(jù)包傳輸給目標(biāo)數(shù)據(jù)庫(kù)系統(tǒng),從而保持遠(yuǎn)、近端數(shù)據(jù)庫(kù)數(shù)據(jù)的一致性。文檔編號(hào)H04L29/08GK103067483SQ20121056886公開(kāi)日2013年4月24日申請(qǐng)日期2012年12月25日優(yōu)先權(quán)日2012年12月25日發(fā)明者戴浩申請(qǐng)人:廣東郵電職業(yè)技術(shù)學(xué)院
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
富源县| 诸暨市| 安阳县| 志丹县| 静海县| 德令哈市| 逊克县| 即墨市| 宕昌县| 昆明市| 弥渡县| 广汉市| 朝阳区| 静宁县| 教育| 佛教| 吉安县| 大余县| 祁东县| 四子王旗| 汤原县| 潞西市| 连城县| 博客| 富川| 五河县| 温州市| 深州市| 彰化县| 大理市| 库伦旗| 乐至县| 图们市| 栾城县| 邳州市| 石棉县| 漳平市| 鄂托克前旗| 涟源市| 讷河市| 灵山县|