專利名稱:一種數(shù)據(jù)同步方法和數(shù)據(jù)同步裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明數(shù)據(jù)存儲(chǔ)技術(shù),具體是一種數(shù)據(jù)同步的方法。本發(fā)明同時(shí)提供一種數(shù)據(jù)同
步裝置。
背景技術(shù):
在網(wǎng)絡(luò)管理系統(tǒng)、通信系統(tǒng)、電子商務(wù)、銀行系統(tǒng)中,不斷產(chǎn)生大量的系統(tǒng)數(shù)據(jù)。如果系統(tǒng)出現(xiàn)故障,這些數(shù)據(jù)丟失,就會(huì)造成嚴(yán)重影響。為此,需要對(duì)數(shù)據(jù)進(jìn)行及時(shí)的備份。同時(shí),這些數(shù)據(jù)可能隨時(shí)面臨大量的查詢,為了加快查詢的進(jìn)度,也有必要在多個(gè)不同地點(diǎn)的數(shù)據(jù)庫進(jìn)行存儲(chǔ)?,F(xiàn)有技術(shù)下,對(duì)這些數(shù)據(jù)進(jìn)行備份的方式主要有以下兩種。1、人工操作使用數(shù)據(jù)庫自帶的工具,將數(shù)據(jù)導(dǎo)出成文件,然后對(duì)文件進(jìn)行處理再導(dǎo)入到另一個(gè)數(shù)據(jù)庫。該方法一般是用于搬移前后數(shù)據(jù)庫結(jié)構(gòu)相同或較相似,不需要對(duì)數(shù)據(jù)做太多處理的情況,經(jīng)常用于實(shí)時(shí)性要求不高、數(shù)據(jù)量較大的數(shù)據(jù)應(yīng)用。2、為特定的數(shù)據(jù)背景開發(fā)特定的程序,用于搬移指定的若干數(shù)據(jù)。如由于一個(gè)應(yīng)用的要求,需要搬移A、B、C三張數(shù)據(jù)表的數(shù)據(jù)到另一個(gè)庫,就開發(fā)一個(gè)程序/工具可以實(shí)現(xiàn)這個(gè)功能。這種方法比較靈活,可以在搬移時(shí)按照應(yīng)用的需要對(duì)數(shù)據(jù)進(jìn)行計(jì)算,如簡(jiǎn)單的數(shù)學(xué)計(jì)算、聚合操作、去重等。但開發(fā)出來的工具與該應(yīng)用場(chǎng)景耦合性高,由于搬移數(shù)據(jù)的內(nèi)容、算法、周期等的限制,工具很難復(fù)用。對(duì)于各種不斷產(chǎn)生新數(shù)據(jù)的網(wǎng)絡(luò)管理、通信系統(tǒng),及時(shí)進(jìn)行數(shù)據(jù)同步、實(shí)現(xiàn)數(shù)據(jù)備份至關(guān)重要,但上述現(xiàn)有技術(shù)均無法實(shí)現(xiàn)可靠的周期性數(shù)據(jù)同步。第一種方案需要不斷的人工干預(yù),不僅效率低不經(jīng)濟(jì),而且也容易出現(xiàn)差錯(cuò)。第二種方案通常與具體應(yīng)用場(chǎng)景的耦合性高,不能復(fù)用在不同的數(shù)據(jù)同步場(chǎng)合。尤其是不能定義數(shù)據(jù)同步中涉及的各種參數(shù),并且也很難對(duì)數(shù)據(jù)同步中出現(xiàn)的差錯(cuò)進(jìn)行糾正。
發(fā)明內(nèi)容
本發(fā)明提供一種數(shù)據(jù)同步方法,該數(shù)據(jù)同步方法能夠適應(yīng)多種情況的數(shù)據(jù)同步工作,自動(dòng)進(jìn)行,并能夠可靠的進(jìn)行周期性的數(shù)據(jù)同步。本發(fā)明同時(shí)提供一種實(shí)現(xiàn)上述數(shù)據(jù)同步方法的數(shù)據(jù)同步裝置。一種數(shù)據(jù)同步方法,用于將源數(shù)據(jù)庫中的數(shù)據(jù)搬移到目標(biāo)數(shù)據(jù)庫中,其特征在于,包括如下步驟:
當(dāng)前時(shí)間是否等于或者晚于數(shù)據(jù)時(shí)間點(diǎn)加延遲時(shí)間;若是,則進(jìn)入數(shù)據(jù)同步步驟;若否,則等待若干時(shí)間后,重新進(jìn)行上述判斷;
數(shù)據(jù)同步,即將源數(shù)據(jù)庫的數(shù)據(jù)搬移到目標(biāo)數(shù)據(jù)庫的對(duì)應(yīng)位置;同時(shí),記錄所搬移的數(shù)據(jù)的條數(shù);
判斷數(shù)據(jù)同步的條數(shù)是否大于當(dāng)前的經(jīng)驗(yàn)條數(shù)與預(yù)設(shè)的作為系數(shù)的閾值的乘積;若是,則搬移結(jié)束;若否,則等待預(yù)設(shè)的等候時(shí)長(zhǎng),然后返回?cái)?shù)據(jù)同步的步驟;同時(shí),記錄累計(jì)的等候時(shí)長(zhǎng);
根據(jù)本次數(shù)據(jù)同步記錄的搬移數(shù)據(jù)條數(shù),重新計(jì)算確定所述經(jīng)驗(yàn)條數(shù)和延遲時(shí)間;
回到開始步驟。優(yōu)選地,所述數(shù)據(jù)時(shí)間點(diǎn)以如下方式確定:
讀取上次同步的數(shù)據(jù)時(shí)間點(diǎn),加上預(yù)設(shè)的數(shù)據(jù)同步的周期,即獲得本次同步的數(shù)據(jù)時(shí)間點(diǎn)。優(yōu)選地,所述經(jīng)驗(yàn)條數(shù)為所同步的數(shù)據(jù)所在的數(shù)據(jù)表在一預(yù)設(shè)的時(shí)間長(zhǎng)度內(nèi)的各次同步的同步條數(shù)中的最大值。優(yōu)選地,所述閾值為一小于I的系數(shù)值。優(yōu)選地,在進(jìn)行數(shù)據(jù)同步之前,根據(jù)元數(shù)據(jù)中記錄的源數(shù)據(jù)庫的數(shù)據(jù)表參數(shù),判斷目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)表結(jié)構(gòu)是否完整準(zhǔn)確,若否,則根據(jù)元數(shù)據(jù)中的相關(guān)參數(shù)將數(shù)據(jù)表修補(bǔ)完整。優(yōu)選地,在每次數(shù)據(jù)同步完成之后,根據(jù)本次數(shù)據(jù)同步的搬移條數(shù)除以經(jīng)驗(yàn)條數(shù),獲得本次數(shù)據(jù)同步的齊全率;若數(shù)據(jù)同步的齊全率一次或者多次過低,則發(fā)出報(bào)警。優(yōu)選地,所述延遲時(shí)間,在每次數(shù)據(jù)同步完成后,以原延遲時(shí)間加上累計(jì)的等候時(shí)長(zhǎng)作為下次同步的延遲時(shí)間;若上述計(jì)算獲得的延遲時(shí)間超過了預(yù)設(shè)的極限值,則發(fā)出警報(bào)。優(yōu)選地,還包括以預(yù)設(shè)的周期進(jìn)行的下述步驟:
刪除存儲(chǔ)在目標(biāo)數(shù)據(jù)庫中的超過規(guī)定存儲(chǔ)時(shí)間的數(shù)據(jù)。本發(fā)明還涉及一種數(shù)據(jù)同步裝置,其特征在于,包括:
時(shí)間判斷單元,用于獲得數(shù)據(jù)時(shí)間點(diǎn)、延遲時(shí)間數(shù)據(jù),并用當(dāng)前時(shí)間與上述數(shù)據(jù)時(shí)間點(diǎn)加延遲時(shí)間進(jìn)行比較,判斷當(dāng)前時(shí)間是否晚于數(shù)據(jù)時(shí)間點(diǎn)加延遲時(shí)間;若是,則發(fā)出數(shù)據(jù)同步啟動(dòng)指令;該時(shí)間判斷單元,還接收所述判斷計(jì)算單元發(fā)出的等待指令,并在等待預(yù)設(shè)的等待時(shí)長(zhǎng)后,發(fā)出數(shù)據(jù)同步啟動(dòng)指令;
數(shù)據(jù)同步單元,用于接收所述數(shù)據(jù)同步啟動(dòng)指令,并據(jù)此啟動(dòng)數(shù)據(jù)同步,將源數(shù)據(jù)庫的數(shù)據(jù)搬移到目標(biāo)數(shù)據(jù)庫的對(duì)應(yīng)位置;
計(jì)數(shù)單元,用于在數(shù)據(jù)同步單元進(jìn)行數(shù)據(jù)同步時(shí),記錄同步數(shù)據(jù)條數(shù),并將最終獲得的計(jì)數(shù)結(jié)果輸出;
判斷計(jì)算單元,用于接收來自所述計(jì)數(shù)單元的同步數(shù)據(jù)條數(shù),并判斷該數(shù)據(jù)是否大于當(dāng)前的經(jīng)驗(yàn)條數(shù)和預(yù)設(shè)的閾值的乘積;若是,則向時(shí)間判斷單元發(fā)出本次同步結(jié)束信號(hào),使其啟動(dòng)是否開始下一次同步的判斷;若否,則向所述時(shí)間判斷單元發(fā)出等待指令;
元數(shù)據(jù)存儲(chǔ)單元,用于存儲(chǔ)上述各個(gè)單元需要使用的相關(guān)參數(shù)。最好,包括:
數(shù)據(jù)結(jié)構(gòu)修補(bǔ)單元,用于讀取元數(shù)據(jù)存儲(chǔ)單元中存儲(chǔ)的源數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)參數(shù),判斷目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)是否完整準(zhǔn)確,若否,則將目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)修補(bǔ)完整。優(yōu)選地,還包括:
齊全率計(jì)算單元,用于計(jì)算每次數(shù)據(jù)同步的齊全率,若齊全率過低,則發(fā)出報(bào)警;所述齊全率的計(jì)算方式為,以本次數(shù)據(jù)同步搬移的數(shù)據(jù)條目除以經(jīng)驗(yàn)條數(shù),作為本次數(shù)據(jù)同步的齊全率;將該數(shù)值和一預(yù)設(shè)的最低齊全率閾值相比較,即可以判斷齊全率是否過低。
優(yōu)選地,還包括:
數(shù)據(jù)清理單元,用于定期執(zhí)行下述操作:根據(jù)預(yù)設(shè)的數(shù)據(jù)存儲(chǔ)時(shí)間,將目標(biāo)數(shù)據(jù)庫中超過存儲(chǔ)時(shí)間的數(shù)據(jù)條目刪除。優(yōu)選地,還包括通過excel表格構(gòu)造的元數(shù)據(jù)編輯器,用于對(duì)所述元數(shù)據(jù)存儲(chǔ)單元存儲(chǔ)的元數(shù)據(jù)進(jìn)行編輯,以及顯示所述元數(shù)據(jù)存儲(chǔ)單元在同步過程中記錄的元數(shù)據(jù)。最好,包括數(shù)據(jù)缺失報(bào)警單元,該單元根據(jù)元數(shù)據(jù)存儲(chǔ)單元中存儲(chǔ)的齊全率最低值指標(biāo)以及延遲時(shí)間最大值指標(biāo),判斷每次同步完成后的齊全率和延遲時(shí)間是否在指標(biāo)范圍內(nèi),若超過則發(fā)出報(bào)警信息。有利地包括任務(wù)監(jiān)控單元,該任務(wù)監(jiān)控單元用于監(jiān)控各個(gè)單元是否正常運(yùn)行,若某個(gè)單元執(zhí)行的任務(wù)停滯,則重啟該單元。本發(fā)明提供的數(shù)據(jù)同步方法,能夠?qū)Ω鞣N數(shù)據(jù)進(jìn)行及時(shí)的周期性同步,并判斷數(shù)據(jù)同步是否完整,并通過統(tǒng)計(jì)搬移數(shù)據(jù)的條目的方法,判斷數(shù)據(jù)同步是否完整,若不完整,則間隔一定時(shí)間繼續(xù)進(jìn)行數(shù)據(jù)同步。在每次同步過程中,還及時(shí)更新經(jīng)驗(yàn)條數(shù)和延遲時(shí)間等參數(shù),確保每次同步的數(shù)據(jù)完整。這樣,該同步方法就能夠自動(dòng)適應(yīng)不同的同步場(chǎng)合
本發(fā)明提供的數(shù)據(jù)同步方法,其優(yōu)選的實(shí)施方式,還能夠根據(jù)元數(shù)據(jù)記錄的數(shù)據(jù)表結(jié)構(gòu)判斷數(shù)據(jù)表是否完整準(zhǔn)確,并據(jù)此對(duì)目標(biāo)數(shù)據(jù)庫的元數(shù)據(jù)參數(shù)將數(shù)據(jù)表修補(bǔ)完整。在本發(fā)明的優(yōu)選實(shí)施方案中,還根據(jù)每次同步搬移的數(shù)據(jù)條數(shù)與經(jīng)驗(yàn)條數(shù)的比對(duì),獲得對(duì)數(shù)據(jù)齊全率的判斷,從而在數(shù)據(jù)齊全率過低的情況下發(fā)出報(bào)警。本發(fā)明的優(yōu)選實(shí)施方案中,通過設(shè)置元數(shù)據(jù)中與數(shù)據(jù)同步相關(guān)的參數(shù),可以使本方法通過簡(jiǎn)單的參數(shù)變更適用于不同的同步場(chǎng)合,使該方法能夠滿足不同場(chǎng)景的數(shù)據(jù)同步的需要。具體而言,針對(duì)不同同步場(chǎng)合,只需要定義一套相應(yīng)的元數(shù)據(jù),既可以適應(yīng)新的場(chǎng)
口 ο本發(fā)明同時(shí)提供實(shí)現(xiàn)上述方法的裝置。該裝置能夠有效的實(shí)現(xiàn)上述數(shù)據(jù)同步方法,并且,其優(yōu)選實(shí)施例能夠在數(shù)據(jù)同步中發(fā)現(xiàn)數(shù)據(jù)生成的故障,及時(shí)報(bào)警。其另外一個(gè)優(yōu)選實(shí)施方案中,還采用excel表格構(gòu)造元數(shù)據(jù)表編輯器,作為編輯元數(shù)據(jù)的接口,實(shí)現(xiàn)了人機(jī)界面的充分友好。
圖1為本發(fā)明第一實(shí)施例提供的數(shù)據(jù)同步方法的流程 圖2為本發(fā)明第二實(shí)施例提供的數(shù)據(jù)同步裝置的單元框圖。
具體實(shí)施例方式本發(fā)明第一實(shí)施例提供一種數(shù)據(jù)同步的方法。請(qǐng)參看圖1,該圖為該數(shù)據(jù)同步方法的流程圖。以下結(jié)合該圖進(jìn)行說明。步驟S101,開始。在該步驟中進(jìn)行若干初始化工作,包括讀取相關(guān)的元數(shù)據(jù)。所謂元數(shù)據(jù),是關(guān)于數(shù)據(jù)的數(shù)據(jù),即描述數(shù)據(jù)的相關(guān)特性的數(shù)據(jù)。例如,以下會(huì)用到的各種相關(guān)參數(shù)的初始值,以及源數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)。第一次執(zhí)行本步驟時(shí),根據(jù)元數(shù)據(jù)記錄的源數(shù)據(jù)庫I的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建目標(biāo)數(shù)據(jù)庫II的相應(yīng)結(jié)構(gòu),以便目標(biāo)數(shù)據(jù)庫II能夠?qū)?yīng)存儲(chǔ)相關(guān)的數(shù)據(jù)。在本實(shí)施例中,假設(shè)需要同步的源數(shù)據(jù)庫數(shù)據(jù)采用數(shù)據(jù)表的方式存儲(chǔ)。因此,需要在目標(biāo)數(shù)據(jù)庫II中創(chuàng)建相應(yīng)的數(shù)據(jù)表,并且對(duì)應(yīng)的數(shù)據(jù)表有同樣的字段結(jié)構(gòu)。具體包括檢查目標(biāo)數(shù)據(jù)庫II該表是否存在,如果不存在讀取元數(shù)據(jù)建表、并建主鍵、索引;如果該表存在,檢查該表的表結(jié)構(gòu),與元數(shù)據(jù)里的字段比較,如果不同,則對(duì)目標(biāo)數(shù)據(jù)庫的表增加字段。在以后執(zhí)行本步驟時(shí),需要根據(jù)元數(shù)據(jù)對(duì)目標(biāo)數(shù)據(jù)庫II的數(shù)據(jù)表進(jìn)行調(diào)整修改,這樣可以確保源數(shù)據(jù)庫I的數(shù)據(jù)表結(jié)構(gòu)發(fā)生改變時(shí),目標(biāo)數(shù)據(jù)庫II的數(shù)據(jù)表結(jié)構(gòu)及時(shí)隨之修改。步驟S102,判斷當(dāng)前時(shí)間是否等于或者晚于數(shù)據(jù)時(shí)間點(diǎn)加延遲時(shí)間;若是,則進(jìn)入步驟S103 ;若否,則等待預(yù)設(shè)的時(shí)間量后,重新進(jìn)行上述判斷。該步驟中,當(dāng)前時(shí)間取自系統(tǒng)時(shí)間,所述數(shù)據(jù)時(shí)間點(diǎn)是一個(gè)時(shí)間段的截至點(diǎn),例如,四點(diǎn)到五點(diǎn)這一時(shí)間段,五點(diǎn)是截至?xí)r間點(diǎn),作為數(shù)據(jù)時(shí)間點(diǎn)。本次同步的數(shù)據(jù)即為同步四點(diǎn)到五點(diǎn)這一時(shí)間段這一時(shí)間段的數(shù)據(jù)。網(wǎng)絡(luò)管理系統(tǒng)或者通訊系統(tǒng)中的每一條數(shù)據(jù)均含有數(shù)據(jù)產(chǎn)生時(shí)間的時(shí)間字段,因此,可以獲知其產(chǎn)生的時(shí)間。由于上述時(shí)間段的數(shù)據(jù)通過采集進(jìn)入源數(shù)據(jù)庫需要一段時(shí)間,所以,需要等待一個(gè)延遲時(shí)間開始數(shù)據(jù)同步。在第一次同步時(shí),上述數(shù)據(jù)時(shí)間點(diǎn)和延遲時(shí)間均為預(yù)設(shè),以后的數(shù)據(jù)同步過程,數(shù)據(jù)時(shí)間點(diǎn)為上一次的數(shù)據(jù)時(shí)間點(diǎn)加上一個(gè)預(yù)設(shè)的數(shù)據(jù)同步的周期,如一個(gè)小時(shí);延遲時(shí)間根據(jù)上一同步周期的實(shí)際延遲時(shí)間調(diào)整,如下述步驟S105所述。步驟S103,數(shù)據(jù)同步,即將源數(shù)據(jù)庫I的數(shù)據(jù)搬移到目標(biāo)數(shù)據(jù)庫II的對(duì)應(yīng)位置;同時(shí)記錄所搬移的數(shù)據(jù)的條數(shù)。本步驟實(shí)際上是對(duì)應(yīng)每一個(gè)數(shù)據(jù)表進(jìn)行,可啟動(dòng)多個(gè)線程,分別搬移每一個(gè)數(shù)據(jù)表的數(shù)據(jù)。即將源數(shù)據(jù)庫I中的某個(gè)數(shù)據(jù)表的內(nèi)容,搬移到目標(biāo)數(shù)據(jù)庫II中的相應(yīng)表中。搬移時(shí),每一個(gè)數(shù)據(jù)條目中的具體數(shù)據(jù)項(xiàng),根據(jù)其對(duì)應(yīng)的字段名進(jìn)行同名字段名數(shù)據(jù)項(xiàng)的搬移即可。在該步驟中,同時(shí)記錄所搬移數(shù)據(jù)的條數(shù),以便在后面的步驟中,對(duì)經(jīng)驗(yàn)條數(shù)和延遲時(shí)間等數(shù)據(jù)進(jìn)行修正。步驟S104,判斷數(shù)據(jù)同步的條數(shù)是否大于等于當(dāng)前的經(jīng)驗(yàn)條數(shù)與預(yù)設(shè)的同步完整性閾值的乘積;若是,則搬移結(jié)束,進(jìn)入下一個(gè)步驟;若否,則等待預(yù)設(shè)的等候時(shí)長(zhǎng)t后,返回上述步驟S103。由于數(shù)據(jù)進(jìn)入源數(shù)據(jù)庫的延遲,一次同步不一定能夠?qū)⒃摯瓮綄?duì)應(yīng)的數(shù)據(jù)時(shí)間點(diǎn)的數(shù)據(jù)全部搬移完,在這種情況下,需要再啟動(dòng)一次數(shù)據(jù)同步過程,搬移尚未這些數(shù)據(jù)。由于本實(shí)施例針對(duì)的網(wǎng)絡(luò)管理系統(tǒng)和通訊系統(tǒng),或者其他系統(tǒng),固定時(shí)間段產(chǎn)生的數(shù)據(jù)大致相同,因此,可以以經(jīng)驗(yàn)條數(shù),即前面的同步過程中統(tǒng)計(jì)的搬移條數(shù)作為判斷依據(jù)。具體確定經(jīng)驗(yàn)條數(shù)的方法在不同場(chǎng)合可以不同,在本實(shí)施例中,采用所搬移的數(shù)據(jù)所在的數(shù)據(jù)表在一預(yù)設(shè)的時(shí)間長(zhǎng)度內(nèi)的各次搬移條數(shù)中的最大值。例如,對(duì)于數(shù)據(jù)表A,在預(yù)設(shè)的時(shí)間段24小時(shí)內(nèi),以I小時(shí)為周期進(jìn)行了 24次搬移,其中,統(tǒng)計(jì)獲得的最大的搬移條數(shù)值為20000條,則以20000條為當(dāng)前的經(jīng)驗(yàn)條數(shù)。當(dāng)然,所述預(yù)設(shè)的時(shí)間段根據(jù)不同的同步場(chǎng)合可以采用不同的值,例如,也可以采用一周作為預(yù)設(shè)的時(shí)間段,甚至采用一個(gè)月作為預(yù)設(shè)的時(shí)間段。
由于上述方法中,采用各次搬移條數(shù)的最大值為經(jīng)驗(yàn)條數(shù),實(shí)際上,并不是每個(gè)周期都會(huì)產(chǎn)生這么大的數(shù)據(jù)量,因此,需要設(shè)置一個(gè)反應(yīng)同步數(shù)據(jù)完整性的閾值,稱為同步完整性閾值,該同步完整性閾值為一個(gè)小于I的系數(shù)。例如0.9。以上方案只是判斷數(shù)據(jù)同步是否完整的轉(zhuǎn)移了數(shù)據(jù)的一種方式,也可以采用其他方案。上述等候時(shí)長(zhǎng)可以累計(jì)并且進(jìn)行記錄,以便后續(xù)使用。例如,t設(shè)置為5分鐘,延遲一次進(jìn)行補(bǔ)充數(shù)據(jù)同步后,回到本步驟,仍然沒有大于等于經(jīng)驗(yàn)條數(shù)和作為系數(shù)的閾值的乘積所要求的條數(shù),則需要再次延遲5分鐘,則記錄的等候時(shí)長(zhǎng)應(yīng)當(dāng)為10分鐘。另外,還可以為等候的次數(shù)設(shè)置一個(gè)極限值,當(dāng)超過該極限值時(shí),無論如何進(jìn)入下一個(gè)步驟,以免出現(xiàn)無限期等待的情況。出現(xiàn)這種情況時(shí),也可以進(jìn)行報(bào)警,要求人工干預(yù)。步驟S105,根據(jù)本次數(shù)據(jù)同步記錄的搬移數(shù)據(jù)條數(shù),重新計(jì)算確定所述經(jīng)驗(yàn)條數(shù)和延遲時(shí)間。通過上述步驟S104和步驟S105,可以獲得完成后的本次數(shù)據(jù)同步記錄的搬移數(shù)據(jù)條數(shù),以及原延遲時(shí)間加上本次累計(jì)的等候時(shí)長(zhǎng)獲得的總的延遲時(shí)間。這些對(duì)以后的數(shù)據(jù)同步都有重要參考價(jià)值,應(yīng)當(dāng)根據(jù)這些新數(shù)據(jù),重新計(jì)算確定所述經(jīng)驗(yàn)條數(shù),以及延遲時(shí)間。所述延遲時(shí)間采用本次記錄的累計(jì)等候時(shí)長(zhǎng)加上原來的延遲時(shí)間,因?yàn)檫@個(gè)數(shù)據(jù)反映了最近的系統(tǒng)中數(shù)據(jù)搜集的速度;所述經(jīng)驗(yàn)條數(shù),則將本次數(shù)據(jù)同步記錄的搬移數(shù)據(jù)條數(shù)放入預(yù)設(shè)時(shí)間段的各次記錄內(nèi),進(jìn)行比較,計(jì)算新的經(jīng)驗(yàn)條數(shù)。如果本次搬移的數(shù)據(jù)條數(shù)大于預(yù)設(shè)時(shí)間段內(nèi)的各次記錄的數(shù)據(jù)條數(shù),則本次搬移的數(shù)據(jù)條數(shù)即作為經(jīng)驗(yàn)條數(shù)使用。通過本步驟,能夠及時(shí)修改參數(shù),以反映源數(shù)據(jù)庫的數(shù)據(jù)搜集的情況,避免數(shù)據(jù)同步不完整。步驟S106,結(jié)束。本次同步過程結(jié)束,回到步驟S101,進(jìn)行下一次循環(huán)。在該步驟S106前,還可以根據(jù)所獲的數(shù)據(jù)計(jì)算數(shù)據(jù)同步的齊全率,該齊全率的計(jì)算是以本次同步搬移的數(shù)據(jù)條數(shù)除以經(jīng)驗(yàn)條數(shù),如果過低,則認(rèn)為系統(tǒng)數(shù)據(jù)搜集存在問題,可以提出報(bào)警。另外,可以為延遲時(shí)間設(shè)定極限值,在所述步驟S105計(jì)算獲得所述延遲時(shí)間后,將其與該預(yù)先設(shè)定的延遲時(shí)間的極限值比較,如果超過該極限值,則意味著數(shù)據(jù)搜集存在問題,也可以提出報(bào)警。這個(gè)報(bào)警和步驟S104中等待次數(shù)超過預(yù)先設(shè)置的極限次數(shù)的報(bào)警可以是一致的,也可以設(shè)置兩個(gè)不同的標(biāo)準(zhǔn),采用兩個(gè)不同的報(bào)警信息。具體的報(bào)警方式,可以通過短信方式直接向相關(guān)管理人員發(fā)送報(bào)警短信。根據(jù)不同的報(bào)警原因,可以發(fā)送不同的報(bào)警信息。另外,由于大多數(shù)數(shù)據(jù)存在的意義均在一定的時(shí)間周期內(nèi),所以,配合上述數(shù)據(jù)同步的過程,也可以設(shè)置定期清理數(shù)據(jù)的程序,定期將目標(biāo)數(shù)據(jù)庫II中的過期數(shù)據(jù)清理掉。這樣可以避免數(shù)據(jù)庫容量無限膨脹,以及影響有效數(shù)據(jù)的檢索速度。在上述實(shí)施例中,假設(shè)數(shù)據(jù)采用數(shù)據(jù)表存儲(chǔ),因此,同步數(shù)據(jù)時(shí)可以針對(duì)每個(gè)數(shù)據(jù)表分別啟動(dòng)對(duì)應(yīng)的線程。在該實(shí)施例中,由于對(duì)每次數(shù)據(jù)同步的數(shù)據(jù)條目的數(shù)量都有記錄,并將其與以前同步的數(shù)據(jù)條目數(shù)量進(jìn)行比較,并以此作為同步是否完全的判斷標(biāo)準(zhǔn)。這樣可以基本保證數(shù)據(jù)同步的完整性。
在該實(shí)施例中,還對(duì)同步數(shù)據(jù)中條目過少或者等待的延遲時(shí)間過長(zhǎng)的情況作出報(bào)警處理,這樣可以使系統(tǒng)中出現(xiàn)的問題能夠獲得及時(shí)的處理,保證數(shù)據(jù)搜集和同步都能夠正常進(jìn)行。本發(fā)明第二實(shí)施例提供一個(gè)數(shù)據(jù)同步裝置,該裝置能夠根據(jù)上述方法完成數(shù)據(jù)同
止/J/ O請(qǐng)參看圖2,該圖為該數(shù)據(jù)同步裝置的單元框圖。如圖2所示,該數(shù)據(jù)同步裝置包括:時(shí)間判斷單元1、數(shù)據(jù)同步單元2、計(jì)數(shù)單元3、判斷計(jì)算單元4、元數(shù)據(jù)存儲(chǔ)單元5 ;還包括:數(shù)據(jù)表結(jié)構(gòu)修補(bǔ)單元6、齊全率計(jì)算單元7、數(shù)據(jù)清理單元8、元數(shù)據(jù)編輯器9、數(shù)據(jù)缺失報(bào)警單元10、任務(wù)監(jiān)控單元11。所述時(shí)間判斷單元1,用于獲得數(shù)據(jù)時(shí)間點(diǎn)、延遲時(shí)間數(shù)據(jù),并從系統(tǒng)讀取當(dāng)前時(shí)間,與上述數(shù)據(jù)時(shí)間點(diǎn)加延遲時(shí)間進(jìn)行比較,若是,則發(fā)出數(shù)據(jù)同步啟動(dòng)指令;所述數(shù)據(jù)時(shí)間點(diǎn)是上次數(shù)據(jù)同步的截止時(shí)間點(diǎn)加上預(yù)設(shè)的數(shù)據(jù)同步的周期計(jì)算獲得;所述延遲時(shí)間采用上次數(shù)據(jù)同步的實(shí)際延遲時(shí)間;如果是第一次進(jìn)行數(shù)據(jù)同步,則所述數(shù)據(jù)時(shí)間點(diǎn)以及數(shù)據(jù)同步的延遲時(shí)間從元數(shù)據(jù)存儲(chǔ)單元5讀取初始值即可。該時(shí)間判斷單元I還從所述判斷計(jì)算單元4接收等待指令,并在接收到該指令后,等待元數(shù)據(jù)中給定的等待時(shí)長(zhǎng)后,向所述數(shù)據(jù)同步單元2發(fā)出數(shù)據(jù)同步啟動(dòng)指令。 所述數(shù)據(jù)同步單元2,用于接收所述數(shù)據(jù)同步啟動(dòng)指令,并據(jù)此啟動(dòng)數(shù)據(jù)同步,將源數(shù)據(jù)庫I的數(shù)據(jù)搬移到目標(biāo)數(shù)據(jù)庫II的對(duì)應(yīng)位置。根據(jù)源數(shù)據(jù)庫I存儲(chǔ)數(shù)據(jù)的方式的不同,同步的方式也有所不同。在本實(shí)施例中,假設(shè)源數(shù)據(jù)庫I中以多個(gè)數(shù)據(jù)表的形式存儲(chǔ)數(shù)據(jù),相應(yīng)的,在所述目標(biāo)數(shù)據(jù)庫II中,對(duì)應(yīng)設(shè)置同樣的數(shù)據(jù)表,并且對(duì)應(yīng)的數(shù)據(jù)表具有相同的字段。同步過程就是將源數(shù)據(jù)庫I的各個(gè)數(shù)據(jù)表中的數(shù)據(jù)條目逐個(gè)拷貝到目標(biāo)數(shù)據(jù)庫
II的相應(yīng)的數(shù)據(jù)表中。針對(duì)每一個(gè)需要同步的數(shù)據(jù)表,可以啟動(dòng)一個(gè)單獨(dú)的線程進(jìn)行數(shù)據(jù)同步。同步時(shí),根據(jù)每一條數(shù)據(jù)條目中的生成時(shí)間數(shù)據(jù)判斷是否需要搬移,若需要搬移,則從源數(shù)據(jù)庫的數(shù)據(jù)表讀取該數(shù)據(jù)條目,然后拷貝到目標(biāo)數(shù)據(jù)庫II的相應(yīng)數(shù)據(jù)表中。例如,某此同步的數(shù)據(jù)時(shí)間點(diǎn)為五點(diǎn),數(shù)據(jù)同步的周期為I小時(shí),則數(shù)據(jù)同步時(shí),需要搬移四點(diǎn)到五點(diǎn)的數(shù)據(jù),四點(diǎn)之前,五點(diǎn)之后的數(shù)據(jù)都不同步。這樣才可以保證每次數(shù)據(jù)同步不會(huì)出現(xiàn)重復(fù)搬移數(shù)據(jù)的情況。搬移后的數(shù)據(jù)條目,可以加一個(gè)已經(jīng)同步的標(biāo)記,以免重復(fù)搬移。所述計(jì)數(shù)單元3,在數(shù)據(jù)同步單元進(jìn)行數(shù)據(jù)同步時(shí),記錄同步數(shù)據(jù)條數(shù),并將計(jì)數(shù)獲得的同步單元2在一次同步過程中同步的數(shù)據(jù)條數(shù)提供給判斷計(jì)算單元。該計(jì)數(shù)實(shí)際上針對(duì)每個(gè)數(shù)據(jù)表進(jìn)行。所述判斷計(jì)算單元4,用于接收來自所述計(jì)數(shù)單元3的同步數(shù)據(jù)條數(shù),與當(dāng)前的經(jīng)驗(yàn)條數(shù)和預(yù)設(shè)的同步完整性閾值的乘積相比較,判斷所述同步數(shù)據(jù)條數(shù)是否大于所述經(jīng)驗(yàn)條數(shù)和同步完整性閾值的乘積,若是,向時(shí)間判斷單元發(fā)出本次同步結(jié)束信號(hào),使其啟動(dòng)是否開始下一次同步的判斷;若否,則向所述時(shí)間判斷單元發(fā)出等待指令。該單元將一次同步周期中的等待時(shí)間加上原先的延遲時(shí)間獲得本次同步的實(shí)際延遲時(shí)間,并將這個(gè)數(shù)據(jù)記錄在元數(shù)據(jù)庫中,以便下次使用。該單元能夠根據(jù)計(jì)數(shù)單元3獲得的同步數(shù)據(jù)條目,將其與經(jīng)驗(yàn)條數(shù)和預(yù)設(shè)的閾值乘積比較,判斷同步是否完成,通過這個(gè)判斷,能夠確保數(shù)據(jù)同步的完整性,避免遺漏大量數(shù)據(jù)。所述元數(shù)據(jù)存儲(chǔ)單元5,用于存儲(chǔ)上述各個(gè)單元需要使用的相關(guān)參數(shù),以及源數(shù)據(jù)庫、目標(biāo)數(shù)據(jù)庫的相關(guān)參數(shù),以便數(shù)據(jù)同步中使用。例如,源表名、目標(biāo)表名、唯一主鍵的字段、搬移的篩選條件、數(shù)據(jù)保存時(shí)間,如果該表是性能數(shù)據(jù)還要描述時(shí)間字段、時(shí)間周期。對(duì)字段的描述如:源表字段名(可以是SQL語法的計(jì)算公式)、目標(biāo)表字段名、字段含義,上述同步過程中使用的延遲時(shí)間、數(shù)據(jù)時(shí)間點(diǎn),數(shù)據(jù)同步周期等內(nèi)容。元數(shù)據(jù)存儲(chǔ)單元5的結(jié)構(gòu)設(shè)計(jì)為便于各個(gè)單元讀取,這種數(shù)據(jù)結(jié)構(gòu)可能并不利于數(shù)據(jù)的輸入。為了便于對(duì)元數(shù)據(jù)進(jìn)行修改,可以采用excel表設(shè)計(jì)元數(shù)據(jù)編輯器9,通過excel表記錄各種元數(shù)據(jù),該元數(shù)據(jù)編輯器9通過接口程序和元數(shù)據(jù)存儲(chǔ)單元5連接,能夠方便元數(shù)據(jù)的輸入和修改,并增強(qiáng)控制界面的友好性,使該裝置能夠方便的應(yīng)用于不同的數(shù)據(jù)同步場(chǎng)合。該裝置還包括數(shù)據(jù)結(jié)構(gòu)修補(bǔ)單元6,該讀取元數(shù)據(jù)存儲(chǔ)單元5中存儲(chǔ)的源數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)參數(shù),判斷目標(biāo)數(shù)據(jù)庫II的數(shù)據(jù)結(jié)構(gòu)是否完整,若否,則將目標(biāo)數(shù)據(jù)庫II的數(shù)據(jù)結(jié)構(gòu)修補(bǔ)完整。例如,當(dāng)數(shù)據(jù)以數(shù)據(jù)表的形式存儲(chǔ)時(shí),該單元根據(jù)元數(shù)據(jù)存儲(chǔ)單元5中存儲(chǔ)的關(guān)于源數(shù)據(jù)庫I中的數(shù)據(jù)表的字段信息,判斷目標(biāo)數(shù)據(jù)庫II中的相應(yīng)的數(shù)據(jù)表的字段是否完整準(zhǔn)確,若是,則不作處理;若否,則將目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)修補(bǔ)完整。上述判斷和修補(bǔ)的操作可以在每次同步單元2開始同步之前進(jìn)行一次,以免同步過程中出現(xiàn)錯(cuò)誤。該裝置還包括齊全率計(jì)算單元7,該齊全率計(jì)算單元7用于計(jì)算每次數(shù)據(jù)同步的齊全率,將該齊全率記錄到元數(shù)據(jù)庫中。若齊全率過低,還可以通知數(shù)據(jù)缺失報(bào)警單元10發(fā)出報(bào)警。所述齊全率的計(jì)算方式為,在一個(gè)時(shí)間點(diǎn)的數(shù)據(jù)同步完全完成以后,將該次數(shù)據(jù)同步搬移的數(shù)據(jù)條目除以經(jīng)驗(yàn)條數(shù),作為本次數(shù)據(jù)同步的齊全率;將該數(shù)值和一預(yù)設(shè)的最低齊全率閾值相比較,即可以判斷齊全率是否過低。所述經(jīng)驗(yàn)條數(shù),就是同步計(jì)算單元2所用的經(jīng)驗(yàn)條數(shù),所述最低齊全率閾值為一個(gè)小于I的值,該值大于等于所述同步完整性閾值。所述數(shù)據(jù)清理單元8,用于根據(jù)預(yù)設(shè)的數(shù)據(jù)存儲(chǔ)時(shí)間,將目標(biāo)數(shù)據(jù)庫II中超過存儲(chǔ)時(shí)間的數(shù)據(jù)條目刪除。由于在該裝置的應(yīng)用環(huán)境中,所同步的數(shù)據(jù)具有一定的時(shí)效性,超過一定時(shí)間的數(shù)據(jù)失去意義,為了節(jié)省存儲(chǔ)空間,有必要根據(jù)情況實(shí)時(shí)清除相關(guān)的存儲(chǔ)數(shù)據(jù)。例如,規(guī)定數(shù)據(jù)存儲(chǔ)的時(shí)間不得超過三個(gè)月,該數(shù)據(jù)清理單元8定期運(yùn)行,根據(jù)數(shù)據(jù)條目中的數(shù)據(jù)生成時(shí)間字段,清除超過三個(gè)月的數(shù)據(jù)條目。該數(shù)據(jù)清理單元8執(zhí)行數(shù)據(jù)清理的時(shí)間一般應(yīng)當(dāng)在所述數(shù)據(jù)同步單元2沒有執(zhí)行同步的時(shí)間段內(nèi)執(zhí)行。所述元數(shù)據(jù)編輯器9,如前所述,采用excel表格形式提供人機(jī)接口的界面,在excel的不同頁面存儲(chǔ)不同類型的元數(shù)據(jù),包括對(duì)描述數(shù)據(jù)庫結(jié)構(gòu)的數(shù)據(jù),各種參數(shù)等,還可以記錄同步過程中產(chǎn)生的各種數(shù)據(jù)。這樣就可以方便的進(jìn)行輸入以及獲得同步中的相關(guān)數(shù)據(jù)情況??梢酝ㄟ^設(shè)置密碼等方式,使編輯者具有不同的編輯權(quán)限。數(shù)據(jù)缺失報(bào)警單元10,用于讀取所述齊全率計(jì)算單元7寫入元數(shù)據(jù)存儲(chǔ)單元5中的齊全率數(shù)據(jù),以及所述判斷計(jì)算單元4寫入元數(shù)據(jù)存儲(chǔ)單元5中的實(shí)際延遲時(shí)間數(shù)據(jù),將這兩個(gè)數(shù)據(jù)與元數(shù)據(jù)存儲(chǔ)單元5中存儲(chǔ)的指標(biāo)值比較,如果所述齊全率數(shù)據(jù)低于齊全率最低值指標(biāo),則認(rèn)為數(shù)據(jù)不完整,系統(tǒng)存在故障,發(fā)出報(bào)警;如果所述實(shí)際延遲時(shí)間數(shù)據(jù)長(zhǎng)于延遲時(shí)間最大值指標(biāo),則認(rèn)為系統(tǒng)數(shù)據(jù)搜集存在故障,發(fā)出報(bào)警。具體的報(bào)警方式,可以采用短信報(bào)警的方法,向相關(guān)負(fù)責(zé)人員發(fā)出報(bào)警短信,報(bào)警短信的具體內(nèi)容可以根據(jù)報(bào)警原因不同而不同。相關(guān)負(fù)責(zé)人員的手機(jī)號(hào)碼可以存儲(chǔ)在元數(shù)據(jù)存儲(chǔ)單元5中,并可以通過元數(shù)據(jù)編輯器9進(jìn)行編輯。
所述任務(wù)監(jiān)控單元11,是個(gè)“看門狗”程序,專門用于監(jiān)測(cè)數(shù)據(jù)同步單元2、歷史數(shù)據(jù)清理8、數(shù)據(jù)缺失報(bào)警單元10等模塊的運(yùn)行狀態(tài)。如果檢測(cè)到其中一個(gè)任務(wù)停滯,則重啟該任務(wù),這樣可以預(yù)防本同步裝置異常退出。以上數(shù)據(jù)同步裝置的各個(gè)單元,除了所述元數(shù)據(jù)編輯器9外,具體可采用在服務(wù)器中以常駐程序的形式運(yùn)行。采用上述數(shù)據(jù)同步裝置,就可以實(shí)現(xiàn)可靠的自動(dòng)數(shù)據(jù)同步,并可以及時(shí)發(fā)現(xiàn)異常情況,確保數(shù)據(jù)同步的有效運(yùn)行。并且,該數(shù)據(jù)同步裝置可以適應(yīng)不同背景的同步要求,只要通過元數(shù)據(jù)編輯器9輸入不同的元數(shù)據(jù)即可,這樣,其適用性就非常廣泛。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明基本原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種數(shù)據(jù)同步方法,用于將源數(shù)據(jù)庫中的數(shù)據(jù)搬移到目標(biāo)數(shù)據(jù)庫中,其特征在于,包括如下步驟: 當(dāng)前時(shí)間是否等于或者晚于數(shù)據(jù)時(shí)間點(diǎn)加延遲時(shí)間;若是,則進(jìn)入數(shù)據(jù)同步步驟;若否,則等待若干時(shí)間后,重新進(jìn)行上述判斷; 數(shù)據(jù)同步,即將源數(shù)據(jù)庫的數(shù)據(jù)搬移到目標(biāo)數(shù)據(jù)庫的對(duì)應(yīng)位置;同時(shí),記錄所搬移的數(shù)據(jù)的條數(shù); 判斷數(shù)據(jù)同步的條數(shù)是否大于當(dāng)前的經(jīng)驗(yàn)條數(shù)與預(yù)設(shè)的作為系數(shù)的閾值的乘積;若是,則搬移結(jié)束;若否,則等待預(yù)設(shè)的等候時(shí)長(zhǎng),然后返回?cái)?shù)據(jù)同步的步驟;同時(shí),記錄累計(jì)的等候時(shí)長(zhǎng); 根據(jù)本次數(shù)據(jù)同步記錄的搬移數(shù)據(jù)條數(shù),重新計(jì)算確定所述經(jīng)驗(yàn)條數(shù)和延遲時(shí)間; 回到開始步驟。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,所述數(shù)據(jù)時(shí)間點(diǎn)以如下方式確定: 讀取上次同步的數(shù)據(jù)時(shí)間點(diǎn),加上預(yù)設(shè)的數(shù)據(jù)同步的周期,即獲得本次同步的數(shù)據(jù)時(shí)間點(diǎn)。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,所述經(jīng)驗(yàn)條數(shù)為所同步的數(shù)據(jù)所在的數(shù)據(jù)表在一預(yù)設(shè)的時(shí)間長(zhǎng)度內(nèi)的各次同步的同步條數(shù)中的最大值。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)同步方法,其特征在于,所述閾值為一小于I的系數(shù)值。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,在進(jìn)行數(shù)據(jù)同步之前,根據(jù)元數(shù)據(jù)中記錄的源數(shù)據(jù)庫的數(shù)據(jù)表參數(shù),判斷目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)表結(jié)構(gòu)是否完整準(zhǔn)確,若否,則根據(jù)元數(shù)據(jù)中的相關(guān)參數(shù)將數(shù)據(jù)表修補(bǔ)完整。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,在每次數(shù)據(jù)同步完成之后,根據(jù)本次數(shù)據(jù)同步的搬移條數(shù)除以經(jīng)驗(yàn)條數(shù),獲得本次數(shù)據(jù)同步的齊全率;若數(shù)據(jù)同步的齊全率一次或者多次過低,則發(fā)出報(bào)警。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,所述延遲時(shí)間,在每次數(shù)據(jù)同步完成后,以原延遲時(shí)間加上累計(jì)的等候時(shí)長(zhǎng)作為下次同步的延遲時(shí)間;若上述計(jì)算獲得的延遲時(shí)間超過了預(yù)設(shè)的極限值,則發(fā)出警報(bào)。
8.根據(jù)權(quán)利要求1所述的數(shù)據(jù)同步方法,其特征在于,還包括以預(yù)設(shè)的周期進(jìn)行的下述步驟: 刪除存儲(chǔ)在目標(biāo)數(shù)據(jù)庫中的超過規(guī)定存儲(chǔ)時(shí)間的數(shù)據(jù)。
9.一種數(shù)據(jù)同步裝置,其特征在于,包括: 時(shí)間判斷單元,用于獲得數(shù)據(jù)時(shí)間點(diǎn)、延遲時(shí)間數(shù)據(jù),并用當(dāng)前時(shí)間與上述數(shù)據(jù)時(shí)間點(diǎn)加延遲時(shí)間進(jìn)行比較,判斷當(dāng)前時(shí)間是否晚于數(shù)據(jù)時(shí)間點(diǎn)加延遲時(shí)間;若是,則發(fā)出數(shù)據(jù)同步啟動(dòng)指令;該時(shí)間判斷單元,還接收所述判斷計(jì)算單元發(fā)出的等待指令,并在等待預(yù)設(shè)的等待時(shí)長(zhǎng)后,發(fā)出數(shù)據(jù)同步啟動(dòng)指令; 數(shù)據(jù)同步單元,用于接收所述數(shù)據(jù)同步啟動(dòng)指令,并據(jù)此啟動(dòng)數(shù)據(jù)同步,將源數(shù)據(jù)庫的數(shù)據(jù)搬移到目標(biāo)數(shù)據(jù)庫的對(duì)應(yīng)位置; 計(jì)數(shù)單元,用于在數(shù)據(jù)同步單元進(jìn)行數(shù)據(jù)同步時(shí),記錄同步數(shù)據(jù)條數(shù),并將最終獲得的計(jì)數(shù)結(jié)果輸出;判斷計(jì)算單元,用于接收來自所述計(jì)數(shù)單元的同步數(shù)據(jù)條數(shù),并判斷該數(shù)據(jù)是否大于當(dāng)前的經(jīng)驗(yàn)條數(shù)和預(yù)設(shè)的閾值的乘積;若是,則向時(shí)間判斷單元發(fā)出本次同步結(jié)束信號(hào),使其啟動(dòng)是否開始下一次同步的判斷;若否,則向所述時(shí)間判斷單元發(fā)出等待指令; 元數(shù)據(jù)存儲(chǔ)單元,用于存儲(chǔ)上述各個(gè)單元需要使用的相關(guān)參數(shù)。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)同步裝置,其特征在于,包括: 數(shù)據(jù)結(jié)構(gòu)修補(bǔ)單元,用于讀取元數(shù)據(jù)存儲(chǔ)單元中存儲(chǔ)的源數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)參數(shù),判斷目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)是否完整準(zhǔn)確,若否,則將目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)修補(bǔ)完整。
11.根據(jù)權(quán)利要求9所述的數(shù)據(jù)同步裝置,其特征在于,還包括: 齊全率計(jì)算單元,用于計(jì)算每次數(shù)據(jù)同步的齊全率,若齊全率過低,則發(fā)出報(bào)警;所述齊全率的計(jì)算方式為,以本次數(shù)據(jù)同步搬移的數(shù)據(jù)條目除以經(jīng)驗(yàn)條數(shù),作為本次數(shù)據(jù)同步的齊全率;將該數(shù)值和一預(yù)設(shè)的最低齊全率閾值相比較,即可以判斷齊全率是否過低。
12.根據(jù)權(quán)利要求9所述的數(shù)據(jù)同步裝置,其特征在于,還包括: 數(shù)據(jù)清理單元,用于定期執(zhí)行下述操作:根據(jù)預(yù)設(shè)的數(shù)據(jù)存儲(chǔ)時(shí)間,將目標(biāo)數(shù)據(jù)庫中超過存儲(chǔ)時(shí)間的數(shù)據(jù)條目刪除。
13.根據(jù)權(quán)利要求9所述的數(shù)據(jù)同步裝置,其特征在于,還包括通過excel表格構(gòu)造的元數(shù)據(jù)編輯器,用于對(duì)所述元數(shù)據(jù)存儲(chǔ)單元存儲(chǔ)的元數(shù)據(jù)進(jìn)行編輯,以及顯示所述元數(shù)據(jù)存儲(chǔ)單元在同步過程中記錄的元數(shù)據(jù)。
14.根據(jù)權(quán)利要求9所述的數(shù)據(jù)同步裝置,其特征在于,包括數(shù)據(jù)缺失報(bào)警單元,該單元根據(jù)元數(shù)據(jù)存儲(chǔ)單元中存儲(chǔ)的齊全率最低值指標(biāo)以及延遲時(shí)間最大值指標(biāo),判斷每次同步完成后的齊全率和延遲時(shí)間是否在指標(biāo)范圍內(nèi),若超過則發(fā)出報(bào)警信息。
15.根據(jù)權(quán)利要求9-14任意一項(xiàng)所述的數(shù)據(jù)同步裝置,其特征在于,包括任務(wù)監(jiān)控單元,該任務(wù)監(jiān)控單元用于監(jiān)控各 個(gè)單元是否正常運(yùn)行,若某個(gè)單元執(zhí)行的任務(wù)停滯,則重啟該單元。
全文摘要
本發(fā)明提供一種數(shù)據(jù)同步方法,用于將源數(shù)據(jù)庫中的數(shù)據(jù)搬移到目標(biāo)數(shù)據(jù)庫中,其特征在于,包括如下步驟當(dāng)前時(shí)間是否等于或者晚于數(shù)據(jù)時(shí)間點(diǎn)加延遲時(shí)間;若是,則進(jìn)入數(shù)據(jù)同步步驟;若否,則等待若干時(shí)間后,重新進(jìn)行上述判斷;數(shù)據(jù)同步,即將源數(shù)據(jù)庫的數(shù)據(jù)搬移到目標(biāo)數(shù)據(jù)庫的對(duì)應(yīng)位置;同時(shí),記錄所搬移的數(shù)據(jù)的條數(shù);判斷數(shù)據(jù)同步的條數(shù)是否大于當(dāng)前的經(jīng)驗(yàn)條數(shù)與預(yù)設(shè)的作為系數(shù)的閾值的乘積;若是,則搬移結(jié)束;若否,則等待預(yù)設(shè)的等候時(shí)長(zhǎng),然后返回?cái)?shù)據(jù)同步的步驟;同時(shí),記錄累計(jì)的等候時(shí)長(zhǎng);根據(jù)本次數(shù)據(jù)同步記錄的搬移數(shù)據(jù)條數(shù),重新計(jì)算確定所述經(jīng)驗(yàn)條數(shù)和延遲時(shí)間;回到開始步驟。
文檔編號(hào)G06F17/30GK103186624SQ20111045775
公開日2013年7月3日 申請(qǐng)日期2011年12月31日 優(yōu)先權(quán)日2011年12月31日
發(fā)明者王海清, 聶宏 申請(qǐng)人:北京億陽信通科技有限公司