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