專利名稱:一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫應(yīng)用領(lǐng)域,尤其涉及一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的方法及其系統(tǒng)。
背景技術(shù):
隨著社會信息化程度的提高,不管是經(jīng)濟(jì)建設(shè)還是社會生活,對IT系統(tǒng)、互聯(lián)網(wǎng)的依賴性越來越大,每個服務(wù)器中的數(shù)據(jù)庫中都存儲著許多相關(guān)的數(shù)據(jù)。有些單位在服務(wù)器上的數(shù)據(jù)庫中儲存著許多寶貴的數(shù)據(jù),有些單位在數(shù)據(jù)庫中的數(shù)據(jù)被應(yīng)用到客戶服務(wù)應(yīng)用系統(tǒng)中,有些單位之間的數(shù)據(jù)存在業(yè)務(wù)上的聯(lián)系,比如醫(yī)院和保險公司等等,需要保持?jǐn)?shù)據(jù)的一致,一旦這些服務(wù)器出現(xiàn)某種故障,這些寶貴信息數(shù)據(jù)有可能丟失殆盡,且無法挽回,造成的重大損失確保數(shù)據(jù)的安全,所以必須對數(shù)據(jù)做備份,系統(tǒng)可以快速恢復(fù)啟用。有些單位之間的數(shù)據(jù)存在業(yè)務(wù)上的聯(lián)系,比如醫(yī)院和保險公司等等,需要保持?jǐn)?shù)據(jù)的一致。
但是數(shù)據(jù)庫中的數(shù)據(jù)并不是不變的,一個典型的例子為圖書館的借閱系統(tǒng)記錄書本的借閱清單,但是書本被借閱后其記錄數(shù)據(jù)發(fā)生變動,此時數(shù)據(jù)庫中的數(shù)據(jù)即時發(fā)生變更,但是備份數(shù)據(jù)若不能同步完成數(shù)據(jù)更新,當(dāng)圖書館數(shù)據(jù)庫中的數(shù)據(jù)因突發(fā)事故丟失, 啟用備份數(shù)據(jù)后,不能得到正確的書本借閱數(shù)據(jù)。因此,當(dāng)數(shù)據(jù)庫中的數(shù)據(jù)或增加或刪除或修改,為了使備份數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)一致,在數(shù)據(jù)庫變動時同步更新備份數(shù)據(jù)。發(fā)明內(nèi)容
本發(fā)明為克服上述的不足之處,目的在于提供一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的方法,源數(shù)據(jù)庫中的數(shù)據(jù)變更后生成變動記錄,服務(wù)器接收變動記錄激活觸發(fā)器,觸發(fā)器生成臨時表后由同步更新裝置更新目標(biāo)數(shù)據(jù)庫,完成源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫的同步更新,減少備份過程中數(shù)據(jù)傳輸?shù)膬?nèi)存占有率,快速推送數(shù)據(jù),利于備份。
本發(fā)明的另一目的在于提供一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的系統(tǒng),能夠?qū)崟r監(jiān)控源數(shù)據(jù)庫中的數(shù)據(jù)變更情況,使源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫同步更新。
本發(fā)明是通過以下技術(shù)方案達(dá)到上述目的一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的方法, 包括以下步驟
(I)源數(shù)據(jù)庫劃分為表數(shù)據(jù)存儲區(qū)、POJO程序存儲區(qū);
( 2 )源數(shù)據(jù)庫的表數(shù)據(jù)存儲區(qū)和目標(biāo)數(shù)據(jù)庫存入相同的原始數(shù)據(jù),并標(biāo)記可以同步的字段及主鍵信息;
(3)源數(shù)據(jù)庫與服務(wù)器連接,服務(wù)器自動列出源數(shù)據(jù)庫的表數(shù)據(jù)存儲區(qū)中可以同步的字段及主鍵信息;
(4)服務(wù)器根據(jù)可以同步的字段及主鍵信息生成POJO程序文件,生成的POJO程序文件保存在POJO程序存儲區(qū)中;
(5)服務(wù)器根據(jù)可以同步的字段及主鍵信息生成觸發(fā)器,觸發(fā)器分為增加觸發(fā)器、 刪除觸發(fā)器、改動觸發(fā)器;
(6)源數(shù)據(jù)庫的表數(shù)據(jù)存儲區(qū)中的數(shù)據(jù)發(fā)生變動,源數(shù)據(jù)庫根據(jù)變動的數(shù)據(jù)生成變動記錄,將變動記錄打包生成推送包,推送包發(fā)送至服務(wù)器;
(7)服務(wù)器接收推送包后,發(fā)送一個確認(rèn)包至觸發(fā)器,觸發(fā)器接收確認(rèn)包后,增加觸發(fā)器、刪除觸發(fā)器、改動觸發(fā)器依次對推送包進(jìn)行判斷,判斷數(shù)據(jù)的變動操作類型,根據(jù)判斷結(jié)果生成臨時表;
(8)臨時表與POJO程序文件關(guān)聯(lián),并通過POJO程序文件傳輸至同步更新裝置;
(9)同步更新裝置接收數(shù)據(jù)并通過臨時表中的數(shù)據(jù)更新目標(biāo)數(shù)據(jù)庫。
作為優(yōu)選,步驟(2)中源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫標(biāo)記的可以同步的字段及主鍵信息相同。
一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的系統(tǒng),包括源數(shù)據(jù)庫、目標(biāo)數(shù)據(jù)庫、服務(wù)器、觸發(fā)器、 同步更新裝置;所述的源數(shù)據(jù)庫與服務(wù)器連接,服務(wù)器與同步更新裝置連接,同步更新裝置與目標(biāo)數(shù)據(jù)庫連接,觸發(fā)器與服務(wù)器連接;源數(shù)據(jù)庫將變動的數(shù)據(jù)發(fā)送至服務(wù)器,服務(wù)器調(diào)用觸發(fā)器生成臨時表發(fā)送至目標(biāo)數(shù)據(jù)庫,同步更新裝置檢測到臨時表后更新目標(biāo)數(shù)據(jù)庫。
作為優(yōu)選,所述的源數(shù)據(jù)庫包括表數(shù)據(jù)存儲區(qū)、POJO程序存儲區(qū)。
作為優(yōu)選,所述的觸發(fā)器包括增加觸發(fā)器、刪除觸發(fā)器、改動觸發(fā)器。
本發(fā)明的有益效果在于1、本發(fā)明方法能夠有效減少數(shù)據(jù)推送過程中內(nèi)存占有率,只需要推送更新數(shù)據(jù)的同步狀態(tài)標(biāo)識及更新內(nèi)容即可;2、本發(fā)明方法通過觸發(fā)器實(shí)現(xiàn)源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫之間的同步更新,消除更新的時間延遲問題;3、本發(fā)明方法中同步字段及主鍵信息可以通過人為操作自由添加,能夠自主選擇同步字段及主鍵信息,具有良好的擴(kuò)展性;4、本發(fā)明系統(tǒng)結(jié)構(gòu)簡單,可以充分利用現(xiàn)有資源無需其他的復(fù)雜軟硬件結(jié)合, 易于實(shí)現(xiàn),且成本較低。
圖I是一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的方法的步驟流程圖2是一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對本發(fā)明進(jìn)行進(jìn)一步描述,但本發(fā)明的保護(hù)范圍并不僅限于此
實(shí)施例I :如圖I所示,一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的方法,包括以下步驟
步驟I :源數(shù)據(jù)庫劃分為表數(shù)據(jù)存儲區(qū)、POJO程序存儲區(qū);
步驟2 :源數(shù)據(jù)庫的表數(shù)據(jù)存儲區(qū)和目標(biāo)數(shù)據(jù)庫存入相同的原始數(shù)據(jù),并標(biāo)記可以同步的字段及主鍵信息;
步驟3 :源數(shù)據(jù)庫與服務(wù)器連接,服務(wù)器自動列出源數(shù)據(jù)庫的表數(shù)據(jù)存儲區(qū)中可以同步的字段及主鍵信息;
步驟4 :服務(wù)器根據(jù)可以同步的字段及主鍵信息生成POJO程序文件,生成的POJO 程序文件保存在POJO程序存儲區(qū)中;
步驟5 :服務(wù)器根據(jù)可以同步的字段及主鍵信息生成觸發(fā)器,觸發(fā)器分為增加觸發(fā)器、刪除觸發(fā)器、改動觸發(fā)器;
步驟6 :源數(shù)據(jù)庫的表數(shù)據(jù)存儲區(qū)中的數(shù)據(jù)發(fā)生變動,源數(shù)據(jù)庫根據(jù)變動的數(shù)據(jù)生成變動記錄,將變動記錄打包生成推送包,推送包發(fā)送至服務(wù)器;
步驟7 :服務(wù)器接收推送包后,發(fā)送一個確認(rèn)包至觸發(fā)器,觸發(fā)器接收確認(rèn)包后, 增加觸發(fā)器、刪除觸發(fā)器、改動觸發(fā)器依次對推送包進(jìn)行判斷,判斷數(shù)據(jù)的變動操作類型, 根據(jù)判斷結(jié)果生成臨時表;
步驟8 :臨時表與POJO程序文件關(guān)聯(lián),并通過POJO程序文件傳輸至同步更新裝置;
步驟9 :同步更新裝置接收數(shù)據(jù)并通過臨時表中的數(shù)據(jù)更新目標(biāo)數(shù)據(jù)庫。
為了更好的表述本發(fā)明方法,以下結(jié)合具體實(shí)施例,解決兩數(shù)據(jù)庫中表數(shù)據(jù)的同步或數(shù)據(jù)的備份
步驟11 :某單位建立一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的系統(tǒng)用于對員工信息進(jìn)行備份,包括源數(shù)據(jù)庫serverl、目標(biāo)數(shù)據(jù)庫serverf、服務(wù)器、觸發(fā)器、同步更新裝置;所述的源數(shù)據(jù)庫serverl與服務(wù)器連接,服務(wù)器與同步更新裝置連接,同步更新裝置與目標(biāo)數(shù)據(jù)庫 server2連接,觸發(fā)器與服務(wù)器連接;所述的源數(shù)據(jù)庫serverl包括表數(shù)據(jù)存儲區(qū)、POJO程序存儲區(qū);
步驟22 :在源數(shù)據(jù)庫serverl的表數(shù)據(jù)存儲區(qū)及目標(biāo)數(shù)據(jù)庫serverf中建立表結(jié)構(gòu)相同的原始表數(shù)據(jù),如表I所示,為某單位工作人員信息,其中設(shè)置序號為主鍵,姓名、 身份證、手機(jī)號為同步字段。
表I某單位員工信息
權(quán)利要求
1.一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的方法,其特征在于包括以下步驟 (1)源數(shù)據(jù)庫劃分為表數(shù)據(jù)存儲區(qū)、POJO程序存儲區(qū); (2)源數(shù)據(jù)庫的表數(shù)據(jù)存儲區(qū)和目標(biāo)數(shù)據(jù)庫存入相同的原始數(shù)據(jù),并標(biāo)記可以同步的字段及主鍵信息; (3)源數(shù)據(jù)庫與服務(wù)器連接,服務(wù)器自動列出源數(shù)據(jù)庫的表數(shù)據(jù)存儲區(qū)中可以同步的字段及主鍵信息; (4)服務(wù)器根據(jù)可以同步的字段及主鍵信息生成POJO程序文件,生成的POJO程序文件保存在POJO程序存儲區(qū)中; (5)服務(wù)器根據(jù)可以同步的字段及主鍵信息生成觸發(fā)器,觸發(fā)器分為增加觸發(fā)器、刪除觸發(fā)器、改動觸發(fā)器; (6)源數(shù)據(jù)庫的表數(shù)據(jù)存儲區(qū)中的數(shù)據(jù)發(fā)生變動,源數(shù)據(jù)庫根據(jù)變動的數(shù)據(jù)生成變動記錄,將變動記錄打包生成推送包,推送包發(fā)送至服務(wù)器; (7)服務(wù)器接收推送包后,發(fā)送一個確認(rèn)包至觸發(fā)器,觸發(fā)器接收確認(rèn)包后,增加觸發(fā)器、刪除觸發(fā)器、改動觸發(fā)器依次對推送包進(jìn)行判斷,判斷數(shù)據(jù)的變動操作類型,根據(jù)判斷結(jié)果生成臨時表; (8)臨時表與POJO程序文件關(guān)聯(lián),并通過POJO程序文件傳輸至同步更新裝置; (9)同步更新裝置接收數(shù)據(jù)并通過臨時表中的數(shù)據(jù)更新目標(biāo)數(shù)據(jù)庫。
2.根據(jù)權(quán)利要求I所述的一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的方法,其特征在于步驟(2)中源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫標(biāo)記的可以同步的字段及主鍵信息相同。
3.一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的系統(tǒng),其特征在于包括源數(shù)據(jù)庫、目標(biāo)數(shù)據(jù)庫、服務(wù) 器、觸發(fā)器、同步更新裝置;所述的源數(shù)據(jù)庫與服務(wù)器連接,服務(wù)器與同步更新裝置連接,同步更新裝置與目標(biāo)數(shù)據(jù)庫連接,觸發(fā)器與服務(wù)器連接;源數(shù)據(jù)庫將變動的數(shù)據(jù)發(fā)送至服務(wù)器,服務(wù)器調(diào)用觸發(fā)器生成臨時表發(fā)送至目標(biāo)數(shù)據(jù)庫,同步更新裝置檢測到臨時表后更新目標(biāo)數(shù)據(jù)庫。
4.根據(jù)權(quán)利要求3所述的一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的系統(tǒng),其特征在于所述的源數(shù)據(jù)庫包括表數(shù)據(jù)存儲區(qū)、POJO程序存儲區(qū)。
5.根據(jù)權(quán)利要求3所述的一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的系統(tǒng),其特征在于所述的觸發(fā)器包括增加觸發(fā)器、刪除觸發(fā)器、改動觸發(fā)器。
全文摘要
本發(fā)明涉及數(shù)據(jù)庫應(yīng)用領(lǐng)域,尤其涉及一種數(shù)據(jù)庫表數(shù)據(jù)實(shí)時推送的方法及其系統(tǒng),包括源數(shù)據(jù)庫、目標(biāo)數(shù)據(jù)庫、服務(wù)器、觸發(fā)器、同步更新裝置;所述的源數(shù)據(jù)庫與服務(wù)器連接,服務(wù)器與同步更新裝置連接,同步更新裝置與目標(biāo)數(shù)據(jù)庫連接,觸發(fā)器與服務(wù)器連接;源數(shù)據(jù)庫將變動的數(shù)據(jù)發(fā)送至服務(wù)器,服務(wù)器調(diào)用觸發(fā)器生成臨時表發(fā)送至目標(biāo)數(shù)據(jù)庫,同步更新裝置檢測到臨時表后更新目標(biāo)數(shù)據(jù)庫。本發(fā)明的有益效果在于1、有效減少數(shù)據(jù)推送過程中內(nèi)存占有率,只需要推送更新數(shù)據(jù)的同步狀態(tài)標(biāo)識及更新內(nèi)容即可;2、消除更新的時間延遲問題;3、本發(fā)明方法具有良好的擴(kuò)展性;4、本發(fā)明系統(tǒng)結(jié)構(gòu)簡單,易于實(shí)現(xiàn),且成本較低。
文檔編號G06F17/30GK102982126SQ201210458199
公開日2013年3月20日 申請日期2012年11月14日 優(yōu)先權(quán)日2012年11月14日
發(fā)明者梁爾真, 袁學(xué)群, 夏磊 申請人:浙江星漢信息技術(shù)有限公司