李 鵬1,2,于洪濤1,徐靜波
(1.國家數(shù)字交換工程技術(shù)研究中心,鄭州 450002;2.珠海高凌信息科技有限公司,廣東 珠海 519060;3.解放軍信息工程大學(xué) 信息工程學(xué)院,鄭州 450052)
隨著我國電信行業(yè)的迅速發(fā)展,各種通信網(wǎng)(如固定、移動電話網(wǎng))的規(guī)模在不斷擴大,作為通信支撐網(wǎng)的七號信令網(wǎng),地位也越來越重要。早期對七號信令網(wǎng)進行維護的方法是使用交換機本身的功能,以及借助監(jiān)測儀表完成,其維護手段和維護能力有很大的局限性。目前,一般采用獨立的系統(tǒng)對七號信令網(wǎng)進行集中監(jiān)測和管理,這種七號信令監(jiān)測系統(tǒng)獨立于電信網(wǎng)絡(luò)設(shè)備之外,通過高阻跨接方式或由交換機內(nèi)部分切導(dǎo)出的電接口終端連接方式[1],在七號信令鏈路上直接采集七號信令的鏈路數(shù)據(jù),對各種用戶部分或應(yīng)用部分信令進行實時或歷史微觀分析,從而判斷七號信令網(wǎng)的運行狀態(tài)、運行性能以及七號信令網(wǎng)支撐的電信業(yè)務(wù)的運行質(zhì)量、跟蹤呼叫信令的過程等,以便及時發(fā)現(xiàn)故障隱患,查找故障點。
目前,業(yè)內(nèi)七號信令監(jiān)測系統(tǒng)一般由前端采集設(shè)備、監(jiān)測中心服務(wù)器、監(jiān)測終端組成,形成了包括本地級、地區(qū)級、總部級的三級分布式七號信令監(jiān)測體系結(jié)構(gòu),其中,每級監(jiān)測中心均可并行提供信令監(jiān)測以及分析維護功能,這就包括對下級中心進行信息同步、數(shù)據(jù)匯總,以便根據(jù)需求進行后繼的數(shù)據(jù)挖掘,信令分析工作,同時,還需要對下級中心采集信令消息進行冗余備份,以便故障恢復(fù)。因此,系統(tǒng)內(nèi)部需要實現(xiàn)上下級信令監(jiān)測中心間的數(shù)據(jù)同步,以便實現(xiàn)上述功能,本文即對此同步方法展開研究。
(1)遠(yuǎn)程鏡像
遠(yuǎn)程鏡像又叫遠(yuǎn)程復(fù)制,是保持遠(yuǎn)程數(shù)據(jù)同步和實現(xiàn)災(zāi)難恢復(fù)的基礎(chǔ)[2]。它利用物理位置上分離的存儲設(shè)備所具備的遠(yuǎn)程數(shù)據(jù)連接功能,在遠(yuǎn)程維護一套數(shù)據(jù)鏡像,為地理上分散的站點提供聯(lián)機實時數(shù)據(jù)復(fù)制。遠(yuǎn)程鏡像采用第三方基于文件的遷移與Oracle基于日志的恢復(fù)機制以實現(xiàn)數(shù)據(jù)同步,但需要特殊的軟硬件支持,如采用光纖連接主備數(shù)據(jù)庫系統(tǒng),需要EMC軟件等,造價昂貴,成本很高。
(2)數(shù)據(jù)衛(wèi)士(Data Guard)
為了實現(xiàn)數(shù)據(jù)的同步可以考慮使用ORACLE 9i Data Guard,它通過將主數(shù)據(jù)庫的重做日志傳到并應(yīng)用到在線備用數(shù)據(jù)庫,使備用數(shù)據(jù)庫與主數(shù)據(jù)庫保持同步[3]。應(yīng)用中分為同步和異步兩種方式。其主備用切換時需重啟數(shù)據(jù)庫,后期維護工作量巨大。
(3)數(shù)據(jù)庫的觸發(fā)器
觸發(fā)器也是現(xiàn)在大型關(guān)系型數(shù)據(jù)庫都具備的功能,因而可以使用數(shù)據(jù)庫觸發(fā)器實現(xiàn)基于表的數(shù)據(jù)同步。當(dāng)對表執(zhí)行特定操作時,就會引發(fā)數(shù)據(jù)庫觸發(fā)器。以O(shè)racle為例,在創(chuàng)建觸發(fā)器之前,須為該觸發(fā)器創(chuàng)建一個數(shù)據(jù)庫鏈接指向遠(yuǎn)程數(shù)據(jù)庫。這種方法雖然能夠?qū)崿F(xiàn)數(shù)據(jù)同步,可當(dāng)對端數(shù)據(jù)庫故障時,通過數(shù)據(jù)庫鏈接的更新操作會有較長的響應(yīng)時間,且基于頻繁操作表上的觸發(fā)器也會降低數(shù)據(jù)庫性能。
(4)數(shù)據(jù)庫的高級復(fù)制
主流的大型關(guān)系型數(shù)據(jù)庫比如Oracle、SQL Server、Sysbase等都提供高級復(fù)制功能。數(shù)據(jù)庫高級復(fù)制主要是在分布式數(shù)據(jù)庫環(huán)境中維護表副本的過程,在一個復(fù)制環(huán)境中任何對復(fù)制對象的更新都會反映到其它站點對應(yīng)的對象中,實現(xiàn)數(shù)據(jù)同步。復(fù)制關(guān)系可靈活配置,復(fù)制對象類型支持表、索引和視圖等類型。
對本系統(tǒng)來講,遠(yuǎn)程鏡像造價過于昂貴,Data Guard其主/備數(shù)據(jù)庫在切換時需要重啟數(shù)據(jù)庫,且同步過程復(fù)雜,性能欠佳,數(shù)據(jù)庫觸發(fā)器性能差、可維護性不好,高級復(fù)制因其低成本、配置方式靈活、無縫切換等優(yōu)點而被選擇應(yīng)用于此系統(tǒng)。
圖1 三級分布式七號信令監(jiān)測體系結(jié)構(gòu)Fig.1 The three-level distributed SS7 monitoring architecture
目前,包含本地級、地區(qū)級、總部級的三級分布式七號信令監(jiān)測體系結(jié)構(gòu)如圖1所示。同時,在七號信令監(jiān)測系統(tǒng)中,各級監(jiān)測中心對數(shù)據(jù)同步的實時性要求不高,且各級中心對收集信令原始數(shù)據(jù)無修改要求,可利用Oracle高級復(fù)制的多級物化視圖實現(xiàn),在一些文章中有相關(guān)研究,基本的方法如下:
(1)每個監(jiān)測中心數(shù)據(jù)庫中均有一信令數(shù)據(jù)表,統(tǒng)一存儲所有信令消息;
(2)采用可更新實體化視圖機制。一級監(jiān)測中心數(shù)據(jù)庫設(shè)置為主數(shù)據(jù)庫,二級監(jiān)測中心數(shù)據(jù)庫和三級監(jiān)測中心數(shù)據(jù)庫是從數(shù)據(jù)庫,所以整個分布式數(shù)據(jù)庫系統(tǒng)是“一主多從”的結(jié)構(gòu)。一級監(jiān)測中心信令數(shù)據(jù)表A1作為實體表,二級監(jiān)測中心信令建立以A1為實體表的可寫物化視圖A2,三級監(jiān)測中心創(chuàng)建以A2為實體表的可寫物化視圖A3,所有二級管理中心數(shù)據(jù)庫站點都是基于一級中心數(shù)據(jù)庫主站點的物化視圖站點,并且每個三級中心數(shù)據(jù)庫是作為它管轄的二級中心數(shù)據(jù)庫的目標(biāo)站點[4]。
這種方法中,每個監(jiān)測中心采集的信令數(shù)據(jù)統(tǒng)一存儲到一個數(shù)據(jù)庫表中,這樣既便于監(jiān)測終端進行數(shù)據(jù)分析,數(shù)據(jù)庫復(fù)制關(guān)系建立步驟也較為簡單,但在實際的應(yīng)用中也存在一些問題:
(1)信令數(shù)據(jù)單獨存儲到一個數(shù)據(jù)庫表,運行階段此表會迅速膨脹,不利于后臺進行數(shù)據(jù)分析。下面,就信令數(shù)據(jù)表容量做一個估算:
假設(shè)一個中等規(guī)模的三級監(jiān)測中心下管理2個信令點,每個信令點有100條電路,一個中繼電路平均每小時有28個呼叫,一個TUP/ISUP呼叫平均有9條消息(IAM,SAM×4,ACM,ANC,CLI,RLG),每天此信令點呼叫記錄數(shù)約為28×9×100×24=64.08萬條,此三級信令中心每天數(shù)據(jù)量為64.08×2=128.16萬條,此中心10天累計數(shù)據(jù)量約為1 280萬條,對一個千萬級數(shù)據(jù)表查詢統(tǒng)計操作的響應(yīng)時間較長,很難讓用戶滿意;
(2)在可更新物化視圖中,對實體表的更新操作是在目標(biāo)站點物化視圖中按主鍵快速刷新,但對目標(biāo)站點物化視圖的更新則需通過延遲事務(wù)層層推回上級中心數(shù)據(jù)庫,再逐級向下進行刷新,耗時較長,特別是針對大數(shù)據(jù)表的刷新,速度更是難以接受,無法體現(xiàn)物化視圖快速刷新的特性。而在目前的應(yīng)用中,恰恰是作為從數(shù)據(jù)庫的二、三級站點對應(yīng)物化視圖需要進行頻繁的更新。
針對系統(tǒng)的需求及常用的高級復(fù)制方法存在的不足可采取如下優(yōu)化措施。
(1)信令數(shù)據(jù)分表存儲
信令數(shù)據(jù)表按日存放,將信令消息分開存儲至多個表中,以避免單一表的過度膨脹。
信令數(shù)據(jù)表分兩類:本地采集數(shù)據(jù)表和下級采集數(shù)據(jù)表,統(tǒng)一命名為SIGNALYYYYMMDD_LNN,其中,YYYYMMDD表示為8位的年月日,LNN表示為3位的監(jiān)測中心編號,三級中心數(shù)據(jù)庫無下級采集數(shù)據(jù)表,一級、二級中心數(shù)據(jù)庫兩類數(shù)據(jù)表都存在,各個中心編號間上下級隸屬關(guān)系各個監(jiān)測中心可預(yù)先配置。
N級中心從N+1級中心數(shù)據(jù)庫收集數(shù)據(jù)(1≤N<3),收集的數(shù)據(jù)包含上述兩類信令數(shù)據(jù)表信息,定義下級收集數(shù)據(jù)配置表(命名為SUBCDCFG),存儲相關(guān)信息,如表1所示。
表1 下級收集數(shù)據(jù)配置表Table 1 The sub-level collected data config table
(2)調(diào)整信令數(shù)據(jù)表結(jié)構(gòu)
增加監(jiān)測中心編號(NCID),采集點標(biāo)識(NMPC)字段與原表主鍵字段一起作為新的聯(lián)合主鍵。監(jiān)測中心編號(NCID)用以區(qū)分不同的監(jiān)測中心,命名為LNN,三位數(shù)字統(tǒng)一編碼,L表示本監(jiān)控中心等級,取值為1~3,NN表示此中心在本級編號,取值為00~99,例如,301表示一個編號為01的三級監(jiān)控中心;采集點標(biāo)識(NMPC),記錄本信令消息來自哪個接入點,存儲此信令點點碼。這樣三級信令數(shù)據(jù)表可保持一致結(jié)構(gòu),以便上級中心后繼數(shù)據(jù)處理。
(3)更改各級數(shù)據(jù)庫站點實體表-物化視圖對應(yīng)關(guān)系
為了提高物化視圖刷新效率,將下級站點更新頻繁的表作為上級站點的實體表,所有二級管理中心數(shù)據(jù)庫站點都是基于三級中心數(shù)據(jù)庫主站點的物化視圖站點,并且每個一級中心數(shù)據(jù)庫是作為它管轄的二級中心數(shù)據(jù)庫的目標(biāo)站點,這樣以來,就形成了與原來相反的復(fù)制體系結(jié)構(gòu)。
每個中心可根據(jù)業(yè)務(wù)需求,以中心為單位靈活對信令數(shù)據(jù)采集/上傳進行配置。最終形成的多級物化視圖層次結(jié)構(gòu)如圖2所示。
圖2 多級物化視圖層次結(jié)構(gòu)Fig.2 The hierarchical structure of multilevel materialization view
在二、三級中心可為實體表建立物化視圖日志表,以實現(xiàn)快速刷新。
(4)物化視圖動態(tài)生成
信令消息具有時效性,采集設(shè)備生成信令消息的時間戳總是本日的,而對應(yīng)信令數(shù)據(jù)表是按日存放,所以當(dāng)前操作的只是本日對應(yīng)的信令數(shù)據(jù)表,歷史表是不會再被更新。每日可在系統(tǒng)閑時定時生成新物化視圖并移除過期物化視圖,整理刷新組。
建立高級復(fù)制環(huán)境有兩種方式:一種是采用Oracle企業(yè)管理器中的復(fù)制管理工具來管理復(fù)制環(huán)境;另一種就是采用后臺腳本的方式來實現(xiàn),相關(guān)配置見Oracle手冊[5],這里不再贅述。另外,需在物化視圖站點創(chuàng)建一刷新組,定時物化視圖的控制刷新,周期可設(shè)定為30 min。
物化視圖的動態(tài)創(chuàng)建由數(shù)據(jù)庫JOB實現(xiàn),可按照如下策略維護各站點的物化視圖:
(1)定時生成3日內(nèi)兩類信令數(shù)據(jù)表(帶主鍵),針對這些表生成對應(yīng)視圖日志,以便實現(xiàn)快速刷新;
(2)定時生成3日內(nèi)物化視圖并加入刷新組,以O(shè)N PREBUILT TABLE/REFRESH FORCE模式創(chuàng)建,ON PREBUILT TABLE參數(shù)表示以現(xiàn)有表創(chuàng)建,以便即使物化視圖被刪除,對應(yīng)實體表依然存在,REFRESH FORCE參數(shù)可實現(xiàn)快速刷新[6],默認(rèn)為只讀;
(3)將3日前物化視圖移出刷新組;
(4)定時刪除3日前物化視圖以及物化視圖日志表。
本文就方案改進后的系統(tǒng)效率進行了測試,測試環(huán)境如下:
(1)硬件
惠普ProLiant DL580;
CPU:Intel Xeon處理器2.80 GHz×4個;
內(nèi)存:4G MB雙路交叉PC2100 DDR SDRAM內(nèi)存;
外存:熱插拔SCSI硬盤容量72G×2;
以太網(wǎng)卡:2個Compaq NC7781 PCI-X千兆位網(wǎng)卡。
(2)軟件
Windows server 2003,Oracle 9i。
(3)測試預(yù)置條件
按照2.2中對數(shù)據(jù)量的估算,每天每個三級中心的信令數(shù)據(jù)表容量約為128萬條記錄,以10天作為一個測試單元,假設(shè)按照改進方案,系統(tǒng)存貯數(shù)據(jù)到一個數(shù)據(jù)表SINGNAL2009中,改進后系統(tǒng)分開存儲到10個表中(SIGNAL20090101~SIGNAL 20090110),其中,SINGNAL2009約有記錄1 280萬條,每個SIGNAL200901xx中約有記錄128萬條,均在主鍵上建索引。
(4)測試項目
查詢統(tǒng)計性能:計算某一信令點1日內(nèi)數(shù)據(jù)總和;計算某一信令點3日內(nèi)數(shù)據(jù)總和;計算某一信令點10日內(nèi)數(shù)據(jù)總和,如圖3所示。
圖3 查詢統(tǒng)計性能Fig.3 The query & statistics performance
物化視圖刷新時間:增加1 000條記錄刷新耗時;增加1萬條記錄刷新耗時;增加10萬條記錄刷新耗時,如圖4所示。
圖4 物化視圖刷新時間Fig.4 The refresh time of materialization view
通過測試結(jié)果可以得出如下結(jié)論:對于查詢統(tǒng)計操作來說,針對涉及全表遍歷的求和操作,執(zhí)行速度有明顯提高,特別是較短日期范圍內(nèi)的操作,提高更為顯著;對于物化視圖刷新方面,由于改進前物化視圖的主體表均在上級數(shù)據(jù)庫,每次更新操作需通過延遲事務(wù)推入上級數(shù)據(jù)庫站點,耗時較久,無法實現(xiàn)快速更新,并占用大量資源,其刷新周期一般較長,改進后,主體站點數(shù)據(jù)表按日期分表存儲,物化視圖站點也對應(yīng)創(chuàng)建多個物化視圖與之一一對應(yīng),此時,對應(yīng)物化視圖為簡單物化視圖,可實現(xiàn)按主鍵的快速刷新,刷新時間大大縮短,進而可定義一個較短的刷新周期,例如30 min,從而大大提高了上級站點數(shù)據(jù)同步的實時性和效率。
本文使用Oracle高級復(fù)制的物化視圖來解決分布式七號信令監(jiān)測系統(tǒng)的數(shù)據(jù)同步問題,針對系統(tǒng)采集數(shù)據(jù)的時效性特點,采用基于信令數(shù)據(jù)分表存儲、物化視圖動態(tài)管理的優(yōu)化方案,實現(xiàn)了上下級系統(tǒng)間數(shù)據(jù)的快速同步,大大提高了對于短期數(shù)據(jù)的查詢統(tǒng)計效率,有效保證了系統(tǒng)的正常運行和數(shù)據(jù)的完整性。但是,分表存儲和物化視圖的動態(tài)生成也在一定程度上提高了應(yīng)用層訪問和數(shù)據(jù)配置的復(fù)雜度,在工程應(yīng)用中需要得到進一步的改進。
參考文獻:
[1] 田婷婷.七號信令監(jiān)測系統(tǒng)的實現(xiàn)與應(yīng)用[J].廣東通信技術(shù),2008,28(7):72.
TIAN Ting-ting.Application and Implementation of SS7 Monitoring System[J].Guangdong Communication Technology,2008,28(7):72.(in Chinese)
[2] 張建林.遠(yuǎn)程鏡像技術(shù)[EB/OL].(2007-10-03)[2009-09-04].http://www.aimite.com/doc009.htm.
[3] 龔艷,張世錢.用Oracle 9i dataguard構(gòu)建系統(tǒng)容災(zāi)[J].計算機應(yīng)用與軟件,2006,23(10):66.
GONG Yan,ZHANG Shi-qian.Using ORACLE 9I Dataguard to Build Disaster Recovery System [J]. Computer Applications and Software,2006,23(10):66.(in Chinese)
[4] 刑朝華,季新生.Oracle 高級復(fù)制技術(shù)在七號信令網(wǎng)管系統(tǒng)中的應(yīng)用[J].計算機工程,2007,33(1):122.
XING Zhao-hua,JI Xin-sheng.Application of Oracle Technology in SS7 Network System[J].Computer Engineering,2007,33(1):122.(in Chinese)
[5] Oracle Technology Network.Oracle Documentation[DB/OL].(2003-01-03)[2009-09-04].Http://technet.oracle.com.
[6] 蓋國強.深入解析Oracle[M].北京:人民郵電出版社,2009.
GAI Guo-qiang. Oracle in-depth Analysis[M].Beijing:Posts &Telecommunication Press,2009.(in Chinese)