国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步、校驗(yàn)方法、裝置及系統(tǒng)的制作方法

      文檔序號(hào):6545910閱讀:184來(lái)源:國(guó)知局
      一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步、校驗(yàn)方法、裝置及系統(tǒng)的制作方法
      【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步、校驗(yàn)方法、裝置及系統(tǒng),其中,異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法包括:在線狀態(tài)下,監(jiān)聽(tīng)客戶(hù)端數(shù)據(jù)庫(kù)的數(shù)據(jù)操作;獲取監(jiān)聽(tīng)到的發(fā)生變化的數(shù)據(jù)記錄并將所述數(shù)據(jù)記錄發(fā)送給服務(wù)器端;服務(wù)器端根據(jù)接收到的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù);所述離線數(shù)據(jù)同步部分包括:查詢(xún)客戶(hù)端數(shù)據(jù)庫(kù)中與預(yù)置的臨時(shí)表中相同ID字段與時(shí)間字段的數(shù)據(jù)記錄,獲取所述數(shù)據(jù)記錄并發(fā)送給服務(wù)器端;根據(jù)接收到所述數(shù)據(jù)記錄,服務(wù)器端查詢(xún)數(shù)據(jù)庫(kù)中是否存在與所述數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于所述數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄;若存在,服務(wù)器端根據(jù)接收到的客戶(hù)端發(fā)送的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
      【專(zhuān)利說(shuō)明】一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步、校驗(yàn)方法、裝置及系統(tǒng)
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及數(shù)據(jù)同步【技術(shù)領(lǐng)域】,具體涉及一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步、校驗(yàn)方法、裝置及系統(tǒng)。
      【背景技術(shù)】
      [0002]目前常用的差異數(shù)據(jù)捕捉方法主要有快照法(Snapshot)、日志法、API (Application Program Interface)法、影子表法、控制表法、時(shí)間戳法和觸發(fā)器法。
      [0003]快照法就是在某一時(shí)刻對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行一次“照相”,生成一個(gè)描述數(shù)據(jù)庫(kù)中數(shù)據(jù)的瞬時(shí)狀態(tài)的靜態(tài)文件,最后在規(guī)定時(shí)間內(nèi)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)。
      [0004]日志法就是通過(guò)分析數(shù)據(jù)庫(kù)日志信息來(lái)捕獲復(fù)制對(duì)象的變化序列。
      [0005]API (Application Program Interface,應(yīng)用程序接口)法就是在應(yīng)用程序和數(shù)據(jù)庫(kù)之間引入一類(lèi)中間件,由它提供一系列API,在API上完成應(yīng)用程序?qū)?shù)據(jù)庫(kù)修改的同時(shí),記錄下同步對(duì)象的變化序列。
      [0006]影子表法是初始化數(shù)據(jù)庫(kù)時(shí),為每一個(gè)同步對(duì)象表建立一個(gè)影子表,即作為一份當(dāng)前的拷貝,以后通過(guò)比較當(dāng)前的影子表與源表獲取變化信息。
      [0007]控制表法是為每個(gè)要同步的源表創(chuàng)建一個(gè)控制表,控制表只包括源表的主鍵字段和一些控制信息字段(更新時(shí)間、更新類(lèi)型等),當(dāng)源表中的某條記錄發(fā)生變化時(shí),同時(shí)添加或修改控制表相應(yīng)的主鍵記錄。
      [0008]時(shí)間戳法是需要相關(guān)應(yīng)用系統(tǒng)中的每個(gè)表中都有一個(gè)時(shí)間戳字段,以記錄每個(gè)表的修改時(shí)間。
      [0009]觸發(fā)器法是為復(fù)制對(duì)象創(chuàng)建相應(yīng)的觸發(fā)器,當(dāng)對(duì)復(fù)制對(duì)象進(jìn)行修改、插入和刪除等DML(Data Manipulation Language,數(shù)據(jù)操作語(yǔ)言)命令時(shí),觸發(fā)器被喚醒,將變化捕獲。
      [0010]采用上述快照法不依賴(lài)任何機(jī)制,不占用額外的系統(tǒng)資源,但因?yàn)樗菍?duì)數(shù)據(jù)庫(kù)的完整拷貝,因此效率很低且無(wú)法區(qū)分哪些具體項(xiàng)發(fā)生變化;另外,快照法只能在同種數(shù)據(jù)庫(kù)之間使用,不適用異構(gòu)數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步。
      [0011]由于大多數(shù)數(shù)據(jù)庫(kù)都有日志,利用日志法不僅方便而且也不會(huì)占用太多額外的系統(tǒng)資源,但是采用日志法也存在一些缺點(diǎn):首先,一些數(shù)據(jù)庫(kù)系統(tǒng)不公開(kāi)其日志的格式,要開(kāi)發(fā)一個(gè)基于日志的變化捕獲程序非常困難;其次,不同的數(shù)據(jù)庫(kù)在具體細(xì)節(jié)上存在很大差異,會(huì)給異構(gòu)數(shù)據(jù)庫(kù)帶來(lái)新的問(wèn)題;最后,日常數(shù)據(jù)庫(kù)管理工作已經(jīng)非常繁重,而日志法無(wú)疑會(huì)加重這種負(fù)擔(dān),日志法同快照法一樣,只能在同種數(shù)據(jù)庫(kù)之間完成,不適用異構(gòu)數(shù)據(jù)庫(kù)。
      [0012]API法可以實(shí)現(xiàn)日志法大多數(shù)的優(yōu)點(diǎn),但對(duì)于不經(jīng)過(guò)API的操作所引起的數(shù)據(jù)變化,API無(wú)法捕獲,另外應(yīng)用程序的可移植性比較差;在數(shù)據(jù)離線的方式下,通過(guò)API的數(shù)據(jù)庫(kù)操作也不能保持?jǐn)?shù)據(jù)的一致性。
      [0013]影子表法使用范圍比較廣,容易移植,很適合解決異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步,但是占用空間大,不能獲得中間操作信息和控制信息,并且每次捕獲變化都要掃描源表和影子表,效率低下。
      [0014]控制表法可以獲得同步對(duì)象的凈變化,運(yùn)行和數(shù)據(jù)傳輸?shù)男识己芨?,控制表占用存?chǔ)空間小于影子表,易于管理,并且控制表中保存的更新時(shí)間、操作者等控制信息,彌補(bǔ)了解決同步?jīng)_突的不足。但由于控制表法要依賴(lài)觸發(fā)器實(shí)現(xiàn),因而在應(yīng)用上有一定的局限性。
      [0015]時(shí)間戳法雖然不影響原有應(yīng)用的運(yùn)行效率,但卻需要對(duì)原有系統(tǒng)做較大的調(diào)整,因而不能捕獲到哪些不通過(guò)應(yīng)用系統(tǒng)引起的操作數(shù)據(jù)變化。
      [0016]觸發(fā)器法占用的系統(tǒng)資源比較多,對(duì)于復(fù)雜的復(fù)制任務(wù)需要非常復(fù)雜的配置和實(shí)施,管理非常不方便;另外,觸發(fā)器在異構(gòu)數(shù)據(jù)可之間也是無(wú)效的。

      【發(fā)明內(nèi)容】

      [0017]鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法、裝置及異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步校驗(yàn)方法、系統(tǒng),采用多種機(jī)制保持?jǐn)?shù)據(jù)庫(kù)的一致性,即在線狀態(tài)下保證數(shù)據(jù)實(shí)時(shí)同步,離線數(shù)據(jù)可以在網(wǎng)絡(luò)重連之后上傳,在數(shù)據(jù)出錯(cuò)后可以進(jìn)行校驗(yàn),保證數(shù)據(jù)的一致。
      [0018]依據(jù)本發(fā)明的一個(gè)方面,提供了一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法,包括:
      [0019]在線數(shù)據(jù)同步部分和離線數(shù)據(jù)同步部分;
      [0020]所述在線數(shù)據(jù)同步部分包括:
      [0021]實(shí)時(shí)監(jiān)聽(tīng)客戶(hù)端數(shù)據(jù)庫(kù)的數(shù)據(jù)操作;
      [0022]當(dāng)監(jiān)聽(tīng)到客戶(hù)端數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)生變化時(shí),獲取發(fā)生變化的數(shù)據(jù)記錄;
      [0023]客戶(hù)端將所述數(shù)據(jù)記錄發(fā)送給服務(wù)器端;
      [0024]在服務(wù)器端接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄的情況下,服務(wù)器端根據(jù)所述數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知客戶(hù)端;
      [0025]所述離線數(shù)據(jù)同步部分包括:
      [0026]在客戶(hù)端數(shù)據(jù)庫(kù)中查詢(xún)與預(yù)先設(shè)置的臨時(shí)表中的ID字段和時(shí)間字段均相同的ID字段與時(shí)間字段,并獲取客戶(hù)端數(shù)據(jù)庫(kù)中所述ID字段與時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄,將所述獲取的數(shù)據(jù)記錄發(fā)送給服務(wù)器端;
      [0027]服務(wù)器端接收到所述數(shù)據(jù)記錄,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在與所述數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于所述數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄;
      [0028]在服務(wù)器端數(shù)據(jù)庫(kù)中存在與所述數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于所述數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄的情況下,服務(wù)器端根據(jù)接收到的客戶(hù)端發(fā)送的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知給客戶(hù)端。
      [0029]依據(jù)本發(fā)明的另一方面,提供了一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步裝置,包括:
      [0030]在線數(shù)據(jù)同步裝置和離線數(shù)據(jù)同步裝置;
      [0031]所述在線數(shù)據(jù)同步裝置包括:
      [0032]監(jiān)聽(tīng)單元,設(shè)置于客戶(hù)端,用于實(shí)時(shí)監(jiān)聽(tīng)客戶(hù)端數(shù)據(jù)庫(kù)的數(shù)據(jù)操作;
      [0033]第一數(shù)據(jù)獲取單元,設(shè)置于客戶(hù)端,用于當(dāng)監(jiān)聽(tīng)到客戶(hù)端數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)生變化時(shí),獲取發(fā)生變化的數(shù)據(jù)記錄;
      [0034]第一數(shù)據(jù)發(fā)送單元,設(shè)置于客戶(hù)端,用于將所述數(shù)據(jù)記錄發(fā)送給服務(wù)器端;[0035]第一數(shù)據(jù)修改單元,設(shè)置于服務(wù)器端,用于在服務(wù)器端接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄的情況下,根據(jù)所述數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知客戶(hù)端;
      [0036]所述離線數(shù)據(jù)同步裝置包括:
      [0037]第二數(shù)據(jù)獲取單元,設(shè)置于客戶(hù)端中,用于在客戶(hù)端數(shù)據(jù)庫(kù)中查詢(xún)與預(yù)先設(shè)置的臨時(shí)表中的ID字段和時(shí)間字段均相同的ID字段與時(shí)間字段,并獲取客戶(hù)端數(shù)據(jù)庫(kù)中所述ID字段與時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄,,并將所述數(shù)據(jù)記錄發(fā)送給服務(wù)器端;
      [0038]第一查詢(xún)單元,設(shè)置于服務(wù)器端,用于根據(jù)服務(wù)器端接收到所述數(shù)據(jù)記錄,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在與所述數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于所述數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄;
      [0039]第二數(shù)據(jù)修改單元,設(shè)置于服務(wù)器端,用于在服務(wù)器端數(shù)據(jù)庫(kù)中存在與所述數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于所述數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄的情況下,根據(jù)接收到的客戶(hù)端發(fā)送的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知給客戶(hù)端。
      [0040]依據(jù)本發(fā)明的又一方面,提供了一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)校驗(yàn)方法,包括:
      [0041]預(yù)先通過(guò)異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法完成異構(gòu)數(shù)據(jù)庫(kù)的同步;
      [0042]獲取客戶(hù)端數(shù)據(jù)庫(kù)中數(shù)據(jù)記錄的ID字段與時(shí)間字段,并將所述獲取的ID字段與時(shí)間字段發(fā)送給服務(wù)器端;
      [0043]服務(wù)器端接收到所述ID字段與時(shí)間字段后,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在ID字段與所述ID字段相同,且時(shí)間字段小于所述時(shí)間字段的數(shù)據(jù)記錄;
      [0044]在服務(wù)器端數(shù)據(jù)庫(kù)中存在ID字段與所述ID字段相同,且時(shí)間字段小于所述時(shí)間字段數(shù)據(jù)記錄的情況下,將服務(wù)器端滿(mǎn)足條件的數(shù)據(jù)記錄的ID字段反饋給客戶(hù)端;
      [0045]客戶(hù)端根據(jù)接收到的服務(wù)器端發(fā)送的ID字段,獲取客戶(hù)端數(shù)據(jù)庫(kù)中與所述ID字段相同的ID字段對(duì)應(yīng)的數(shù)據(jù)記錄,并將該數(shù)據(jù)記錄發(fā)送給服務(wù)器端;
      [0046]服務(wù)器端根據(jù)接收到的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)并通知客戶(hù)端數(shù)據(jù)修改成功。
      [0047]依據(jù)本發(fā)明的再一方面,提供了一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)校驗(yàn)系統(tǒng),預(yù)先通過(guò)異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步裝置,完成異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步,且數(shù)據(jù)校驗(yàn)系統(tǒng)包括:
      [0048]字段獲取單元,設(shè)置于客戶(hù)端,用于獲取客戶(hù)端數(shù)據(jù)庫(kù)中數(shù)據(jù)記錄的ID字段與時(shí)間字段,并將所述獲取的ID字段與時(shí)間字段發(fā)送給服務(wù)器端;
      [0049]第二查詢(xún)單元,設(shè)置于服務(wù)器端,用于服務(wù)器端接收到所述ID字段與時(shí)間字段后,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在ID字段與所述ID字段相同,且時(shí)間字段小于所述時(shí)間字段的數(shù)據(jù)記錄;
      [0050]反饋單元,用于在服務(wù)器端的數(shù)據(jù)庫(kù)中存在ID字段與所述ID字段相同,且時(shí)間字段小于所述時(shí)間字段的數(shù)據(jù)記錄的情況下,將服務(wù)器端滿(mǎn)足條件的數(shù)據(jù)記錄的ID字段反饋給客戶(hù)端;
      [0051]第三數(shù)據(jù)獲取單元,設(shè)置于客戶(hù)端中,用于根據(jù)客戶(hù)端接收到的服務(wù)器端發(fā)送的ID字段,獲取客戶(hù)端數(shù)據(jù)庫(kù)中與所述ID字段相同的ID字段對(duì)應(yīng)的數(shù)據(jù)記錄,并將該數(shù)據(jù)記錄發(fā)送給服務(wù)器端;[0052]第三數(shù)據(jù)修改單元,設(shè)置于服務(wù)器端,用于根據(jù)服務(wù)器端接收到的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)并通知客戶(hù)端數(shù)據(jù)修改成功。
      [0053]本發(fā)明提供的一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法及裝置,包括在線數(shù)據(jù)同步部分和離線數(shù)據(jù)同步部分,其中,在線數(shù)據(jù)同步部分通過(guò)將客戶(hù)端數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)記錄發(fā)送給服務(wù)器端,服務(wù)器端根據(jù)接收到的數(shù)據(jù)記錄來(lái)對(duì)自身數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改;離線數(shù)據(jù)同步部分是在網(wǎng)絡(luò)重連的狀態(tài)下,在客戶(hù)端中查詢(xún)最新更新的數(shù)據(jù)記錄,并將數(shù)據(jù)記錄發(fā)送給服務(wù)器端,服務(wù)器端接收到這些數(shù)據(jù)記錄,查詢(xún)自身數(shù)據(jù)庫(kù)中是否存在與前述數(shù)據(jù)記錄中的ID字段相同的ID字段,而時(shí)間字段小于前述數(shù)據(jù)記錄中的時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄,若存在,則進(jìn)行修改。通過(guò)本發(fā)明提供的方法,采用多種機(jī)制相結(jié)合的方式,例如,在線數(shù)據(jù)同步部分采用觸發(fā)器法,離線數(shù)據(jù)同步采用時(shí)間戳法方式來(lái)實(shí)現(xiàn)在線實(shí)時(shí)數(shù)據(jù)同步和離線定時(shí)數(shù)據(jù)同步,克服了單純使用一種方法來(lái)實(shí)現(xiàn)數(shù)據(jù)同步的缺點(diǎn)。
      [0054]本發(fā)明提供的一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步校驗(yàn)的方法及系統(tǒng),通過(guò)將客戶(hù)端數(shù)據(jù)庫(kù)中數(shù)據(jù)記錄對(duì)應(yīng)的ID字段與時(shí)間字段發(fā)送給服務(wù)器端,服務(wù)器端接收到ID字段與時(shí)間字段,在自身數(shù)據(jù)庫(kù)中查詢(xún)是否存在ID相同,而時(shí)間字段小于客戶(hù)端發(fā)送的時(shí)間字段的數(shù)據(jù)記錄,若存在,則將滿(mǎn)足條件的ID字段反饋給客戶(hù)端,客戶(hù)端將該ID字段對(duì)應(yīng)的數(shù)據(jù)記錄發(fā)送給服務(wù)器端,服務(wù)器端根據(jù)接收到的數(shù)據(jù)記錄,修改自身數(shù)據(jù)庫(kù)中的數(shù)據(jù)。通過(guò)本發(fā)明提供的方法,采用控制表法與時(shí)間戳法的結(jié)合,實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步校驗(yàn),對(duì)于數(shù)據(jù)出錯(cuò)部分做了進(jìn)一步的補(bǔ)充,進(jìn)一步的保證數(shù)據(jù)的同步。
      【專(zhuān)利附圖】

      【附圖說(shuō)明】
      [0055]圖1為本發(fā)明實(shí)施例一的一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法流程圖;
      [0056]圖2為本發(fā)明實(shí)施例一的一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法中在線數(shù)據(jù)同步部分流程圖;
      [0057]圖3為本發(fā)明實(shí)施例一的一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法中離線數(shù)據(jù)同步部分流程圖;
      [0058]圖4為本發(fā)明實(shí)施例中客戶(hù)端與服務(wù)器端的數(shù)據(jù)傳輸過(guò)程示意圖;
      [0059]圖5為本發(fā)明實(shí)施例二的一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步裝置示意圖;
      [0060]圖6為本發(fā)明實(shí)施例三的一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)校驗(yàn)方法流程圖;
      [0061]圖7為本發(fā)明實(shí)施例三的一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)校驗(yàn)方法整體流程圖;
      [0062]以及,
      [0063]圖8為本發(fā)明實(shí)施例四的一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)校驗(yàn)系統(tǒng)示意圖。
      【具體實(shí)施方式】
      [0064]以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
      [0065]實(shí)施例一、一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法。下面結(jié)合圖1-圖4對(duì)本發(fā)明提供的方法進(jìn)行詳細(xì)說(shuō)明。
      [0066]參見(jiàn)圖1與圖2,本發(fā)明所提供的數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法包括在線數(shù)據(jù)同步部分和離線數(shù)據(jù)同步部分,其中,在線狀態(tài)下數(shù)據(jù)的同步方法包括:[0067]SlOl、實(shí)時(shí)監(jiān)聽(tīng)客戶(hù)端的數(shù)據(jù)庫(kù)的數(shù)據(jù)操作。
      [0068]具體的,在在線狀態(tài)(即網(wǎng)絡(luò)通信正常)下,客戶(hù)端會(huì)實(shí)時(shí)地監(jiān)聽(tīng)本地?cái)?shù)據(jù)庫(kù)是否有數(shù)據(jù)庫(kù)操作信息,比如數(shù)據(jù)庫(kù)的增加、更改等操作。
      [0069]S102、當(dāng)監(jiān)聽(tīng)到客戶(hù)端的數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)生變化時(shí),獲取發(fā)生變化的數(shù)據(jù)記錄。
      [0070]具體的,當(dāng)客戶(hù)端監(jiān)聽(tīng)到本地?cái)?shù)據(jù)庫(kù)中的數(shù)據(jù)由于增加、更改等操作發(fā)生變化時(shí),客戶(hù)端會(huì)獲取本地?cái)?shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)記錄,其中,數(shù)據(jù)記錄包括數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)所在的表的表名、數(shù)據(jù)記錄的各字段的名稱(chēng)以及各字段對(duì)應(yīng)的具體內(nèi)容。
      [0071]S103、客戶(hù)端將上述數(shù)據(jù)記錄發(fā)送給服務(wù)器端。
      [0072]S104、在服務(wù)器端接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄的情況下,服務(wù)器端根據(jù)接收到的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知客戶(hù)端。
      [0073]具體的,當(dāng)服務(wù)器端接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄時(shí),會(huì)根據(jù)接收到的數(shù)據(jù)記錄修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄,使客戶(hù)端數(shù)據(jù)庫(kù)中的數(shù)據(jù)與服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)保持一致。具體的一個(gè)實(shí)現(xiàn)的例子,當(dāng)服務(wù)器端接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄時(shí),首先根據(jù)預(yù)先設(shè)置的客戶(hù)端的數(shù)據(jù)庫(kù)中的表名與服務(wù)器端的數(shù)據(jù)庫(kù)中的表名的對(duì)應(yīng)關(guān)系在服務(wù)器端找到與客戶(hù)端的數(shù)據(jù)庫(kù)表名對(duì)應(yīng)的表;然后可以獲取客戶(hù)端發(fā)生變化的數(shù)據(jù)記錄的ID字段,并在服務(wù)器端的數(shù)據(jù)庫(kù)相應(yīng)的表中查找與該ID字段相同的ID字段對(duì)應(yīng)的數(shù)據(jù)記錄,根據(jù)客戶(hù)端發(fā)送的數(shù)據(jù)記錄,對(duì)服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改更新;當(dāng)服務(wù)器端的數(shù)據(jù)庫(kù)修改數(shù)據(jù)成功時(shí),服務(wù)器端會(huì)將數(shù)據(jù)修改結(jié)果狀態(tài)設(shè)置為數(shù)據(jù)修改成功狀態(tài)(或true),當(dāng)服務(wù)器端的數(shù)據(jù)庫(kù)修改數(shù)據(jù)失敗時(shí),數(shù)據(jù)庫(kù)會(huì)將數(shù)據(jù)修改結(jié)果狀態(tài)設(shè)置為數(shù)據(jù)修改失敗狀態(tài)(或false);之后服務(wù)器端會(huì)將數(shù)據(jù)修改結(jié)果狀態(tài)通知客戶(hù)端。
      [0074]S105、在臨時(shí)表中修改或插入ID字段或時(shí)間字段。
      [0075]具體的,上述步驟S103客戶(hù)端將發(fā)生改變的數(shù)據(jù)記錄發(fā)送給服務(wù)器端,而服務(wù)器端未接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄或執(zhí)行步驟S104后客戶(hù)端未接收到服務(wù)器端發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)時(shí),可能客戶(hù)端與服務(wù)器端的網(wǎng)絡(luò)通信異常,客戶(hù)端會(huì)在預(yù)先設(shè)置的臨時(shí)表中查詢(xún)是否存在與客戶(hù)端發(fā)生變化的數(shù)據(jù)記錄的ID字段相同的ID字段,若存在,則根據(jù)上述數(shù)據(jù)記錄中的ID字段與時(shí)間字段,修改臨時(shí)表中與上述數(shù)據(jù)記錄的ID字段相同的ID字段對(duì)應(yīng)的時(shí)間字段,使臨時(shí)表中的ID字段與時(shí)間字段與上述數(shù)據(jù)記錄中的ID字段和時(shí)間字段相同;若不存在,在臨時(shí)表中插入客戶(hù)端發(fā)生變化的數(shù)據(jù)記錄的ID字段與時(shí)間字段。
      [0076]同樣的,當(dāng)客戶(hù)端接收到的從服務(wù)器端發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)為修改失敗狀態(tài)時(shí),也對(duì)臨時(shí)表中的ID字段和/或時(shí)間字段進(jìn)行修改更新。
      [0077]需要說(shuō)明的是,本實(shí)施例中的臨時(shí)表設(shè)置于客戶(hù)端中,并且臨時(shí)表中的數(shù)據(jù)包括客戶(hù)端數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)所在的表的表名、發(fā)生變化的數(shù)據(jù)的ID字段及此ID字段對(duì)應(yīng)的時(shí)間字段。
      [0078]參見(jiàn)圖1和圖3,本發(fā)明提供的數(shù)據(jù)同步方法還包括離線數(shù)據(jù)同步方法部分,包括:
      [0079]S111、在客戶(hù)端數(shù)據(jù)庫(kù)中查詢(xún)與預(yù)先設(shè)置的臨時(shí)表中的ID字段和時(shí)間字段均相同的ID字段與時(shí)間字段,并獲取客戶(hù)端數(shù)據(jù)庫(kù)中所述ID字段與時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄,將所述獲取的數(shù)據(jù)記錄發(fā)送給服務(wù)器端。[0080]具體的,在上述在線數(shù)據(jù)同步的實(shí)現(xiàn)方法中,有可能存在客戶(hù)端與服務(wù)器端之間的網(wǎng)絡(luò)通信異常,這個(gè)時(shí)候可以將客戶(hù)端數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)記錄的ID字段與時(shí)間字段保存在臨時(shí)表中,其中,臨時(shí)表中保存有客戶(hù)端數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)所在表的表名、發(fā)生變化的數(shù)據(jù)的ID字段及時(shí)間字段。當(dāng)客戶(hù)端與服務(wù)器端之間的網(wǎng)絡(luò)通信重新連接好后,客戶(hù)端會(huì)根據(jù)預(yù)定時(shí)間間隔查詢(xún)客戶(hù)端數(shù)據(jù)庫(kù)中與臨時(shí)表中的ID字段與時(shí)間字段相同的ID字段與時(shí)間字段,并獲取這些ID字段與時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄,這些數(shù)據(jù)記錄通常是最新的數(shù)據(jù),獲取到這些最新的數(shù)據(jù)記錄后,將它們發(fā)送給服務(wù)器。具體實(shí)現(xiàn)時(shí),可以根據(jù)臨時(shí)表中記錄的發(fā)生變化的數(shù)據(jù)所在的表名在客戶(hù)端數(shù)據(jù)庫(kù)中查找該表,然后在該表中查找與臨時(shí)表中記錄的該表的發(fā)生變化的數(shù)據(jù)的ID字段與時(shí)間字段相同的ID字段與時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄,并將該表名以及ID字段和時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄發(fā)送給服務(wù)器端。
      [0081]S112、服務(wù)器端接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在與該數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄。
      [0082]具體的,當(dāng)服務(wù)器端接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄后,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在與接收到的數(shù)據(jù)記錄中的ID字段相同的ID字段,但時(shí)間字段小于接收到的數(shù)據(jù)記錄中的時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄。如果滿(mǎn)足這些條件,表明服務(wù)器端的這些數(shù)據(jù)不是最新的數(shù)據(jù),即需要更新。具體實(shí)現(xiàn)時(shí),可以根據(jù)接收到的客戶(hù)端發(fā)送的表名及客戶(hù)端數(shù)據(jù)庫(kù)中的表名與服務(wù)器端數(shù)據(jù)庫(kù)中的表名的一一對(duì)應(yīng)關(guān)系,在服務(wù)器端數(shù)據(jù)庫(kù)中找到與客戶(hù)端數(shù)據(jù)庫(kù)中的表名對(duì)應(yīng)的表,然后根據(jù)接收到的客戶(hù)端發(fā)送的數(shù)據(jù)記錄中的ID字段與時(shí)間字段,服務(wù)器端在對(duì)應(yīng)的表中查詢(xún)是否存在與接收到的數(shù)據(jù)記錄中的ID字段相同的ID字段,但時(shí)間字段小于接收到的數(shù)據(jù)記錄中的時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄。
      [0083]S113、在服務(wù)器端數(shù)據(jù)庫(kù)中存在與客戶(hù)端發(fā)送的數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于客戶(hù)端發(fā)送的數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄的情況下,服務(wù)器端根據(jù)接收到的客戶(hù)端發(fā)送的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知給客戶(hù)端。
      [0084]具體的,若服務(wù)器端數(shù)據(jù)庫(kù)中存在滿(mǎn)足上述步驟S113中的條件的數(shù)據(jù)記錄,則這些數(shù)據(jù)記錄需要更新。此時(shí)可以根據(jù)服務(wù)器端接收到的客戶(hù)端發(fā)送的數(shù)據(jù)記錄,修改服務(wù)器中數(shù)據(jù)庫(kù)中需要修改更新的數(shù)據(jù),若服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)修改成功,服務(wù)器端會(huì)將數(shù)據(jù)修改結(jié)果狀態(tài)設(shè)置為數(shù)據(jù)修改成功狀態(tài)(或設(shè)置為T(mén)rue),若服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)修改失敗,服務(wù)器端會(huì)將數(shù)據(jù)修改結(jié)果狀態(tài)設(shè)置為數(shù)據(jù)修改失敗狀態(tài)(或設(shè)置為false)。服務(wù)器端會(huì)將此數(shù)據(jù)修改結(jié)果狀態(tài)發(fā)送給客戶(hù)端。
      [0085]另外,當(dāng)服務(wù)器端數(shù)據(jù)庫(kù)中不存在滿(mǎn)足上述S113步驟中的條件的數(shù)據(jù)時(shí),服務(wù)器會(huì)直接將數(shù)據(jù)修改結(jié)果狀態(tài)設(shè)置為數(shù)據(jù)修改成功狀態(tài),并將此數(shù)據(jù)修改成功狀態(tài)發(fā)送給客戶(hù)端。
      [0086]當(dāng)客戶(hù)端接收到服務(wù)器端發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)為數(shù)據(jù)修改成功狀態(tài)信息時(shí),將客戶(hù)端臨時(shí)表中與服務(wù)器端修改成功的數(shù)據(jù)記錄對(duì)應(yīng)的ID字段與時(shí)間字段相同的ID字段與時(shí)間字段刪除,以釋放臨時(shí)表的空間。
      [0087]最后,需要說(shuō)明的是,客戶(hù)端中的數(shù)據(jù)庫(kù)與服務(wù)器中的數(shù)據(jù)庫(kù)屬于異構(gòu)數(shù)據(jù)庫(kù),客戶(hù)端與服務(wù)器端之間是通過(guò)WebService的方式進(jìn)行通信的。參見(jiàn)圖4,在數(shù)據(jù)傳輸?shù)倪^(guò)程中,在客戶(hù)端與服務(wù)器端定義相同的數(shù)據(jù)對(duì)象,不同的開(kāi)發(fā)語(yǔ)言,定義的字段名稱(chēng)保持一致。在客戶(hù)端/服務(wù)器端發(fā)送數(shù)據(jù)前,將要發(fā)送的數(shù)據(jù)對(duì)象先進(jìn)行Json格式化,轉(zhuǎn)換為Json字符串,然后再將Json字符串轉(zhuǎn)化為二進(jìn)制字節(jié),進(jìn)行壓縮,通過(guò)WebService將壓縮后的二進(jìn)制字節(jié)發(fā)送給服務(wù)器端/客戶(hù)端,當(dāng)服務(wù)器端/客戶(hù)端接收到二進(jìn)制字節(jié)時(shí),首先對(duì)二進(jìn)制字節(jié)進(jìn)行解壓縮,然后將解壓縮的二進(jìn)制字節(jié)轉(zhuǎn)換為Json字符串,再對(duì)Json字符串反格式化,將Json字符串轉(zhuǎn)化為服務(wù)器端/客戶(hù)端上的數(shù)據(jù)對(duì)象,這樣就完成了客戶(hù)端與服務(wù)器端的數(shù)據(jù)傳輸,在整個(gè)網(wǎng)絡(luò)傳輸?shù)倪^(guò)程中都使用二進(jìn)制代碼的形式,保證了數(shù)據(jù)的安全性。
      [0088]實(shí)施例二、一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步裝置。下面結(jié)合圖5對(duì)本發(fā)明提供的裝置進(jìn)行詳細(xì)說(shuō)明。
      [0089]圖5中,本發(fā)明提供的數(shù)據(jù)同步裝置包括在線數(shù)據(jù)同步部分和離線數(shù)據(jù)同步部分。其中,在線數(shù)據(jù)同步部分包括監(jiān)聽(tīng)單元501、第一數(shù)據(jù)獲取單元502、第一數(shù)據(jù)發(fā)送單元503、第一數(shù)據(jù)修改單元504和臨時(shí)表維護(hù)單元505。
      [0090]監(jiān)聽(tīng)單元501主要用于實(shí)時(shí)監(jiān)聽(tīng)客戶(hù)端的數(shù)據(jù)庫(kù)的數(shù)據(jù)操作。
      [0091]第一數(shù)據(jù)獲取單元502主要用于當(dāng)監(jiān)聽(tīng)單元501監(jiān)聽(tīng)到客戶(hù)端的數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)生變化時(shí),獲取發(fā)生變化的數(shù)據(jù)記錄。
      [0092]第一數(shù)據(jù)發(fā)送單元503主要用于客戶(hù)端將第一數(shù)據(jù)獲取單元502獲取的數(shù)據(jù)記錄發(fā)送給服務(wù)器端。
      [0093]第一數(shù)據(jù)修改單元504主要用于在服務(wù)器端接收到客戶(hù)端中的第一數(shù)據(jù)發(fā)送單元503發(fā)送的數(shù)據(jù)記錄的情況下,根據(jù)服務(wù)器端該接收到的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知客戶(hù)端。
      [0094]臨時(shí)表維護(hù)單元504設(shè)置于客戶(hù)端中,主要用于當(dāng)服務(wù)器端未接收到第一數(shù)據(jù)發(fā)送單元503發(fā)送的數(shù)據(jù)記錄時(shí)或當(dāng)客戶(hù)端未收到服務(wù)器端發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)時(shí)或當(dāng)客戶(hù)端接收到服務(wù)器端發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)為失敗狀態(tài)時(shí),查詢(xún)?cè)诳蛻?hù)端預(yù)先設(shè)置的臨時(shí)表中是否存在與第一數(shù)據(jù)獲取單元502獲取的數(shù)據(jù)記錄的ID字段相同的ID字段;若存在,則根據(jù)第一數(shù)據(jù)獲取單元502獲取的該ID字段對(duì)應(yīng)的時(shí)間字段,修改臨時(shí)表中該ID字段對(duì)應(yīng)的時(shí)間字段;若不存在,則在臨時(shí)表中插入第一數(shù)據(jù)獲取單元502獲取的數(shù)據(jù)記錄對(duì)應(yīng)的ID字段和時(shí)間字段。
      [0095]離線數(shù)據(jù)同步部分包括第二數(shù)據(jù)獲取單元511、第一查詢(xún)單元512、第二數(shù)據(jù)修改單元513。
      [0096]第一數(shù)據(jù)獲取單元511設(shè)置于客戶(hù)端,主要用于查詢(xún)客戶(hù)端數(shù)據(jù)庫(kù)中與上述臨時(shí)表維護(hù)單元505維護(hù)的臨時(shí)表中的ID字段與時(shí)間字段相同的ID字段與時(shí)間字段,并獲取客戶(hù)端數(shù)據(jù)庫(kù)中該ID字段與時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄,并將該數(shù)據(jù)記錄發(fā)送給服務(wù)器端。
      [0097]第一查詢(xún)單元512設(shè)置于服務(wù)器端,主要用于根據(jù)服務(wù)器端接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在與該數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于該數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄。
      [0098]第二數(shù)據(jù)修改單元513主要用于在服務(wù)器端數(shù)據(jù)庫(kù)中存在與客戶(hù)端發(fā)送的數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于該數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄的情況下,根據(jù)接收到的客戶(hù)端發(fā)送的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知給客戶(hù)端。
      [0099]需要說(shuō)明的是,當(dāng)?shù)谝徊樵?xún)單元512在服務(wù)器端數(shù)據(jù)庫(kù)中未查詢(xún)到與客戶(hù)端發(fā)送的數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于該數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄的情況下,服務(wù)器端直接將數(shù)據(jù)修改結(jié)果狀態(tài)設(shè)置為數(shù)據(jù)修改成功狀態(tài)并通知客戶(hù)端數(shù)據(jù)修改結(jié)果。
      [0100]當(dāng)客戶(hù)端接收到的服務(wù)器發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)為數(shù)據(jù)修改成功狀態(tài)時(shí),將臨時(shí)表中與第二數(shù)據(jù)修改單元513修改成功的數(shù)據(jù)記錄的ID字段與時(shí)間字段相同的ID字段與時(shí)間字段刪除,以釋放臨時(shí)表的空間。
      [0101]本發(fā)明提供的一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法及裝置,包括在線實(shí)時(shí)數(shù)據(jù)同步部分和離線定時(shí)數(shù)據(jù)同步部分。其中,在線數(shù)據(jù)同步部分通過(guò)監(jiān)聽(tīng)客戶(hù)端數(shù)據(jù)庫(kù)中的數(shù)據(jù)操作,獲取數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)記錄,并將這些數(shù)據(jù)記錄發(fā)送給服務(wù)器端,服務(wù)器端根據(jù)客戶(hù)端發(fā)送的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知客戶(hù)端。離線數(shù)據(jù)同步部分獲取客戶(hù)端數(shù)據(jù)庫(kù)中與預(yù)先設(shè)置的臨時(shí)表中的ID字段和時(shí)間字段相同的ID字段和時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄,并將這些數(shù)據(jù)記錄發(fā)送給服務(wù)器端,服務(wù)器端接收到這些數(shù)據(jù)記錄,在服務(wù)器端數(shù)據(jù)庫(kù)中查詢(xún)是否存在與前述ID字段相同的ID字段,但該ID字段對(duì)應(yīng)的時(shí)間字段小于上述時(shí)間字段的數(shù)據(jù)記錄,若存在,則根據(jù)客戶(hù)端發(fā)送的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)。通過(guò)本發(fā)明提供的數(shù)據(jù)同步方法,采用將多種機(jī)制相結(jié)合的方式,實(shí)現(xiàn)了在在線狀態(tài)下保證數(shù)據(jù)實(shí)時(shí)同步,在離線狀態(tài)時(shí),將客戶(hù)端數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)記錄保存起來(lái),當(dāng)網(wǎng)絡(luò)重新連接之后,保證數(shù)據(jù)同步,即實(shí)現(xiàn)了在在線和離線狀態(tài)下均能保證數(shù)據(jù)同步,同時(shí)采用多種機(jī)制,比如在線數(shù)據(jù)同步部分采用觸發(fā)器法,離線數(shù)據(jù)同步部分采用時(shí)間戳法,克服了單純使用一種方法的缺點(diǎn),同時(shí)較現(xiàn)有技術(shù)的方法也具有很大的靈活性。
      [0102]實(shí)施例三、一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步校驗(yàn)方法。下面結(jié)合圖6和圖7對(duì)本發(fā)明提供的數(shù)據(jù)同步校驗(yàn)方法進(jìn)行詳細(xì)說(shuō)明。
      [0103]參見(jiàn)圖6和圖7,其中,圖6中,S601、預(yù)先通過(guò)異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法完成異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步。
      [0104]具體的,通過(guò)實(shí)施例一的方法實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步,此時(shí),有可能服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)未修改成功或修改出錯(cuò)等情況,此時(shí)可以采用本實(shí)施例的方法對(duì)客戶(hù)端數(shù)據(jù)庫(kù)中的數(shù)據(jù)與服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行數(shù)據(jù)同步校驗(yàn)。
      [0105]S602、獲取客戶(hù)端數(shù)據(jù)庫(kù)中數(shù)據(jù)記錄的ID字段與時(shí)間字段,并將獲取的這些ID字段與時(shí)間字段發(fā)送給服務(wù)器端。
      [0106]具體的,為了減少收集的數(shù)據(jù)量,節(jié)約系統(tǒng)的資源,提高操作效率,本步驟采取只提取客戶(hù)端數(shù)據(jù)庫(kù)中的主要字段數(shù)據(jù),例如ID字段和時(shí)間字段,當(dāng)然,還需要獲取該ID字段與時(shí)間字段所在的表的表名。在數(shù)據(jù)校驗(yàn)的過(guò)程中,根據(jù)預(yù)定時(shí)間間隔定時(shí)地去校驗(yàn),可以使客戶(hù)端數(shù)據(jù)庫(kù)中的數(shù)據(jù)與服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)隨時(shí)保持一致性。當(dāng)提取到客戶(hù)端數(shù)據(jù)庫(kù)中數(shù)據(jù)記錄所在的表的表名、數(shù)據(jù)記錄的ID字段和時(shí)間字段之后,將這些數(shù)據(jù)發(fā)送給服務(wù)器端。
      [0107]S603、服務(wù)器端接收到客戶(hù)端發(fā)送的ID字段與時(shí)間字段后,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在ID字段與前述ID字段相同,且時(shí)間字段小于前述時(shí)間字段的數(shù)據(jù)記錄。
      [0108]具體的,當(dāng)服務(wù)器端接收到客戶(hù)端發(fā)送的表名、ID字段和時(shí)間字段,根據(jù)客戶(hù)端數(shù)據(jù)庫(kù)中的表名與服務(wù)器端數(shù)據(jù)庫(kù)中的表名的一一對(duì)應(yīng)關(guān)系,在自身數(shù)據(jù)庫(kù)中查找與上述表名對(duì)應(yīng)的表,然后根據(jù)上述ID字段和時(shí)間字段,查找在服務(wù)器端的對(duì)應(yīng)的表中查詢(xún)是否存在ID字段與前述ID字段相同,且時(shí)間字段小于前述時(shí)間字段的數(shù)據(jù)記錄。
      [0109]S604、在服務(wù)器端數(shù)據(jù)庫(kù)中存在滿(mǎn)足步驟S603中條件的數(shù)據(jù)記錄的情況下,將服務(wù)器端的數(shù)據(jù)庫(kù)中滿(mǎn)足條件的這些數(shù)據(jù)記錄的ID字段反饋給客戶(hù)端。
      [0110]具體的,數(shù)據(jù)庫(kù)中的ID字段唯一標(biāo)識(shí)一條數(shù)據(jù)記錄,當(dāng)服務(wù)器端數(shù)據(jù)庫(kù)中的某條數(shù)據(jù)記錄的ID字段與客戶(hù)端發(fā)送的ID字段相同,而這條數(shù)據(jù)記錄的時(shí)間字段小于客戶(hù)端發(fā)送的時(shí)間字段,則表明這條數(shù)據(jù)記錄并非最新記錄,需要更新。此時(shí),服務(wù)器端會(huì)將需要更新的數(shù)據(jù)記錄的ID字段反饋給客戶(hù)端。
      [0111]S605、客戶(hù)端根據(jù)接收到的服務(wù)器端發(fā)送的ID字段,獲取客戶(hù)端數(shù)據(jù)庫(kù)中與該ID字段相同的ID字段對(duì)應(yīng)的數(shù)據(jù)記錄,并將該數(shù)據(jù)記錄發(fā)送給服務(wù)器端。
      [0112]S607、服務(wù)器端根據(jù)接收到的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)并通知客戶(hù)端數(shù)據(jù)修改成功。
      [0113]具體的,當(dāng)服務(wù)器端數(shù)據(jù)庫(kù)中存在需要更新的數(shù)據(jù)記錄時(shí),將這些需要更新的數(shù)據(jù)記錄對(duì)應(yīng)的ID字段反饋給客戶(hù)端,客戶(hù)端根據(jù)服務(wù)器反饋的ID字段,獲取客戶(hù)端數(shù)據(jù)庫(kù)中與該ID字段相同的ID字段對(duì)應(yīng)的數(shù)據(jù)記錄,然后將這些數(shù)據(jù)記錄發(fā)送給服務(wù)器端,月艮務(wù)器端根據(jù)這些數(shù)據(jù)來(lái)更新自身數(shù)據(jù)庫(kù)中的數(shù)據(jù),使服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)保持最新?tīng)顟B(tài),并與客戶(hù)端數(shù)據(jù)庫(kù)中的數(shù)據(jù)保持一致,最后通知客戶(hù)端數(shù)據(jù)修改成功。至此,數(shù)據(jù)同步校驗(yàn)完成。
      [0114]實(shí)施例四、一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步校驗(yàn)系統(tǒng)。下面結(jié)合圖8對(duì)本發(fā)明提供的數(shù)據(jù)同步校驗(yàn)系統(tǒng)進(jìn)行詳細(xì)的說(shuō)明。
      [0115]圖8中,本發(fā)明提供的數(shù)據(jù)同步校驗(yàn)系統(tǒng)包括異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步裝置801、字段獲取單元802、第二查詢(xún)單元803、反饋單元804、第三數(shù)據(jù)獲取單元805和第三數(shù)據(jù)修改單元806。
      [0116]異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步裝置801用于實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步,具體的實(shí)現(xiàn)數(shù)據(jù)同步的過(guò)程可以參見(jiàn)實(shí)施例二,在此不再重復(fù)說(shuō)明。
      [0117]字段獲取單元802用于獲取客戶(hù)端數(shù)據(jù)庫(kù)中數(shù)據(jù)記錄的ID字段與時(shí)間字段,并將獲取的ID字段與時(shí)間字段發(fā)送給服務(wù)器端。
      [0118]第二查詢(xún)單元803設(shè)置于服務(wù)器端,用于在服務(wù)器端接收到客戶(hù)端發(fā)送的ID字段與時(shí)間字段后,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在ID字段與服務(wù)器端接收的ID字段相同,且時(shí)間字段小于服務(wù)器端接收到的時(shí)間字段的數(shù)據(jù)記錄。
      [0119]反饋單元804用于在第二查詢(xún)單元803查詢(xún)到存在滿(mǎn)足上述條件的數(shù)據(jù)記錄的情況下,將滿(mǎn)足條件的數(shù)據(jù)記錄的ID字段反饋給客戶(hù)端。
      [0120]第三數(shù)據(jù)獲取單元805設(shè)置于客戶(hù)端中,用于根據(jù)客戶(hù)端接收到的反饋單元804發(fā)送的ID字段,獲取客戶(hù)端數(shù)據(jù)庫(kù)中與該ID字段相同的ID字段對(duì)應(yīng)的數(shù)據(jù)記錄,并將這些數(shù)據(jù)記錄發(fā)送給服務(wù)器端。
      [0121]第三數(shù)據(jù)修改單元806,設(shè)置于服務(wù)器端,用于根據(jù)服務(wù)器端接收到的客戶(hù)端發(fā)送的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)并通知客戶(hù)端數(shù)據(jù)修改成功。
      [0122]需要說(shuō)明的是,在數(shù)據(jù)同步校驗(yàn)的過(guò)程中,客戶(hù)端與服務(wù)器端之間的數(shù)據(jù)通信是通過(guò)WebService方式實(shí)現(xiàn)的,具體的技術(shù)特征可以參見(jiàn)實(shí)施例一部分,在此不再重復(fù)說(shuō)明。
      [0123]本發(fā)明提供的一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步校驗(yàn)方法及系統(tǒng),通過(guò)提取客戶(hù)端數(shù)據(jù)庫(kù)中數(shù)據(jù)記錄的ID字段和時(shí)間字段,并將提取的ID字段與時(shí)間字段發(fā)送給服務(wù)器端服務(wù)器端查詢(xún)自身數(shù)據(jù)庫(kù)中是否存在與接收到的ID字段相同的ID字段、而時(shí)間字段小于接收到的時(shí)間字段的數(shù)據(jù)記錄,若存在,將滿(mǎn)足條件的數(shù)據(jù)記錄的ID字段反饋給客戶(hù)端,客戶(hù)端在自身數(shù)據(jù)庫(kù)中獲取該ID字段對(duì)應(yīng)的數(shù)據(jù)記錄并發(fā)送給服務(wù)器端,服務(wù)器端接收到這些數(shù)據(jù)記錄,根據(jù)這些數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)。本發(fā)明結(jié)合控制表法和時(shí)間戳法相結(jié)合的方式實(shí)現(xiàn)了數(shù)據(jù)同步校驗(yàn),對(duì)于通過(guò)上述數(shù)據(jù)同步方法過(guò)程中出現(xiàn)的數(shù)據(jù)不完全一致或數(shù)據(jù)修改失敗導(dǎo)致的客戶(hù)端與服務(wù)器端的數(shù)據(jù)不完全一致的情況,本方法進(jìn)行了補(bǔ)充,確??蛻?hù)端中的數(shù)據(jù)與服務(wù)器端的數(shù)據(jù)保持一致。
      [0124]另外,在上述整個(gè)過(guò)程中,客戶(hù)端與服務(wù)器端之間是通過(guò)WebService來(lái)實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)?,在網(wǎng)絡(luò)的傳輸過(guò)程中都采用二進(jìn)制代碼的形式來(lái)實(shí)現(xiàn),保證了數(shù)據(jù)的安全性。
      [0125]在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
      [0126]在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。
      [0127]類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書(shū)由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
      [0128]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
      [0129]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
      [0130]本發(fā)明實(shí)施例中客戶(hù)端可以以Andriod實(shí)現(xiàn),服務(wù)器端可以以PC實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理裝置以及數(shù)據(jù)處理系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(如計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
      [0131]應(yīng)該注意的是,上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的Andriod以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)Andriod項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱(chēng)。
      【權(quán)利要求】
      1.一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法,其特征在于,包括: 在線數(shù)據(jù)同步部分和離線數(shù)據(jù)同步部分; 所述在線數(shù)據(jù)同步部分包括: 步驟S101、實(shí)時(shí)監(jiān)聽(tīng)客戶(hù)端數(shù)據(jù)庫(kù)的數(shù)據(jù)操作; 步驟S102、當(dāng)監(jiān)聽(tīng)到客戶(hù)端數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)生變化時(shí),獲取發(fā)生變化的數(shù)據(jù)記錄; 步驟S103、客戶(hù)端將所述數(shù)據(jù)記錄發(fā)送給服務(wù)器端; 步驟S104、在服務(wù)器端接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄的情況下,服務(wù)器端根據(jù)所述數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知客戶(hù)端; 所述離線數(shù)據(jù)同步部分包括: 步驟S111、在客戶(hù)端數(shù)據(jù)庫(kù)中查詢(xún)與預(yù)先設(shè)置的臨時(shí)表中的ID字段和時(shí)間字段均相同的ID字段與時(shí)間字段,并獲取客戶(hù)端數(shù)據(jù)庫(kù)中所述ID字段與時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄,將所述獲取的數(shù)據(jù)記錄發(fā)送給服務(wù)器端; 步驟S112、服務(wù)器端 接收到所述數(shù)據(jù)記錄,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在與所述數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于所述數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄; 步驟S113、在服務(wù)器端數(shù)據(jù)庫(kù)中存在與所述數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于所述數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄的情況下,服務(wù)器端根據(jù)接收到的客戶(hù)端發(fā)送的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知給客戶(hù)端。
      2.如權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,所述在線數(shù)據(jù)同步部分還包括: 當(dāng)服務(wù)器端未接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄時(shí)或當(dāng)客戶(hù)端未收到服務(wù)器端發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)時(shí)或當(dāng)客戶(hù)端接收到服務(wù)器端發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)為失敗狀態(tài)時(shí),查詢(xún)?cè)诳蛻?hù)端預(yù)先設(shè)置的臨時(shí)表中是否存在與客戶(hù)端數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)記錄的ID字段相同的ID字段;若存在,則根據(jù)所述客戶(hù)端數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)記錄的時(shí)間字段,修改臨時(shí)表中的時(shí)間字段;若不存在,則在臨時(shí)表中插入所述客戶(hù)端數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)記錄對(duì)應(yīng)的ID字段和時(shí)間字段。
      3.如權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,離線數(shù)據(jù)同步部分還包括: 在服務(wù)器端數(shù)據(jù)庫(kù)中不存在與所述數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于所述數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄的情況下,服務(wù)器端直接將數(shù)據(jù)修改結(jié)果狀態(tài)設(shè)置為數(shù)據(jù)修改成功狀態(tài)并通知客戶(hù)端數(shù)據(jù)修改結(jié)果。
      4.如權(quán)利要求1或3所述的數(shù)據(jù)同步方法,其特征在于,還包括: 當(dāng)客戶(hù)端接收到服務(wù)器端發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)為數(shù)據(jù)修改成功狀態(tài)時(shí),將臨時(shí)表中與服務(wù)器端數(shù)據(jù)庫(kù)中修改成功的數(shù)據(jù)記錄對(duì)應(yīng)的ID字段和時(shí)間字段刪除。
      5.一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步裝置,其特征在于,包括: 在線數(shù)據(jù)同步裝置和離線數(shù)據(jù)同步裝置; 所述在線數(shù)據(jù)同步裝置包括: 監(jiān)聽(tīng)單元,設(shè)置于客戶(hù)端,用于實(shí)時(shí)監(jiān)聽(tīng)客戶(hù)端數(shù)據(jù)庫(kù)的數(shù)據(jù)操作; 第一數(shù)據(jù)獲取單元,設(shè)置于客戶(hù)端,用于當(dāng)監(jiān)聽(tīng)到客戶(hù)端數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)生變化時(shí),獲取發(fā)生變化的數(shù)據(jù)記錄; 第一數(shù)據(jù)發(fā)送單元,設(shè)置于客戶(hù)端,用于將所述數(shù)據(jù)記錄發(fā)送給服務(wù)器端; 第一數(shù)據(jù)修改單元,設(shè)置于服務(wù)器端,用于在服務(wù)器端接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄的情況下,根據(jù)所述數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知客戶(hù)端; 所述離線數(shù)據(jù)同步裝置包括: 第二數(shù)據(jù)獲取單元,設(shè)置于客戶(hù)端中,用于在客戶(hù)端數(shù)據(jù)庫(kù)中查詢(xún)與預(yù)先設(shè)置的臨時(shí)表中的ID字段和時(shí)間字段均相同的ID字段與時(shí)間字段,并獲取客戶(hù)端數(shù)據(jù)庫(kù)中所述ID字段與時(shí)間字段對(duì)應(yīng)的數(shù)據(jù)記錄,并將所述數(shù)據(jù)記錄發(fā)送給服務(wù)器端; 第一查詢(xún)單元,設(shè)置于服務(wù)器端,用于根據(jù)服務(wù)器端接收到所述數(shù)據(jù)記錄,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在與所述數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于所述數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄; 第二數(shù)據(jù)修改單元,設(shè)置于服務(wù)器端,用于在服務(wù)器端數(shù)據(jù)庫(kù)中存在與所述數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于所述數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄的情況下,根據(jù)接收到的客戶(hù)端發(fā)送的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù),并將數(shù)據(jù)修改結(jié)果狀態(tài)通知給客戶(hù)端。
      6.如權(quán)利要求5所述的數(shù)據(jù)同步裝置,其特征在于,所述在線數(shù)據(jù)同步裝置還包括: 臨時(shí)表維護(hù)單元,設(shè)置于客戶(hù)端,用于當(dāng)服務(wù)器端未接收到客戶(hù)端發(fā)送的數(shù)據(jù)記錄時(shí)或當(dāng)客戶(hù)端未收到服務(wù)器端發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)時(shí)或當(dāng)客戶(hù)端接收到服務(wù)器端發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)為失敗狀態(tài)時(shí),查詢(xún)?cè)诳蛻?hù)端預(yù)先設(shè)置的臨時(shí)表中是否存在與客戶(hù)端數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)記錄的ID字段相同的ID字段;若存在,則根據(jù)所述客戶(hù)端數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)記錄的時(shí)間字段,修改臨時(shí)表中的時(shí)間字段;若不存在,則在臨時(shí)表中插入所述客戶(hù)端數(shù)據(jù)庫(kù)中發(fā)生變化的數(shù)據(jù)記錄對(duì)應(yīng)的ID字段和時(shí)間字段。
      7.如權(quán)利要求5所述的數(shù)據(jù)同步裝置,其特征在于,所述離線數(shù)據(jù)同步裝置還包括: 狀態(tài)設(shè)置裝置,設(shè)置于服務(wù)器端,用于在服務(wù)器端數(shù)據(jù)庫(kù)中不存在與所述數(shù)據(jù)記錄的ID字段相同,且時(shí)間字段小于所述數(shù)據(jù)記錄的時(shí)間字段的數(shù)據(jù)記錄的情況下,在服務(wù)器端直接將數(shù)據(jù)修改結(jié)果狀態(tài)設(shè)置為數(shù)據(jù)修改成功狀態(tài)并通知客戶(hù)端數(shù)據(jù)修改結(jié)果。
      8.如權(quán)利要求5或7所述的數(shù)據(jù)同步裝置,其特征在于,還包括: 刪除單元,用于當(dāng)客戶(hù)端接收到服務(wù)器端發(fā)送的數(shù)據(jù)修改結(jié)果狀態(tài)為數(shù)據(jù)修改成功狀態(tài)時(shí),將臨時(shí)表中與服務(wù)器端數(shù)據(jù)庫(kù)中修改成功的數(shù)據(jù)記錄對(duì)應(yīng)的ID字段和時(shí)間字段刪除。
      9.一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)校驗(yàn)方法,其特征在于,包括: 步驟S601、預(yù)先通過(guò)權(quán)利要求1-4任一項(xiàng)所述的異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步方法,完成異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步; 步驟S602、獲取客戶(hù)端數(shù)據(jù)庫(kù)中數(shù)據(jù)記錄的ID字段與時(shí)間字段,并將所述獲取的ID字段與時(shí)間字段發(fā)送給服務(wù)器端; 步驟S603、服務(wù)器端接收到所述ID字段與時(shí)間字段后,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在ID字段與所述ID字段相同,且時(shí)間字段小于所述時(shí)間字段的數(shù)據(jù)記錄; 步驟S604、在服務(wù)器端數(shù)據(jù)庫(kù)中存在ID字段與所述ID字段相同,且時(shí)間字段小于所述時(shí)間字段數(shù)據(jù)記錄的情況下,將服務(wù)器端滿(mǎn)足條件的數(shù)據(jù)記錄的ID字段反饋給客戶(hù)端;步驟S605、根據(jù)客戶(hù)端接收到的服務(wù)器端發(fā)送的ID字段,獲取客戶(hù)端數(shù)據(jù)庫(kù)中與所述ID字段相同的ID字段對(duì)應(yīng)的數(shù)據(jù)記錄,并將該數(shù)據(jù)記錄發(fā)送給服務(wù)器端;步驟S606、服務(wù)器端根據(jù)接收到的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)并通知客戶(hù)端數(shù)據(jù)修改成功。
      10.一種異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)校驗(yàn)系統(tǒng),其特征在于,預(yù)先通過(guò)權(quán)利要求5-8任一項(xiàng)所述的異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步裝置,完成異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步,且所述數(shù)據(jù)校驗(yàn)系統(tǒng)包括: 字段獲取單元,設(shè)置于客戶(hù)端,用于獲取客戶(hù)端數(shù)據(jù)庫(kù)中數(shù)據(jù)記錄的ID字段與時(shí)間字段,并將所述獲取的ID字段與時(shí)間字段發(fā)送給服務(wù)器端; 第二查詢(xún)單元,設(shè)置于服務(wù)器端,用于服務(wù)器端接收到所述ID字段與時(shí)間字段后,查詢(xún)服務(wù)器端數(shù)據(jù)庫(kù)中是否存在ID字段與所述ID字段相同,且時(shí)間字段小于所述時(shí)間字段的數(shù)據(jù)記錄; 反饋單元,用于在服務(wù)器端的數(shù)據(jù)庫(kù)中存在ID字段與所述ID字段相同,且時(shí)間字段小于所述時(shí)間字段的數(shù)據(jù)記錄的情況下,將服務(wù)器端滿(mǎn)足條件的數(shù)據(jù)記錄的ID字段反饋給客戶(hù)端; 第三數(shù)據(jù)獲取單元,設(shè)置于客戶(hù)端中,用于根據(jù)客戶(hù)端接收到的服務(wù)器端發(fā)送的ID字段,獲取客戶(hù)端數(shù)據(jù)庫(kù)中與所述ID字段相同的ID字段對(duì)應(yīng)的數(shù)據(jù)記錄,并將該數(shù)據(jù)記錄發(fā)送給服務(wù)器端; 第三數(shù)據(jù)修改單元,設(shè)置于服務(wù)器端,用于根據(jù)服務(wù)器端接收到的數(shù)據(jù)記錄,修改服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)并通知客戶(hù)端數(shù)據(jù)修改成功。
      【文檔編號(hào)】G06F17/30GK103984715SQ201410192546
      【公開(kāi)日】2014年8月13日 申請(qǐng)日期:2014年5月8日 優(yōu)先權(quán)日:2014年5月8日
      【發(fā)明者】胡三波 申請(qǐng)人:武漢庫(kù)百網(wǎng)絡(luò)技術(shù)有限公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1