專利名稱::一種數(shù)據(jù)同步方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本申請涉及數(shù)據(jù)傳輸領(lǐng)域,特別涉及一種數(shù)據(jù)同步方法、裝置及系統(tǒng)。
背景技術(shù):
:目前,一般采用在源端數(shù)據(jù)庫(oracle數(shù)據(jù)庫)建立快照表及觸發(fā)器的方法,實現(xiàn)增量數(shù)據(jù)同步,具體過程為通過觸發(fā)器捕獲源端數(shù)據(jù)庫的增量數(shù)據(jù),并將增量數(shù)據(jù)寫入快照表中,從而將快照表中的增量數(shù)據(jù)寫入到目的端數(shù)據(jù)庫中。但上述實現(xiàn)數(shù)據(jù)同步的方案中,在源端數(shù)據(jù)庫中建立觸發(fā)器與快照表會使得對源端數(shù)據(jù)庫的侵入性較強,并且影響源端數(shù)據(jù)庫中相應(yīng)表的操作性能,數(shù)據(jù)同步速度相對較慢。
發(fā)明內(nèi)容有鑒于此,本申請?zhí)峁┮环N數(shù)據(jù)同步方法、裝置及系統(tǒng),用于解決現(xiàn)有數(shù)據(jù)同步方案對源端數(shù)據(jù)庫的侵入性較強,并且影響源端數(shù)據(jù)庫中相應(yīng)表的操作性能,數(shù)據(jù)同步速度相對較慢的技術(shù)問題。為解決上述技術(shù)問題,本申請?zhí)峁┝艘环N數(shù)據(jù)同步方法,包括獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);·其中,所述變更表中的數(shù)據(jù)由源端數(shù)據(jù)庫的增量變化數(shù)據(jù)中提取,并以條為單位按照其被提取的前后順序依次存儲至預(yù)設(shè)的變更表中;將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫;獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,判斷所述接收結(jié)果信息是否表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,如果是,刪除所述變更表中的當(dāng)前同步數(shù)據(jù)。上述方法,優(yōu)選的,所述獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù)包括任意提取源端數(shù)據(jù)庫的變更表中的一條或多條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);或提取所述變更表中存儲順序最前的一條或連續(xù)多條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù)。上述方法,優(yōu)選的,所述將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫包括對所述當(dāng)前同步數(shù)據(jù)進(jìn)行封裝,得到當(dāng)前數(shù)據(jù)包;將所述當(dāng)前數(shù)據(jù)包發(fā)送至目的端數(shù)據(jù)庫。上述方法,優(yōu)選的,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸未成功,所述方法還包括觸發(fā)所述目的端數(shù)據(jù)庫對其接收到的當(dāng)前同步數(shù)據(jù)進(jìn)行刪除;重新獲取所述變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù),直到所述目的端數(shù)據(jù)庫的接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功。上述方法,優(yōu)選的,在所述刪除所述變更表中的當(dāng)前同步數(shù)據(jù)之后,所述方法還包括本申請?zhí)峁┝艘环N數(shù)據(jù)同步裝置,包括數(shù)據(jù)獲取單元,用于獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);其中,所述變更表中的數(shù)據(jù)由源端數(shù)據(jù)庫的增量變化數(shù)據(jù)中提取,并以條為單位按照其被提取的前后順序依次存儲至預(yù)設(shè)的變更表中;數(shù)據(jù)發(fā)送單元,用于將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫;邏輯判斷單元,用于獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,判斷所述接收結(jié)果信息是否表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,如果是,觸發(fā)數(shù)據(jù)刪除單元;所述數(shù)據(jù)刪除單元,用于刪除所述變更表中的當(dāng)前同步數(shù)據(jù)。上述裝置,優(yōu)選的,所述數(shù)據(jù)獲取單元包括第一獲取子單元或第二獲取子單元,其中·所述第一獲取子單元,用于任意提取源端數(shù)據(jù)庫的變更表中的一條或條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);所述第二獲取子單元,用于提取所述變更表中存儲順序最前的一條或連續(xù)多條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù)。上述裝置,優(yōu)選的,所述數(shù)據(jù)發(fā)送單元包括封裝子單元,用于對所述當(dāng)前同步數(shù)據(jù)進(jìn)行封裝,得到當(dāng)前數(shù)據(jù)包;發(fā)送子單元,用于將所述當(dāng)前數(shù)據(jù)包發(fā)送至目的端數(shù)據(jù)庫。上述裝置,優(yōu)選的,所述裝置還包括第一觸發(fā)單元,用于若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸未成功,觸發(fā)所述目的端數(shù)據(jù)庫對其接收到的當(dāng)前同步數(shù)據(jù)進(jìn)行刪除,并觸發(fā)所述數(shù)據(jù)獲取單元重新獲取所述變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù),直到所述目的端數(shù)據(jù)庫的接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功。上述裝置,優(yōu)選的,所述裝置還包括本申請還提供了一種數(shù)據(jù)同步系統(tǒng),包括如上述任意一項所述的數(shù)據(jù)同步裝置。由上述方案可知,相對應(yīng)現(xiàn)有技術(shù)中通過觸發(fā)器捕獲源端數(shù)據(jù)庫的增量數(shù)據(jù),并將增量數(shù)據(jù)寫入快照表中,從而將快照表中的增量數(shù)據(jù)寫入到目的端數(shù)據(jù)庫中的方案,本申請?zhí)峁┑囊环N數(shù)據(jù)同步方法、裝置及系統(tǒng),通過獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫;獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,刪除所述變更表中的當(dāng)前同步數(shù)據(jù),從而實現(xiàn)源端數(shù)據(jù)庫與目的端數(shù)據(jù)庫之間的數(shù)據(jù)同步,同時,相對于現(xiàn)有方案,由對記錄有源端數(shù)據(jù)庫增量數(shù)據(jù)的變更表的操作,代替觸發(fā)器加快照表的操作,避免了對源端數(shù)據(jù)庫較強的侵入性,同時提高了數(shù)據(jù)同步的性能。為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本申請實施例一提供的一種數(shù)據(jù)同步方法的流程圖2為本申請實施例二提供的一種數(shù)據(jù)同步方法的流程圖;圖3為本申請實施例三提供的一種數(shù)據(jù)同步裝置的結(jié)構(gòu)示意4為本申請實施例三提供的一種數(shù)據(jù)同步裝置的部分結(jié)構(gòu)示意圖;圖5為本申請實施例三提供的一種數(shù)據(jù)同步裝置的另一部分結(jié)構(gòu)示意圖;圖6為本申請實施例四提供的一種數(shù)據(jù)同步裝置的結(jié)構(gòu)示意圖;圖7為本申請實施例五提供的一種數(shù)據(jù)同步系統(tǒng)生成變更表的數(shù)據(jù)流向圖;圖8為本申請實施例五提供的一種數(shù)據(jù)同步系統(tǒng)實現(xiàn)數(shù)據(jù)同步的流程圖。具體實施方式下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護(hù)的范圍。參考圖1,其示出了本申請實施例一提供的一種數(shù)據(jù)同步方法的流程圖,所述方法可以包括以下步驟步驟101:獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù)。需要說明的是,本申請可以應(yīng)用于Oracle數(shù)據(jù)庫,在產(chǎn)品圖形化配置工具中,建立Xbean配置文件,源端數(shù)據(jù)庫通過該配置文件使用Oracle特有的dbms_cdc-publish來創(chuàng)建一個變更表,Oracle數(shù)據(jù)庫將增量變化數(shù)據(jù)自動保存至所述變更表中。其中,所述變更表中的數(shù)據(jù)由源端數(shù)據(jù)庫的增量變化數(shù)據(jù)中提取,并以條為單位按照其被提取的前后順序依次存儲至預(yù)設(shè)的變更表中。需要說明的是,所述源端數(shù)據(jù)庫的增量變化數(shù)據(jù)可以通過解析所述源端數(shù)據(jù)庫的日志文件的方式進(jìn)行獲取。步驟102:將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫。優(yōu)選的,所述步驟102可以包括以下步驟對所述當(dāng)前同步數(shù)據(jù)進(jìn)行封裝,得到當(dāng)前數(shù)據(jù)包。將所述當(dāng)前數(shù)據(jù)包發(fā)送至目的端數(shù)據(jù)庫。其中,所述將所述當(dāng)前數(shù)據(jù)包發(fā)送至目的端數(shù)據(jù)庫的具體實現(xiàn)包括啟動發(fā)送線程;利用所述發(fā)送線程將所述當(dāng)前數(shù)據(jù)包發(fā)送至所述目的端數(shù)據(jù)庫。步驟103:獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息。其中,所述接收結(jié)果信息是指在所述目的端數(shù)據(jù)庫接收到所述當(dāng)前同步數(shù)據(jù)之后,所述目的端數(shù)據(jù)庫判斷所述當(dāng)前同步數(shù)據(jù)的數(shù)據(jù)格式等信息是否滿足傳輸成功規(guī)則的信息。步驟104:判斷所述接收結(jié)果信息是否表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,如果是,執(zhí)行步驟105;步驟105:刪除所述變更表中的當(dāng)前同步數(shù)據(jù)。由上述方案可知,相對應(yīng)現(xiàn)有技術(shù)中通過觸發(fā)器捕獲源端數(shù)據(jù)庫的增量數(shù)據(jù),并將增量數(shù)據(jù)寫入快照表中,從而將快照表中的增量數(shù)據(jù)寫入到目的端數(shù)據(jù)庫中的方案,本申請實施例一提供的一種數(shù)據(jù)同步方法,通過獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫;獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,刪除所述變更表中的當(dāng)前同步數(shù)據(jù),從而實現(xiàn)源端數(shù)據(jù)庫與目的端數(shù)據(jù)庫之間的增量數(shù)據(jù)同步,同時,相對于現(xiàn)有方案,由對記錄有源端數(shù)據(jù)庫增量數(shù)據(jù)的變更表的操作,代替觸發(fā)器加快照表的操作,避免了對源端數(shù)據(jù)庫較強的侵入性,同時提高了數(shù)據(jù)同步的性能。優(yōu)選的,所述步驟101可以通過以下方式具體實現(xiàn)方式一任意提取源端數(shù)據(jù)庫的變更表中的一條或多條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù)。需要說明的是,當(dāng)所述步驟101通過所述方式一實現(xiàn)時,所述步驟105具體包括刪除所述變更表中當(dāng)前選取的一條或多條數(shù)據(jù)。方式二提取所述變更表中存儲順序最前的一條或連續(xù)多條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù)。參考圖2,其示出了本申請實施例二提供的一種數(shù)據(jù)同步方法的流程圖,在所述步驟104中,判斷所述接收結(jié)果信息是否表明所述當(dāng)前同步數(shù)據(jù)傳輸成功時,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸未成功,所述方法還包括步驟S106:觸發(fā)所述目的端數(shù)據(jù)庫對其接收到的當(dāng)前同步數(shù)據(jù)進(jìn)行刪除,并返回執(zhí)行所述步驟101重新獲取所述變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù),直到所述目的端數(shù)據(jù)庫的接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功。需要說明的是,圖2中所示的所述步驟101至所述步驟105與本申請實施例一中所述內(nèi)容一致,在此不再詳細(xì)描述。其中,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸未成功,說明所述當(dāng)前同步數(shù)據(jù)在傳輸過程中被植入非法數(shù)據(jù),或部分?jǐn)?shù)據(jù)丟失等,此時需要重新對所述變更表中的數(shù)據(jù)進(jìn)行獲取并傳輸。由上述方案可知,相對應(yīng)現(xiàn)有技術(shù)中通過觸發(fā)器捕獲源端數(shù)據(jù)庫的增量數(shù)據(jù),并將增量數(shù)據(jù)寫入快照表中,從而將快照表中的增量數(shù)據(jù)寫入到目的端數(shù)據(jù)庫中的方案,本申請實施例二提供的一種數(shù)據(jù)同步方法,通過獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫;獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,刪除所述變更表中的當(dāng)前同步數(shù)據(jù),而若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)未傳輸成功,則觸發(fā)所述目的端數(shù)據(jù)庫對其接收到的當(dāng)前同步數(shù)據(jù)進(jìn)行刪除,并重新獲取所述變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù),直到所述目的端數(shù)據(jù)庫的接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,從而實現(xiàn)源端數(shù)據(jù)庫與目的端數(shù)據(jù)庫之間的一次增量數(shù)據(jù)同步,同時,相對于現(xiàn)有方案,由對記錄有源端數(shù)據(jù)庫增量數(shù)據(jù)的變更表的操作,代替觸發(fā)器加快照表的操作,避免了對源端數(shù)據(jù)庫較強的侵入性,同時提高了數(shù)據(jù)同步的性能。參考圖3,其示出了本申請實施例三提供的一種數(shù)據(jù)同步裝置的結(jié)構(gòu)示意圖,所述裝置包括數(shù)據(jù)獲取單元301,用于獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);其中,所述變更表中的數(shù)據(jù)由源端數(shù)據(jù)庫的增量變化數(shù)據(jù)中提取,并以條為單位按照其被提取的前后順序依次存儲至預(yù)設(shè)的變更表中。需要說明的是,本申請可以應(yīng)用于Oracle數(shù)據(jù)庫,在產(chǎn)品圖形化配置工具中,建立Xbean配置文件,源端數(shù)據(jù)庫通過該配置文件使用Oracle特有的dbms_cdc-publish來創(chuàng)建一個變更表,Oracle數(shù)據(jù)庫將增量變化數(shù)據(jù)自動保存至所述變更表中。其中,所述變更表中的數(shù)據(jù)由源端數(shù)據(jù)庫的增量變化數(shù)據(jù)中提取,并以條為單位按照其被提取的前后順序依次存儲至預(yù)設(shè)的變更表中。需要說明的是,所述源端數(shù)據(jù)庫的增量變化數(shù)據(jù)可以通過解析所述源端數(shù)據(jù)庫的日志文件的方式進(jìn)行獲取。優(yōu)選的,參考圖4,其示出了本申請實施例三的部分結(jié)構(gòu)示意圖,所述數(shù)據(jù)獲取單元301包括第一獲取子單元311或第二獲取子單元312,其中所述第一獲取子單元311,用于任意提取源端數(shù)據(jù)庫的變更表中的一條或條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);所述第二獲取子單元312,用于提取所述變更表中存儲順序最前的一條或連續(xù)多條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù)。數(shù)據(jù)發(fā)送單元302,用于將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫。其中,所述數(shù)據(jù)發(fā)送單元302與所述數(shù)據(jù)獲取單元301相連接。優(yōu)選的,參考圖5,其示出了本申請實施例三的另一部分結(jié)構(gòu)示意圖,所述數(shù)據(jù)發(fā)送單元302包括封裝子單元321,用于對所述當(dāng)前同步數(shù)據(jù)進(jìn)行封裝,得到當(dāng)前數(shù)據(jù)包;發(fā)送子單元322,用于將所述當(dāng)前數(shù)據(jù)包發(fā)送至目的端數(shù)據(jù)庫。其中,所述發(fā)送子單元322具體用于啟動發(fā)送線程;利用所述發(fā)送線程將所述當(dāng)前數(shù)據(jù)包發(fā)送至所述目的端數(shù)據(jù)庫。邏輯判斷單元303,用于獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,判斷所述接收結(jié)果信息是否表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,如果是,觸發(fā)數(shù)據(jù)刪除單元304。其中,所述接收結(jié)果信息是指在所述目的端數(shù)據(jù)庫接收到所述當(dāng)前同步數(shù)據(jù)之后,所述目的端數(shù)據(jù)庫判斷所述當(dāng)前同步數(shù)據(jù)的數(shù)據(jù)格式等信息是否滿足傳輸成功規(guī)則的信息。所述數(shù)據(jù)刪除單元304,用于刪除所述變更表中的當(dāng)前同步數(shù)據(jù)。其中,所述數(shù)據(jù)刪除單元304與所述邏輯判斷單元303相連接。由上述方案可知,相對應(yīng)現(xiàn)有技術(shù)中通過觸發(fā)器捕獲源端數(shù)據(jù)庫的增量數(shù)據(jù),并將增量數(shù)據(jù)寫入快照表中,從而將快照表中的增量數(shù)據(jù)寫入到目的端數(shù)據(jù)庫中的方案,本申請實施例三提供的一種數(shù)據(jù)同步裝置,通過獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫;獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,刪除所述變更表中的當(dāng)前同步數(shù)據(jù),從而實現(xiàn)源端數(shù)據(jù)庫與目的端數(shù)據(jù)庫之間的增量數(shù)據(jù)同步,同時,相對于現(xiàn)有方案,由對記錄有源端數(shù)據(jù)庫增量數(shù)據(jù)的變更表的操作,代替觸發(fā)器加快照表的操作,避免了對源端數(shù)據(jù)庫較強的侵入性,同時提高了數(shù)據(jù)同步的性能。參考圖6,其示出了本申請實施例四提供的一種數(shù)據(jù)同步裝置的結(jié)構(gòu)示意圖,所述裝置還包括第一觸發(fā)單元305,用于若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸未成功,觸發(fā)所述目的端數(shù)據(jù)庫對其接收到的當(dāng)前同步數(shù)據(jù)進(jìn)行刪除,并觸發(fā)所述數(shù)據(jù)獲取單元301重新獲取所述變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù),直到所述目的端數(shù)據(jù)庫的接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功。需要說明的是,所述第一觸發(fā)單元305分別與所述邏輯判斷單元303和所述數(shù)據(jù)獲取單元301相連接。其中,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸未成功,說明所述當(dāng)前同步數(shù)據(jù)在傳輸過程中被植入非法數(shù)據(jù),或部分?jǐn)?shù)據(jù)丟失等,此時需要觸發(fā)所述數(shù)據(jù)獲取單元301重新對所述變更表中的數(shù)據(jù)進(jìn)行獲取并傳輸。需要說明的是,所述數(shù)據(jù)獲取單元301、所述數(shù)據(jù)發(fā)送單元302、所述邏輯判斷單元303和所述數(shù)據(jù)刪除單元304與本申請實施例四三中所述內(nèi)容一致,在此不再詳細(xì)描述。由上述方案可知,相對應(yīng)現(xiàn)有技術(shù)中通過觸發(fā)器捕獲源端數(shù)據(jù)庫的增量數(shù)據(jù),并將增量數(shù)據(jù)寫入快照表中,從而將快照表中的增量數(shù)據(jù)寫入到目的端數(shù)據(jù)庫中的方案,本申請實施例四提供的一種數(shù)據(jù)同步裝置,通過獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫;獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,刪除所述變更表中的當(dāng)前同步數(shù)據(jù),而若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)未傳輸成功,則觸發(fā)所述目的端數(shù)據(jù)庫對其接收到的當(dāng)前同步數(shù)據(jù)進(jìn)行刪除,并重新獲取所述變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù),直到所述目的端數(shù)據(jù)庫的接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,從而實現(xiàn)源端數(shù)據(jù)庫與目的端數(shù)據(jù)庫之間的一次增量數(shù)據(jù)同步,同時,相對于現(xiàn)有方案,由對記錄有源端數(shù)據(jù)庫增量數(shù)據(jù)的變更表的操作,代替觸發(fā)器加快照表的操作,避免了對源端數(shù)據(jù)庫較強的侵入性,同時提高了數(shù)據(jù)同步的性能。本申請五還提供了一種數(shù)據(jù)同步系統(tǒng),所述系統(tǒng)包括如上述實施例三與實施例四任意一項所述的數(shù)據(jù)同步裝置。需要說明的是,在本申請實施例實現(xiàn)數(shù)據(jù)同步之前,在所述源端數(shù)據(jù)庫sourcedatabaseonlineredolongfile中抽取增量數(shù)據(jù),生成變更表changetable。因此,所述變更表由所述源端數(shù)據(jù)庫中提取。參考圖7,源端數(shù)據(jù)庫生成變更表的流程示意圖。其中,在本申請實現(xiàn)數(shù)據(jù)同步之前,InforSuiteSIB(SIB,本申請實施例)首先根據(jù)配置信息,在源庫中部署⑶CH0TL0G,建立變更源ChangeSource,基于該變更源創(chuàng)建變更集ChangeSet,最后依據(jù)變更集生成變更表ChangeTable。之后源端數(shù)據(jù)庫會將變化信息以日志文件的形式保存,并解析日志文件,將變化信息寫入ChangeTable中。之后,本申請讀取ChangeTable中數(shù)據(jù),將數(shù)據(jù)同步至目的端數(shù)據(jù)庫,成功同步后,刪除ChangeTable中的對應(yīng)數(shù)據(jù)。參考圖8,其示出了本申請實施例五實現(xiàn)數(shù)據(jù)同步的流程圖,在801:解析Xbean,獲取配置信息。其中,Xbean是配置⑶Chotlog參數(shù)的xml配置文件,源端解析該文件獲取配置信息。802:初始化hotlog環(huán)境。其中,源端利用配置信息,使用oracle特有的dbms_cdc_pubIish來創(chuàng)建一個變更表,用于捕獲源表變更記錄。初始化環(huán)境后,Oracle將增量數(shù)據(jù)自動保存到變更表Changetable中ο803:循環(huán)查詢Changetable:源端查詢線程循環(huán)查詢Changetable中的增量數(shù)據(jù)。804:封裝并發(fā)送數(shù)據(jù)將查詢線程查詢的數(shù)據(jù)打包,利用發(fā)送線程發(fā)送到目的端。805:數(shù)據(jù)入庫目的端收到發(fā)送線程發(fā)送的數(shù)據(jù),將數(shù)據(jù)保存到目的數(shù)據(jù)庫。806:返回信息通過同步線程返回失敗或成功信息?!?07:接收并處理返回信息源端收到返回信息,并判斷信息是成功還是失敗的信肩、O808Il^Changetable信息當(dāng)返回信息是成功信息,源端將刪除Changetable中對應(yīng)的信息。809:不刪除Changetable信息當(dāng)返回信息是失敗信息,源端將不刪除Changetable中對應(yīng)的信息。810:繼續(xù)循環(huán)返回執(zhí)行803開始新的循環(huán)。由上述方案可知,相對應(yīng)現(xiàn)有技術(shù)中通過觸發(fā)器捕獲源端數(shù)據(jù)庫的增量數(shù)據(jù),并將增量數(shù)據(jù)寫入快照表中,從而將快照表中的增量數(shù)據(jù)寫入到目的端數(shù)據(jù)庫中的方案,本申請實施例五提供的一種數(shù)據(jù)同步系統(tǒng),通過獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫;獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,刪除所述變更表中的當(dāng)前同步數(shù)據(jù),從而實現(xiàn)源端數(shù)據(jù)庫與目的端數(shù)據(jù)庫之間的數(shù)據(jù)同步,同時,相對于現(xiàn)有方案,由對記錄有源端數(shù)據(jù)庫增量數(shù)據(jù)的變更表的操作,代替觸發(fā)器加快照表的操作,避免了對源端數(shù)據(jù)庫較強的侵入性,同時提高了數(shù)據(jù)同步的性能。需要說明的是,本說明書中的各個實施例均采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在+另外的相同要素。以上對本申請所提供的一種數(shù)據(jù)同步方法、裝置及系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。權(quán)利要求1.一種數(shù)據(jù)同步方法,其特征在于,包括獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);其中,所述變更表中的數(shù)據(jù)由源端數(shù)據(jù)庫的增量變化數(shù)據(jù)中提取,并以條為單位按照其被提取的前后順序依次存儲至預(yù)設(shè)的變更表中;將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫;獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,判斷所述接收結(jié)果信息是否表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,如果是,刪除所述變更表中的當(dāng)前同步數(shù)據(jù)。2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù)包括任意提取源端數(shù)據(jù)庫的變更表中的一條或多條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);或提取所述變更表中存儲順序最前的一條或連續(xù)多條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù)。3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫包括對所述當(dāng)前同步數(shù)據(jù)進(jìn)行封裝,得到當(dāng)前數(shù)據(jù)包;將所述當(dāng)前數(shù)據(jù)包發(fā)送至目的端數(shù)據(jù)庫。4.根據(jù)權(quán)利要求I所述的方法,其特征在于,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸未成功,所述方法還包括觸發(fā)所述目的端數(shù)據(jù)庫對其接收到的當(dāng)前同步數(shù)據(jù)進(jìn)行刪除;重新獲取所述變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù),直到所述目的端數(shù)據(jù)庫的接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功。5.一種數(shù)據(jù)同步裝置,其特征在于,包括數(shù)據(jù)獲取單元,用于獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);其中,所述變更表中的數(shù)據(jù)由源端數(shù)據(jù)庫的增量變化數(shù)據(jù)中提取,并以條為單位按照其被提取的前后順序依次存儲至預(yù)設(shè)的變更表中;數(shù)據(jù)發(fā)送單元,用于將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫;邏輯判斷單元,用于獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,判斷所述接收結(jié)果信息是否表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,如果是,觸發(fā)數(shù)據(jù)刪除單元;所述數(shù)據(jù)刪除單元,用于刪除所述變更表中的當(dāng)前同步數(shù)據(jù)。6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述數(shù)據(jù)獲取單元包括第一獲取子單元或第二獲取子單元,其中所述第一獲取子單元,用于任意提取源端數(shù)據(jù)庫的變更表中的一條或條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);所述第二獲取子單元,用于提取所述變更表中存儲順序最前的一條或連續(xù)多條數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù)。7.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述數(shù)據(jù)發(fā)送單元包括封裝子單元,用于對所述當(dāng)前同步數(shù)據(jù)進(jìn)行封裝,得到當(dāng)前數(shù)據(jù)包;發(fā)送子單元,用于將所述當(dāng)前數(shù)據(jù)包發(fā)送至目的端數(shù)據(jù)庫。8.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括第一觸發(fā)單元,用于若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸未成功,觸發(fā)所述目的端數(shù)據(jù)庫對其接收到的當(dāng)前同步數(shù)據(jù)進(jìn)行刪除,并觸發(fā)所述數(shù)據(jù)獲取單元重新獲取所述變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù),直到所述目的端數(shù)據(jù)庫的接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功。9.一種數(shù)據(jù)同步系統(tǒng),其特征在于,包括如上述權(quán)利要求5至8任意一項所述的數(shù)據(jù)同步裝置。全文摘要本申請公開了一種數(shù)據(jù)同步方法、裝置及系統(tǒng),所述方法包括獲取源端數(shù)據(jù)庫的變更表中的數(shù)據(jù)作為當(dāng)前同步數(shù)據(jù);其中,所述變更表中的數(shù)據(jù)由源端數(shù)據(jù)庫的增量變化數(shù)據(jù)中提取,并以條為單位按照其被提取的前后順序依次存儲至預(yù)設(shè)的變更表中;將所述當(dāng)前同步數(shù)據(jù)發(fā)送至目的端數(shù)據(jù)庫;獲取所述目的端數(shù)據(jù)庫的接收結(jié)果信息,若所述接收結(jié)果信息表明所述當(dāng)前同步數(shù)據(jù)傳輸成功,刪除所述變更表中的當(dāng)前同步數(shù)據(jù)。本申請實施例由對記錄有源端數(shù)據(jù)庫增量數(shù)據(jù)的變更表的操作,代替直接對源端數(shù)據(jù)庫的操作,避免了對源端數(shù)據(jù)庫較強的侵入性,從而提高數(shù)據(jù)同步的性能。文檔編號G06F17/30GK102929946SQ201210374250公開日2013年2月13日申請日期2012年9月27日優(yōu)先權(quán)日2012年9月27日發(fā)明者李翔,姚建萍,閆鵬,張輝,劉民,溫尚卓申請人:山東中創(chuàng)軟件工程股份有限公司,山東中創(chuàng)軟件商用中間件股份有限公司