黎展鵬
摘 要 對廣電各監(jiān)測系統(tǒng)的現(xiàn)狀及系統(tǒng)間數(shù)據(jù)同步方式進行了闡述,隨著廣播電視監(jiān)測事業(yè)的不斷發(fā)展,原有數(shù)據(jù)同步方式在廣電監(jiān)測系統(tǒng)中同步效率低、靈活性差、不易擴展等弊端逐漸顯露,成為系統(tǒng)間數(shù)據(jù)共享的瓶頸。為了滿足廣播電視監(jiān)測資源共享系統(tǒng)的要求,對數(shù)據(jù)同步系統(tǒng)架構(gòu)進行了重新設(shè)計,由原來的通過JAVA/C++等程序來實現(xiàn)數(shù)據(jù)的同步改變?yōu)橹苯釉跀?shù)據(jù)庫層面進行編程完成數(shù)據(jù)的同步,并支持數(shù)據(jù)庫間單向、雙向、一對多的數(shù)據(jù)同步。文章對數(shù)據(jù)庫的觸發(fā)器、存儲過程、JOB、Dblink等在數(shù)據(jù)同步中應(yīng)用進行了研究,實現(xiàn)了靈活的數(shù)據(jù)同步功能,在廣電監(jiān)測系統(tǒng)中也得到了很好的實踐。
關(guān)鍵詞 數(shù)據(jù)同步;分布式;數(shù)據(jù)庫
中圖分類號 TP3 文獻標識碼 A 文章編號 1674-6708(2018)213-0073-04
1 相關(guān)概念
1)廣播電視監(jiān)測系統(tǒng),是指國家廣電總局構(gòu)造的全國性的監(jiān)測平臺,由1個中心節(jié)點、10個區(qū)域節(jié)點(總局直屬監(jiān)測臺)、29個省級節(jié)點以及350套地級監(jiān)測數(shù)據(jù)采集前端組成。通過該系統(tǒng),可實現(xiàn)對全國337個地級以上城市播出的中央和地方電視和廣播節(jié)目進行24小時實時監(jiān)測;對播出狀況(重大停、劣播事故)、播出質(zhì)量、播出內(nèi)容、頻譜狀況等進行監(jiān)測。
2)廣播電視監(jiān)測資源共享系統(tǒng)是在現(xiàn)有的5個監(jiān)測系統(tǒng)(有線電視監(jiān)測系統(tǒng)、廣播電視監(jiān)測系統(tǒng)、開路電視和調(diào)頻廣播監(jiān)測系統(tǒng)、衛(wèi)星電視監(jiān)測系統(tǒng)和海外監(jiān)測系統(tǒng))和原有的信息平臺系統(tǒng)之上,進行數(shù)據(jù)整合,實現(xiàn)廣播電視監(jiān)測信息的上報、分析處理和發(fā)布,進一步加強監(jiān)測數(shù)據(jù)的綜合分析處理能力,實現(xiàn)實時分析和統(tǒng)計,提供更多有價值的數(shù)據(jù)統(tǒng)計分析結(jié)果,并實現(xiàn)多種方式的展示,增強監(jiān)測信息的獲取和即時通訊等能力,構(gòu)建數(shù)據(jù)應(yīng)用、分析、展示平臺。
3)分布式數(shù)據(jù)庫同步,利用Oracle數(shù)據(jù)庫特性實現(xiàn)多臺分布在網(wǎng)絡(luò)中的ORACLE數(shù)據(jù)庫服務(wù)器之間部份數(shù)據(jù)一致性,而采用的技術(shù)手段。
2 廣電各監(jiān)測系統(tǒng)現(xiàn)狀
隨著廣播電視監(jiān)測事業(yè)的不斷發(fā)展,監(jiān)測工作越來越得到總局領(lǐng)導(dǎo)和有關(guān)部門的重視,為了把廣播電視節(jié)目優(yōu)質(zhì)地傳送給廣大聽眾和觀眾,促進廣播電視傳輸和播出質(zhì)量的提高,強化廣播電視事業(yè)管理工作和政府職能,加強監(jiān)管,到目前為止,已建設(shè)有線電視監(jiān)測系統(tǒng)、廣播電視監(jiān)測系統(tǒng)、開路電視和調(diào)頻廣播監(jiān)測系統(tǒng)、衛(wèi)星電視監(jiān)測系統(tǒng)和海外監(jiān)測系統(tǒng)等為總局各個部門服務(wù)。
在各系統(tǒng)的運行過程中發(fā)現(xiàn)系統(tǒng)本身所獲取到的監(jiān)測數(shù)據(jù)不能完成滿足監(jiān)測的需要,而其他部門建設(shè)的監(jiān)測系統(tǒng)卻可以滿足這部份工作,為了更好地完成監(jiān)測任務(wù),提高工作效率避免重復(fù)建設(shè),各系統(tǒng)開放部分數(shù)據(jù)給其他需要的部門,實現(xiàn)了監(jiān)測數(shù)據(jù)的按需獲取。
3 原有廣播電視監(jiān)測各業(yè)務(wù)系統(tǒng)間的數(shù)據(jù)同步方式
為了提高監(jiān)測工作的效率、監(jiān)測結(jié)果的準確性和監(jiān)測數(shù)據(jù)的共享,設(shè)計了初期的數(shù)據(jù)同步方式,基本原理是針對需要同步的數(shù)據(jù)設(shè)計相應(yīng)的數(shù)據(jù)同步程序,根據(jù)不同系統(tǒng)間的需要,采用定時或指定時間間隔的定向數(shù)據(jù)發(fā)送,當(dāng)有多個系統(tǒng)需要同一份數(shù)據(jù)時,需要發(fā)送多次才能完成,而非真正的實時數(shù)據(jù)同步,基本實現(xiàn)方法如圖1。
4 廣播電視監(jiān)測資源共享系統(tǒng)的建設(shè)背景和目標
國家廣電總局監(jiān)測中心目前已經(jīng)建立了5個獨立的監(jiān)測子網(wǎng),即有線電視監(jiān)測網(wǎng)、廣播監(jiān)測網(wǎng)、開路電視和調(diào)頻廣播監(jiān)測網(wǎng)、衛(wèi)星電視監(jiān)測網(wǎng)和海外監(jiān)測網(wǎng)。5個監(jiān)測系統(tǒng)都已具有較為完善的監(jiān)測功能,在日常監(jiān)測業(yè)務(wù)中發(fā)揮了重要的作用,并且5個子系統(tǒng)分別和數(shù)據(jù)中心實現(xiàn)了網(wǎng)絡(luò)互通。
廣電總局資源共享系統(tǒng)是在現(xiàn)有的5個監(jiān)測系統(tǒng)和原有的信息平臺系統(tǒng)之上,進行數(shù)據(jù)整合,實現(xiàn)廣播電視監(jiān)測信息的上報、分析處理和發(fā)布,進一步加強監(jiān)測數(shù)據(jù)的綜合分析處理能力,實現(xiàn)實時分析和統(tǒng)計,提供更多有價值的數(shù)據(jù)統(tǒng)計分析結(jié)果,并實現(xiàn)多種方式的展示,增強監(jiān)測信息的獲取和即時通訊等能力,構(gòu)建數(shù)據(jù)應(yīng)用、分析、展示平臺。
5 數(shù)據(jù)同步系統(tǒng)設(shè)計
針對廣播電視監(jiān)測資源共享系統(tǒng)的建設(shè)需要,需要對已經(jīng)建立的五個獨立監(jiān)測子網(wǎng)的監(jiān)測數(shù)據(jù)提供給廣播電視監(jiān)測資源共享系統(tǒng),經(jīng)調(diào)研分析,各系統(tǒng)產(chǎn)生的數(shù)據(jù)量大、實時性要求高,并且在對監(jiān)測數(shù)據(jù)分析的同時,發(fā)現(xiàn)其中部分數(shù)據(jù)在某一時間段產(chǎn)生量比較大的特點,并且數(shù)據(jù)庫表結(jié)構(gòu)不統(tǒng)一,這樣也為數(shù)據(jù)的同步產(chǎn)生了難度,綜合以上特點的同時保證數(shù)據(jù)實時的提供廣播電視監(jiān)測資源共享系統(tǒng)和今后大數(shù)據(jù)分析和信息共享的原則,決定采用分布式數(shù)據(jù)庫同步方式來完成數(shù)據(jù)的同步。
5.1 分布式數(shù)據(jù)庫同步原理
建立數(shù)據(jù)同步中心數(shù)據(jù)庫,該數(shù)據(jù)同步中心定位為數(shù)據(jù)同步的中央處理單元,來自不同網(wǎng)絡(luò)的同步數(shù)據(jù)首先到達該中心,然后由該中心進行分發(fā)處理。
各監(jiān)測網(wǎng)建立標準統(tǒng)一的基于數(shù)據(jù)庫觸發(fā)器(Trigger)的數(shù)據(jù)同步機制,將需要同步的監(jiān)測數(shù)據(jù)根據(jù)條件觸發(fā),將監(jiān)測數(shù)據(jù)信息分發(fā)到基于數(shù)據(jù)表的同步監(jiān)測數(shù)據(jù)隊列,最后通過存儲過程將同步監(jiān)測數(shù)據(jù)隊列中的數(shù)據(jù),利用數(shù)據(jù)庫的DBLink連接機制,連接到數(shù)據(jù)同步中心,數(shù)據(jù)同步中心再對接收到的監(jiān)測數(shù)據(jù)根據(jù)觸發(fā)條件,分發(fā)到相應(yīng)的監(jiān)測網(wǎng)絡(luò)數(shù)據(jù)庫,至此數(shù)據(jù)的同步結(jié)束。分布式數(shù)據(jù)庫同步的原理如圖2。
5.2 數(shù)據(jù)同步的總體設(shè)計
數(shù)據(jù)同步在數(shù)據(jù)庫層面完成,利用數(shù)據(jù)庫Tigger、JOB、DBLink、Data Queue等特性為基礎(chǔ)完成數(shù)據(jù)的同步。
Tigger:觸發(fā)器(trigger)它是與表事件相關(guān)的特殊的存儲過程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動,而是由事件來觸發(fā),比如當(dāng)對一個表進行操作( insert,delete, update)時就會激活它執(zhí)行。觸發(fā)器經(jīng)常用于加強數(shù)據(jù)的完整性約束和業(yè)務(wù)規(guī)則等。觸發(fā)器是一個能由系統(tǒng)自動執(zhí)行對數(shù)據(jù)庫修改的語句。
JOB:oracle提供的一個定期執(zhí)行某個存儲過程或者包體的功能。需在在job中設(shè)定執(zhí)行的開始時間、間隔時間、執(zhí)行對象。
DBLink:是定義一個數(shù)據(jù)庫到另一個數(shù)據(jù)庫的路徑的對象,database link允許你查詢遠程表及執(zhí)行遠程程序。在任何分布式環(huán)境里,database都是必要的。
分布式數(shù)據(jù)同步示意圖如圖3。
5.2.1 分布式數(shù)據(jù)庫同步的實現(xiàn)步驟
1)創(chuàng)建同配置表;
2)根據(jù)同步配置表創(chuàng)建同步需要的表;
3)狀態(tài)監(jiān)控;
4)創(chuàng)建同步總序列分發(fā)存儲過程;
5)停止所有同步j(luò)ob;
6)創(chuàng)建同步j(luò)ob;
7)重新創(chuàng)建所有job;
8)創(chuàng)建同步錯誤日志記錄存儲過程;
9)刷新同步表字段的存儲過程;
10)創(chuàng)建同步目的端的存儲過程;
11)同步所需表的說明。
5.2.2 啟動同步程序
1)執(zhí)行存儲過程sync_table_columns_tab;
2)執(zhí)行存儲過程NEWRESTART_SYNC_JOB;
3)創(chuàng)建同步j(luò)ob的 監(jiān)測job,(NEWCHECK_ SYNC_JOB)監(jiān)測時間可以根據(jù)實際情況修改。
5.2.3 同步異常情況的處理
在分布式的數(shù)據(jù)庫同步過程中,由于數(shù)據(jù)量大、數(shù)據(jù)來源不同,并有可能存在臟數(shù)據(jù),在這樣的環(huán)境下首先要保證數(shù)據(jù)庫同步Tigger程序的健壯性,對于可能造成的異常也必須有相應(yīng)的處理機制。那么利用ORACLE數(shù)據(jù)庫的JOB就可以很好的解決這樣的問題,通過對Tigger觸發(fā)結(jié)果的監(jiān)控,發(fā)現(xiàn)同步錯誤,同步錯誤一般有以下幾種情況:
1)數(shù)據(jù)格式異常;
2)分布式數(shù)據(jù)庫連接異常,造成同步數(shù)據(jù)積累;
3)數(shù)據(jù)庫同步程序問題。
針對問題1需要人工干預(yù)解決問題,針對問題2、3可以通過重啟同步程序。
至此完成了數(shù)據(jù)庫同步程序,那么為了實現(xiàn)各數(shù)據(jù)庫分布式的數(shù)據(jù)庫數(shù)據(jù)互相同步,只需要將程序部署在不同數(shù)據(jù)庫中,并且配置對應(yīng)的數(shù)據(jù)目的地址,啟動同步程序即可。
數(shù)據(jù)同步系統(tǒng)在廣播電視監(jiān)測資源共享系統(tǒng)與其它業(yè)務(wù)系統(tǒng)間的應(yīng)用
將數(shù)據(jù)庫同步的存儲過程觸發(fā)器等在需要使用同步的數(shù)據(jù)庫中運行,并且配置需要同步的數(shù)據(jù)庫表及字段、配置同步數(shù)據(jù)庫表的觸發(fā)規(guī)則、配置數(shù)據(jù)庫表的同步目的地址然后啟動同步程序即可實現(xiàn)同步,數(shù)據(jù)的同步速度與之前相比有了較大幅度的提高,真正的實現(xiàn)了監(jiān)測數(shù)據(jù)的實時性,為廣播電視監(jiān)測資源共享系統(tǒng)實時性要求提供了技術(shù)支撐,同時也為總局領(lǐng)導(dǎo)快速決策提供了幫助。
6 與原有數(shù)據(jù)同步方式的對比
表2是對原有的數(shù)據(jù)同步方式與分布式數(shù)據(jù)庫同步方式的比較。
7 總結(jié)與展望
本文對分布式數(shù)據(jù)庫同步技術(shù)在廣播電視監(jiān)測資源共享系統(tǒng)與其他業(yè)務(wù)系統(tǒng)間的數(shù)據(jù)同步進行了比較深入的探討;介紹了原有數(shù)據(jù)同步中存在的一些問題;廣播電視監(jiān)測資源共享系統(tǒng)對數(shù)據(jù)實時性的要求及各系統(tǒng)的情況分析;闡述了分布式數(shù)據(jù)庫同步技術(shù)的原理、實現(xiàn)方式、異常情況處理及在廣播電視監(jiān)測資源共享系統(tǒng)中的應(yīng)用;并且對原有的同步方式和分布式數(shù)據(jù)庫同步方式進行了對比。
雖然分布式數(shù)據(jù)庫同步方式解決了廣播電視監(jiān)測資源共享系統(tǒng)的數(shù)據(jù)同步問題,但隨著業(yè)務(wù)需求的不斷變化,分布式數(shù)據(jù)庫同步方式也將面臨著更大的挑戰(zhàn),分布式數(shù)據(jù)庫同步方式也將隨著業(yè)務(wù)的需要不斷的時進行自我完善和增強。
參考文獻
[1]張偉.發(fā)展中的廣播電視監(jiān)測業(yè)務(wù)[J].中國廣播技術(shù)發(fā)展論壇,2003,30(5):40-44.
[2]林陽歐.多個業(yè)務(wù)系統(tǒng)間數(shù)據(jù)同步系統(tǒng)的設(shè)計與實現(xiàn)[D].上海:華東師范大學(xué),2009.
[3]互聯(lián)網(wǎng)ORACLE中文產(chǎn)品技術(shù)白皮書[EB/OL].(www.oracle. com).
[4]宋俊蘇.分布式數(shù)據(jù)庫在高職院校辦公自動化管理系統(tǒng)中的應(yīng)用[J].電腦知識與技術(shù),2009,5(8):2044-2046.
[5]邵佩英.分布式數(shù)據(jù)庫系統(tǒng)及其應(yīng)用[M].2版,北京:科學(xué)出版社,2005:10-11.
[6]Richard Staehli,F(xiàn)rank Eliassen,Sten Amundsen. Designing Adaptive Middleware for Reuse[A]Middleware 2004 Companion[C]Toronto: IFIP International Federation for Information Processing,2004:153-157.
[7]張良,佟俐鵑.異構(gòu)數(shù)據(jù)庫集成中數(shù)據(jù)傳輸問題的研究[J].計算機應(yīng)用研究,2004(11):65-66.
[8]馬錦忠.數(shù)據(jù)庫系統(tǒng)概論[M].南京:南京大學(xué)出版社,1995.
[9]林天峰.ORACLE 程序設(shè)計[M].北京:科學(xué)出版社,2003.
[10]李維宏,徐如志.中間件技術(shù)及其發(fā)展動態(tài)[J].微計算機應(yīng)用,2002,23(3):138-141.