對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的方法和系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明針對(duì)現(xiàn)有技術(shù)中系統(tǒng)需要花費(fèi)大量的資源來(lái)處理數(shù)據(jù)庫(kù)操作從而會(huì)耗盡系統(tǒng)內(nèi)存、導(dǎo)致系統(tǒng)崩潰的缺陷,提供一種能夠克服這些缺陷的對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的方法和系統(tǒng)。本發(fā)明提供一種對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的方法,該方法包括:在有數(shù)據(jù)更新請(qǐng)求時(shí),服務(wù)器端將該數(shù)據(jù)更新請(qǐng)求寫(xiě)入文件中;以及對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置監(jiān)測(cè)并讀取所述文件中的所述數(shù)據(jù)更新請(qǐng)求以對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行更新。本發(fā)明還提供一種對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的系統(tǒng),該系統(tǒng)包括:服務(wù)器端,用于在有數(shù)據(jù)更新請(qǐng)求時(shí),將該數(shù)據(jù)更新請(qǐng)求寫(xiě)入文件中;以及對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置,用于監(jiān)測(cè)并讀取所述文件中的所述數(shù)據(jù)更新請(qǐng)求以對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行更新。
【專(zhuān)利說(shuō)明】對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的方法和系統(tǒng)。
【背景技術(shù)】
[0002] 作為石油煉制工業(yè)控制應(yīng)用的系統(tǒng),調(diào)合系統(tǒng)應(yīng)該具有長(zhǎng)期穩(wěn)定運(yùn)行、不間斷的 特征行為,同時(shí)在該調(diào)合系統(tǒng)中,還具有大量設(shè)備產(chǎn)生的數(shù)據(jù)需要被寫(xiě)入數(shù)據(jù)庫(kù)中以進(jìn)行 存儲(chǔ)和更新。目前,類(lèi)似系統(tǒng)中對(duì)于數(shù)據(jù)庫(kù)操作的通常方法都是直接使用數(shù)據(jù)庫(kù)接口(比如 ODBC、AD0等)對(duì)數(shù)據(jù)庫(kù)進(jìn)行實(shí)時(shí)操作。
[0003] 由于數(shù)據(jù)產(chǎn)生是持續(xù)進(jìn)行的,所以數(shù)據(jù)庫(kù)一直都會(huì)處于高負(fù)荷狀態(tài),為避免數(shù)據(jù) 丟失,一般系統(tǒng)都會(huì)在內(nèi)存中緩存數(shù)據(jù)變更情況,然后再逐一取出所緩存的變更數(shù)據(jù)來(lái)進(jìn) 行數(shù)據(jù)庫(kù)更新操作。眾所周知,計(jì)算機(jī)的資源是固定有限的,如果系統(tǒng)數(shù)據(jù)庫(kù)的請(qǐng)求過(guò)于頻 繁,則數(shù)據(jù)庫(kù)系統(tǒng)也會(huì)無(wú)法及時(shí)處理更新數(shù)據(jù),這就會(huì)造成系統(tǒng)本身進(jìn)程的緩沖數(shù)據(jù)內(nèi)存 消耗極大,導(dǎo)致花費(fèi)大量的進(jìn)程資源來(lái)處理數(shù)據(jù)庫(kù)操作,從而影響了工業(yè)控制正常業(yè)務(wù)的 運(yùn)行,極端情況下,緩存還會(huì)把系統(tǒng)的內(nèi)存資源耗盡,導(dǎo)致整個(gè)系統(tǒng)崩潰。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供一種能夠克服現(xiàn)有技術(shù)中的上述缺陷的對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的方法和 系統(tǒng)。
[0005] 本發(fā)明提供一種對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的方法,該方法包括:
[0006] 在有數(shù)據(jù)更新請(qǐng)求時(shí),服務(wù)器端將該數(shù)據(jù)更新請(qǐng)求寫(xiě)入文件中;以及
[0007] 對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置監(jiān)測(cè)并讀取所述文件中的所述數(shù)據(jù)更新請(qǐng)求以對(duì)所述 數(shù)據(jù)庫(kù)進(jìn)行更新。
[0008] 本發(fā)明還提供一種對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的系統(tǒng),該系統(tǒng)包括:
[0009] 服務(wù)器端,用于在有數(shù)據(jù)更新請(qǐng)求時(shí),將該數(shù)據(jù)更新請(qǐng)求寫(xiě)入文件中;以及
[0010] 對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置,用于監(jiān)測(cè)并讀取所述文件中的所述數(shù)據(jù)更新請(qǐng)求以對(duì) 所述數(shù)據(jù)庫(kù)進(jìn)行更新。
[0011] 由于根據(jù)本發(fā)明的對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的方法和系統(tǒng)不是利用服務(wù)器端來(lái)直接對(duì) 數(shù)據(jù)庫(kù)進(jìn)行操作,而是利用對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新,所以根據(jù)本發(fā) 明的方法和系統(tǒng)具有以下優(yōu)勢(shì):(1)能夠使得系統(tǒng)業(yè)務(wù)運(yùn)行與數(shù)據(jù)庫(kù)操作(例如,更新)完全 分離,也即服務(wù)器端本身并不直接操作數(shù)據(jù)庫(kù),而是把數(shù)據(jù)庫(kù)操作的任務(wù)交給了對(duì)數(shù)據(jù)庫(kù) 進(jìn)行更新的裝置,因此即使數(shù)據(jù)庫(kù)操作出現(xiàn)錯(cuò)誤也不會(huì)影響系統(tǒng)的正常運(yùn)行;(2)使系統(tǒng) 更加穩(wěn)定,脫離了直接操作數(shù)據(jù)庫(kù)而引起的資源堵塞和消耗,避免了系統(tǒng)由此造成的崩潰; (3)由于是采用對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置來(lái)進(jìn)行數(shù)據(jù)庫(kù)操作,所以能夠提高數(shù)據(jù)庫(kù)操作的 效率,并且可以批量進(jìn)行數(shù)據(jù)庫(kù)操作和提交,降低了數(shù)據(jù)庫(kù)服務(wù)器的負(fù)荷。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0012] 附圖是用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與下面的具 體實(shí)施方式一起用于解釋本發(fā)明,但并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
[0013] 圖1是根據(jù)本發(fā)明一種實(shí)施方式的對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的方法的流程圖;以及
[0014] 圖2是根據(jù)本發(fā)明一種實(shí)施方式的對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的系統(tǒng)的示意框圖。
【具體實(shí)施方式】
[0015] 以下結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行詳細(xì)說(shuō)明。應(yīng)當(dāng)理解的是,此處所描 述的【具體實(shí)施方式】?jī)H用于說(shuō)明和解釋本發(fā)明,并不用于限制本發(fā)明。
[0016] 如圖1所示,根據(jù)本發(fā)明一種實(shí)施方式的對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的方法包括以下步 驟:
[0017] SI 1、在有數(shù)據(jù)更新請(qǐng)求時(shí),服務(wù)器端將該數(shù)據(jù)更新請(qǐng)求寫(xiě)入文件中。
[0018] 優(yōu)選地,服務(wù)器端即時(shí)地將數(shù)據(jù)更新請(qǐng)求寫(xiě)入所述文件中,也即只要存在著數(shù)據(jù) 更新請(qǐng)求,服務(wù)器端就將其寫(xiě)入所述文件中。但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,服務(wù)器端 還可以周期性地將數(shù)據(jù)更新請(qǐng)求寫(xiě)入所述文件中,例如每隔一定時(shí)間執(zhí)行一次寫(xiě)入操作。
[0019] 優(yōu)選地,所述文件為文本文件。但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,所述文件還可 以是其他形式的文件,例如word等。
[0020] 優(yōu)選地,所述服務(wù)器端在所述文件中將所述數(shù)據(jù)更新請(qǐng)求寫(xiě)成結(jié)構(gòu)化查詢(xún)語(yǔ)言 (Structured Query Language, SQL)執(zhí)行語(yǔ)句的形式,以便于后續(xù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝 置對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,服務(wù)器端還可以將數(shù)據(jù)更新請(qǐng) 求寫(xiě)成其他形式的語(yǔ)句,例如如下的語(yǔ)句:
[0021] 2012-10-3012:49:09. 0001V:3 HeaderOl time 1348796254 1351572549 2012-10-30_12:49:09
[0022] 2012-10-3012:49:20. 0001V: 3 HeaderOl time 1351572549 2012-10-30_12:49:09 1351572560 end
[0023] 優(yōu)選地,所述SQL執(zhí)行語(yǔ)句或其他形式的語(yǔ)句中含有所述數(shù)據(jù)更新請(qǐng)求的時(shí)間 戳,從而在后續(xù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí)能夠按照時(shí)間順序來(lái)執(zhí)行 SQL執(zhí)行語(yǔ)句或其他形式的語(yǔ)句。
[0024] S12、對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置監(jiān)測(cè)并讀取所述文件中的所述數(shù)據(jù)更新請(qǐng)求以對(duì) 所述數(shù)據(jù)庫(kù)進(jìn)行更新。
[0025] 優(yōu)選地,對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置可以周期性地監(jiān)測(cè)所述文件中的所述數(shù)據(jù)更新 請(qǐng)求。當(dāng)然,對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置還可以在需要時(shí)監(jiān)測(cè)所述文件中的數(shù)據(jù)更新請(qǐng)求,例 如,在用戶(hù)請(qǐng)求使用數(shù)據(jù)庫(kù)的情況下,對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置按需監(jiān)測(cè)所述文件中的數(shù) 據(jù)更新請(qǐng)求的好處在于能夠節(jié)省系統(tǒng)資源同時(shí)還能夠確保數(shù)據(jù)庫(kù)的內(nèi)容是最新的。
[0026] 優(yōu)選地,對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置可以是sqlsync程序,當(dāng)然還可以是其他獨(dú)立 的運(yùn)行程序,例如 Oracle sqlplus、Microsoft Query Analyzer 等。
[0027] 優(yōu)選地,在步驟S12之前,根據(jù)本發(fā)明的方法還可以包括:所述對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新 的裝置與所述服務(wù)器端進(jìn)行時(shí)間同步,以便于所述對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置能夠更準(zhǔn)確地 對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。
[0028] 如圖2所示,本發(fā)明還提供一種對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的系統(tǒng),該系統(tǒng)包括:服務(wù)器端 201,用于在有數(shù)據(jù)更新請(qǐng)求時(shí),將該數(shù)據(jù)更新請(qǐng)求寫(xiě)入文件中;以及對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的 裝置202,用于讀取所述文件中的所述數(shù)據(jù)更新請(qǐng)求以對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行更新。
[0029] 優(yōu)選地,服務(wù)器端201即時(shí)地將數(shù)據(jù)更新請(qǐng)求寫(xiě)入所述文件中,也即只要存在著 數(shù)據(jù)更新請(qǐng)求,服務(wù)器端201就將其寫(xiě)入所述文件中。但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是, 服務(wù)器端201還可以周期性地將數(shù)據(jù)更新請(qǐng)求寫(xiě)入所述文件中,例如每隔一定時(shí)間執(zhí)行一 次寫(xiě)入操作。
[0030] 優(yōu)選地,所述文件為文本文件。但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,所述文件還可 以是其他形式的文件,例如word等。
[0031] 優(yōu)選地,所述服務(wù)器端201在所述文件中將所述數(shù)據(jù)更新請(qǐng)求寫(xiě)成結(jié)構(gòu)化查詢(xún)語(yǔ) 言(Structured Query Language, SQL)執(zhí)行語(yǔ)句的形式,以便于后續(xù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的 裝置202對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,服務(wù)器端201還可以將 數(shù)據(jù)更新請(qǐng)求寫(xiě)成其他形式的語(yǔ)句,例如如下所述的語(yǔ)句:
[0032] 2012-10-3012:49:09. 0001V:3 HeaderOl time 1348796254 1351572549 2012-10-30_12:49:09
[0033] 2012-10-3012:49:20. 0001V: 3 HeaderOl time 1351572549 2012-10-30_12:49:09 1351572560 end
[0034] 優(yōu)選地,所述SQL執(zhí)行語(yǔ)句或其他形式的語(yǔ)句中含有所述數(shù)據(jù)更新請(qǐng)求的時(shí)間 戳,從而在后續(xù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí)能夠按照時(shí)間順序來(lái)執(zhí)行 SQL執(zhí)行語(yǔ)句或其他形式的語(yǔ)句。
[0035] 優(yōu)選地,對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置202可以周期性地監(jiān)測(cè)所述文件中的所述數(shù)據(jù) 更新請(qǐng)求。當(dāng)然,對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置202還可以在需要時(shí)監(jiān)測(cè)所述文件中的數(shù)據(jù)更 新請(qǐng)求,例如,在用戶(hù)請(qǐng)求使用數(shù)據(jù)庫(kù)的情況下,對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置202按需監(jiān)測(cè)所 述文件中的數(shù)據(jù)更新請(qǐng)求的好處在于能夠節(jié)省系統(tǒng)資源同時(shí)還能夠確保數(shù)據(jù)庫(kù)的內(nèi)容是 最新的。
[0036] 優(yōu)選地,對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置202可以是sqlsync程序,當(dāng)然還可以是其他獨(dú) 立的運(yùn)行程序,例如 Oracle sqlplus、Microsoft Query Analyzer 等。
[0037] 根據(jù)本發(fā)明的對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的系統(tǒng)的工作流程圖如圖2所示。首先,在301 處,服務(wù)器端201將數(shù)據(jù)更新請(qǐng)求寫(xiě)入文件203中。之后,在302處,對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的 裝置202監(jiān)測(cè)文件203的變化并讀取文件203中的數(shù)據(jù)更新請(qǐng)求(例如,SQL執(zhí)行語(yǔ)句)。之 后在303處,對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置202與服務(wù)器端201進(jìn)行時(shí)間同步。最后,在304處, 對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置202對(duì)數(shù)據(jù)庫(kù)204進(jìn)行操作。從該工作流程圖可見(jiàn),在根據(jù)本發(fā) 明的系統(tǒng)中,服務(wù)器端201始終沒(méi)有對(duì)數(shù)據(jù)庫(kù)204進(jìn)行直接操作。
[〇〇38] 雖然本發(fā)明已通過(guò)上述實(shí)施例所公開(kāi),然而上述實(shí)施例并非用以限定本發(fā)明,任 何本發(fā)明所屬【技術(shù)領(lǐng)域】中技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),應(yīng)當(dāng)可以作各種的 變動(dòng)與修改。因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以所附權(quán)利要求書(shū)所界定的范圍為準(zhǔn)。
【權(quán)利要求】
1. 一種對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的方法,該方法包括: 在有數(shù)據(jù)更新請(qǐng)求時(shí),服務(wù)器端將該數(shù)據(jù)更新請(qǐng)求寫(xiě)入文件中;以及 對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置監(jiān)測(cè)并讀取所述文件中的所述數(shù)據(jù)更新請(qǐng)求以對(duì)所述數(shù)據(jù) 庫(kù)進(jìn)行更新。
2. 根據(jù)權(quán)利要求1所述的方法,其中,所述文件為文本文件。
3. 根據(jù)權(quán)利要求1所述的方法,其中,在所述對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置監(jiān)測(cè)并讀取所 述文件中的所述數(shù)據(jù)更新請(qǐng)求以對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行更新之前,該方法還包括: 所述對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置與所述服務(wù)器端進(jìn)行時(shí)間同步。
4. 根據(jù)權(quán)利要求1至3中任一項(xiàng)權(quán)利要求所述的方法,其中,所述服務(wù)器端在所述文件 中將所述數(shù)據(jù)更新請(qǐng)求寫(xiě)成SQL執(zhí)行語(yǔ)句的形式。
5. 根據(jù)權(quán)利要求4所述的方法,其中,所述SQL執(zhí)行語(yǔ)句中含有所述數(shù)據(jù)更新請(qǐng)求的時(shí) 間戳。
6. -種對(duì)數(shù)據(jù)庫(kù)進(jìn)行同步的系統(tǒng),該系統(tǒng)包括: 服務(wù)器端,用于在有數(shù)據(jù)更新請(qǐng)求時(shí),將該數(shù)據(jù)更新請(qǐng)求寫(xiě)入文件中;以及 對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置,用于監(jiān)測(cè)并讀取所述文件中的所述數(shù)據(jù)更新請(qǐng)求以對(duì)所述 數(shù)據(jù)庫(kù)進(jìn)行更新。
7. 根據(jù)權(quán)利要求6所述的系統(tǒng),其中,所述文件為文本文件。
8. 根據(jù)權(quán)利要求6所述的方法,其中,所述對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新的裝置在所述對(duì)數(shù)據(jù)庫(kù) 進(jìn)行更新的裝置監(jiān)測(cè)并讀取所述文件中的所述數(shù)據(jù)更新請(qǐng)求以對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行更新之 前,還用于與所述服務(wù)器端進(jìn)行時(shí)間同步。
9. 根據(jù)權(quán)利要求6至8中任一項(xiàng)權(quán)利要求所述的方法,其中,所述服務(wù)器端在所述文件 中將所述數(shù)據(jù)更新請(qǐng)求寫(xiě)成SQL執(zhí)行語(yǔ)句的形式。
10. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述SQL執(zhí)行語(yǔ)句中含有所述數(shù)據(jù)更新請(qǐng)求的 時(shí)間戳。
【文檔編號(hào)】G06F17/30GK104102634SQ201310112078
【公開(kāi)日】2014年10月15日 申請(qǐng)日期:2013年4月2日 優(yōu)先權(quán)日:2013年4月2日
【發(fā)明者】楊道林 申請(qǐng)人:北京本果信息技術(shù)有限公司