摘 要 HLR設(shè)備中存儲(chǔ)有大量有價(jià)值的信息,但在線提取這些信息存在著很大的風(fēng)險(xiǎn)。HLR脫機(jī)查詢系統(tǒng)滿足了這一需求,通過數(shù)據(jù)庫(kù)備份導(dǎo)入脫機(jī)系統(tǒng)并結(jié)合優(yōu)化的查詢算法,可以為市場(chǎng)部門決策提供極具價(jià)值的第一手?jǐn)?shù)據(jù)資料。
關(guān)鍵詞 3G HLR中央數(shù)據(jù)庫(kù) ORACLE SQL語(yǔ)言 表結(jié)構(gòu)
1 HLR在移動(dòng)通信系統(tǒng)中的地位
2009年隨著工業(yè)和信息化部正式發(fā)放了3張3G牌照,中國(guó)正式進(jìn)入了3G時(shí)代。在3G的三種基本制式中,中國(guó)聯(lián)通選用的WCDMA是最具競(jìng)爭(zhēng)力的,它是目前世界上用戶最多的和技術(shù)最成熟的3G網(wǎng)絡(luò),全球范圍內(nèi)的用戶達(dá)到了3.2億。華為公司針對(duì)WCDMA網(wǎng)絡(luò)推出的HLR9820V6系列產(chǎn)品,隨著我國(guó)3G網(wǎng)絡(luò)的建設(shè)也得到了廣泛的應(yīng)用。
現(xiàn)階段WCDMA網(wǎng)絡(luò)R4版本的核心網(wǎng)系統(tǒng)結(jié)構(gòu)如圖1所示:
與2G相同,HLR仍是M900/M1800移動(dòng)通訊系統(tǒng)的核心數(shù)據(jù)庫(kù),存儲(chǔ)著該HLR控制的所有注冊(cè)登記的移動(dòng)用戶的相關(guān)數(shù)據(jù)。在一個(gè)移動(dòng)交換業(yè)務(wù)區(qū)中,所有移動(dòng)用戶的重要靜態(tài)數(shù)據(jù)均存儲(chǔ)在HLR中,其中包括移動(dòng)用戶識(shí)別號(hào)碼、訪問功能和用戶類別等數(shù)據(jù)。HLR同時(shí)存儲(chǔ)并提供移動(dòng)用戶實(shí)際漫游所在的位置區(qū)信息,以便任何入局呼叫都能取得被叫用戶的的路由信息,從而接通被叫用戶。
另外,3G網(wǎng)絡(luò)的HLR設(shè)備兼容2G用戶,在數(shù)據(jù)庫(kù)中存儲(chǔ)著用戶訪問2G或3G網(wǎng)絡(luò)的權(quán)限。
2 HLR設(shè)備的核心組成及其重要性
HLR設(shè)備的核心在于其存儲(chǔ)大量數(shù)據(jù)的中央數(shù)據(jù)庫(kù)。華為M900/1800中央數(shù)據(jù)庫(kù)硬件由兩臺(tái)SUN服務(wù)器,一個(gè)D1000和終端集線器(Terminal connectrator)組成,軟件數(shù)據(jù)庫(kù)采用ORACLE。
中央數(shù)據(jù)庫(kù)在設(shè)計(jì)上采用雙網(wǎng)雙平面的體系結(jié)構(gòu),并且部件選型充分考慮了可靠性。而這種可靠性的設(shè)計(jì)更說明了HLR設(shè)備在整個(gè)移動(dòng)通信網(wǎng)中的關(guān)鍵地位和作用。從HLR的作用中我們可以了解到,一旦中央數(shù)據(jù)庫(kù)出現(xiàn)問題,HLR設(shè)備會(huì)退出服務(wù),直接造成的影響就是所轄的幾十萬(wàn)甚至是上百萬(wàn)的用戶無(wú)法登錄網(wǎng)絡(luò)和接打電話。而如果故障無(wú)法在短時(shí)間內(nèi)排除,其造成的經(jīng)濟(jì)和社會(huì)的負(fù)面影響將會(huì)是無(wú)法估量的。
因而在所有的通信規(guī)程中均明確要求,HLR的年阻斷率都嚴(yán)格控制在30分鐘以內(nèi)。故HLR中央數(shù)據(jù)庫(kù)的維護(hù)工作一直是從事移動(dòng)交換維護(hù)工作人員最為重視和關(guān)注的。
3 HLR數(shù)據(jù)庫(kù)脫機(jī)查詢的需求
同時(shí)在HLR的用戶數(shù)據(jù)庫(kù)中又存在著大量的有待采集的信息,例如當(dāng)前的開戶用戶數(shù),用戶開機(jī)情況,用戶在各地的分布情況等等,這些信息對(duì)市場(chǎng)部門的決策都有重要的參考價(jià)值。
例如,市場(chǎng)部門比較關(guān)心的一些數(shù)據(jù):
◆每天新入網(wǎng)的用戶數(shù)量
市場(chǎng)部門通過每天對(duì)開戶數(shù)進(jìn)行統(tǒng)計(jì),可以直接了解整體市場(chǎng)發(fā)展的速度;
◆開通增值業(yè)務(wù)的用戶數(shù)
例如通過對(duì)比每日開通彩鈴業(yè)務(wù)的用戶數(shù)量的變化,業(yè)務(wù)部門可以間接的了解用戶對(duì)彩鈴的資費(fèi)的認(rèn)可程度;
◆用戶在全國(guó)的漫游分布情況
信息部門通過了解用戶在全國(guó)的各地的漫游情況,可以判斷出高漫游區(qū)域,進(jìn)而制定靈活的套餐來刺激用戶的增長(zhǎng)。如圖2所示:
這一系列的有價(jià)值的資料數(shù)據(jù)都存儲(chǔ)在HLR設(shè)備的數(shù)據(jù)庫(kù)中,而如果要查詢這些信息,需要對(duì)其SUN平臺(tái)上的ORACLE 數(shù)據(jù)庫(kù)進(jìn)行SQL查詢操作。但由于查詢操作是直接針對(duì)正在運(yùn)行的HLR底層oracle數(shù)據(jù)庫(kù)的,因而在線操作存在較大的風(fēng)險(xiǎn),是很不安全的。下列情況是在線操作潛在的風(fēng)險(xiǎn):
◆查詢操作會(huì)導(dǎo)致數(shù)據(jù)庫(kù)系統(tǒng)負(fù)荷明顯增加,嚴(yán)重時(shí)可能引起系統(tǒng)過載而宕機(jī);
◆查詢指令存在錯(cuò)誤,例如誤加入了修改或刪除的指令,會(huì)導(dǎo)致數(shù)據(jù)庫(kù)數(shù)據(jù)錯(cuò)誤;
◆頻繁的使用聯(lián)合等耗費(fèi)系統(tǒng)資源的SQL操作,會(huì)累積導(dǎo)致系統(tǒng)資源不足。
這任意一個(gè)潛在的風(fēng)險(xiǎn),在穩(wěn)定性要求極高的HLR系統(tǒng)中都是不允許存在的。由此可以看出在線操作查詢這些有價(jià)值的數(shù)據(jù)是沒有現(xiàn)實(shí)意義的。
而如果可以實(shí)現(xiàn)建立脫機(jī)的系統(tǒng),實(shí)現(xiàn)查詢HLR用戶信息的操作,將是很安全且實(shí)用的。脫機(jī)系統(tǒng)是指,在一臺(tái)獨(dú)立的與網(wǎng)絡(luò)沒有連接的SUN終端或PC機(jī)上,安裝與HLR相同版本的ORACLE數(shù)據(jù)庫(kù),并將HLR備份的數(shù)據(jù)庫(kù)文件導(dǎo)入脫機(jī)的ORACLE中,通過編寫查詢腳本或程序在脫機(jī)ORACLE進(jìn)行用戶數(shù)據(jù)查詢。
4 HLR數(shù)據(jù)庫(kù)脫機(jī)系統(tǒng)的實(shí)現(xiàn)
4.1 ORACLE平臺(tái)和版本的確定
ORACLE數(shù)據(jù)庫(kù)軟件存在諸多版本,應(yīng)用的平臺(tái)也很廣泛,如WINDOWS、SUN(SPARC)平臺(tái)等。這樣就為我們提供了很大的選擇空間,在使用WINDOWS的PC機(jī)和使用SOLARIS的SUN機(jī)器上均可實(shí)現(xiàn)脫機(jī)系統(tǒng)的功能。
本例采用SUN Ultra5工作站,故僅介紹SPARC平臺(tái)上的脫機(jī)系統(tǒng)。
另外ORACLE的版本是向下兼容的,也就是說,ORACLE高版本的數(shù)據(jù)庫(kù)可以兼容低版本數(shù)據(jù)庫(kù)的數(shù)據(jù)。HLR數(shù)據(jù)庫(kù)采用ORACLE7版本,因而安裝ORACLE7及以上版本的數(shù)據(jù)庫(kù)均可。
本例采用對(duì)系統(tǒng)硬件要求比較低且性能較為優(yōu)越的ORACLE8i作為數(shù)據(jù)庫(kù)平臺(tái)。
4.2 ORACLE系統(tǒng)的安裝
ORACLE8i的安裝軟件在ORACLE官網(wǎng)上可以下載到,雖然是免費(fèi)版有連接數(shù)量的限制,但由于本脫機(jī)系統(tǒng)同時(shí)僅存在1~2個(gè)連接故并無(wú)影響。
ORACLE系統(tǒng)的安裝過程是較為復(fù)雜和繁瑣的,由于篇幅的限制這里不再贅述。一般嚴(yán)格按照安裝指導(dǎo)書的要求進(jìn)行是可以完成安裝的。
ORACLE安裝完成后會(huì)自動(dòng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)實(shí)例,同時(shí)在進(jìn)程中可以看到ora8的存在。
4.3 脫機(jī)ORACLE數(shù)據(jù)恢復(fù)
ORACLE的數(shù)據(jù)備份一般均采用exp命令,由它導(dǎo)出的數(shù)據(jù)備份文件中包含有所有的數(shù)據(jù)和全部數(shù)據(jù)庫(kù)表結(jié)構(gòu),就相當(dāng)于將整個(gè)庫(kù)完全拷貝了下來。因而在恢復(fù)數(shù)據(jù)庫(kù)時(shí),無(wú)需如同某些數(shù)據(jù)庫(kù)一樣,必須提前建立庫(kù)并恢復(fù)庫(kù)結(jié)構(gòu)才可以導(dǎo)入數(shù)據(jù)。ORACLE的備份文件在導(dǎo)入過程中會(huì)自動(dòng)根據(jù)備份時(shí)的情況首先創(chuàng)建或恢復(fù)數(shù)據(jù)庫(kù),然后依次將表結(jié)構(gòu)和數(shù)據(jù)恢復(fù)。
數(shù)據(jù)導(dǎo)入使用imp命令。為解決對(duì)象之間依賴關(guān)系可能產(chǎn)生的問題,imp程序?qū)霐?shù)據(jù)的順序如表1所示:
具體的導(dǎo)入命令可參考如下:
#su oracle
password:
$/opt/oracle/imp user/password /databack/backup_20080404.dmp fully=y
在命令執(zhí)行完成后imp會(huì)生成數(shù)據(jù)導(dǎo)入情況報(bào)告,以此判斷數(shù)據(jù)是否成功導(dǎo)入或?qū)霐?shù)據(jù)是否完整。
至此,整個(gè)系統(tǒng)最關(guān)鍵的一環(huán)脫機(jī)數(shù)據(jù)庫(kù)部分已經(jīng)建立完成,數(shù)據(jù)實(shí)現(xiàn)了在脫機(jī)系統(tǒng)的完整重現(xiàn),為下一步的脫機(jī)查詢打好了基礎(chǔ)。
5 HLR數(shù)據(jù)庫(kù)脫機(jī)查詢應(yīng)用
數(shù)據(jù)庫(kù)移植到脫機(jī)系統(tǒng)后,為各類查詢操作甚至是修改操作提供了巨大的便捷。在了解了HLR數(shù)據(jù)庫(kù)的庫(kù)結(jié)構(gòu)和表結(jié)構(gòu)后,做各類統(tǒng)計(jì)是易如反掌的。
根據(jù)華為現(xiàn)有的資料,結(jié)合GSM通信對(duì)HLR數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行分析,可基本掌握所有有價(jià)值的資源的查詢方法。一般在ORACLE中所有的數(shù)據(jù)查詢、修改等都是通過sqlplus工具完成的。
下面以對(duì)于用戶漫游分布情況進(jìn)行統(tǒng)計(jì)為例,介紹其查詢的方法。
在3G移動(dòng)通信網(wǎng)中,全國(guó)基本每個(gè)城市均建有一個(gè)或多個(gè)軟交換MSC設(shè)備,且所有軟交換MSC設(shè)備統(tǒng)一進(jìn)行編號(hào)。在HLR中存儲(chǔ)有用戶當(dāng)前所在的MSC設(shè)備編號(hào),因此只要找到它就可以判斷出用戶所在的位置。
通過研究發(fā)現(xiàn),用戶漫游位置信息-MSC編號(hào)存儲(chǔ)在表:user_location(未用真實(shí)表名)。這個(gè)表中用戶號(hào)碼為關(guān)鍵域,其他域包括用戶所在的MSC號(hào)碼(MSC)、用戶是否在VLR中刪除、用戶欠費(fèi)情況等,均與用戶的移動(dòng)性有關(guān)。
而要統(tǒng)計(jì)用戶在全國(guó)各地市用戶的漫游情況,首先需要將全國(guó)各地市所轄MSC號(hào)碼的資料錄入到ORACLE中。
表2為舉例說明的全國(guó)城市MSC號(hào)碼資料(EXCEL格式):
將EXCEL文件另存為文本文件,制作成SQL命令如下所示:
INSERT INTO MSC_NUMBER (MSC,PROV,CITY) VALUES ( '13001','北京','北京')
INSERT INTO MSC_NUMBER (MSC,PROV,CITY) VALUES ( '13002','北京','北京')
...
INSERT INTO MSC_NUMBER (MSC,PROV,CITY) VALUES ( '13007','河北','石家莊')
...
利用SQLPLUS中在ORACLE中新建表MSC_NUMBER,表中有MSC,PROV,CITY 3個(gè)域,并在執(zhí)行上述SQL語(yǔ)句導(dǎo)入全國(guó)MSC號(hào)碼表。
通過對(duì)MSC_NUMBER表和user_location表進(jìn)行聯(lián)合,可將二者關(guān)聯(lián)起來,之后通過GROUP方式直接輸出以省或市為單位的漫游用戶數(shù)。具體命令如下:
以省為單位統(tǒng)計(jì):
SELECT T1.PROV,COUNT(T1.PROV) AS PROV_NUMBER FROM MSC_NUMBER T1,user_location T2 WHERE T1.MSC=T2.MSC GROUP BY T1.PROV
以市為單位統(tǒng)計(jì):
SELECT T1.CITY,COUNT(T1.PROV) AS PROV_NUMBER FROM MSC_NUMBER T1,user_location T2 WHERE T1.MSC=T2.MSC GROUP BY T1. CITY
這樣市場(chǎng)部門就可以拿到一份詳細(xì)的用戶在全國(guó)漫游區(qū)域分布的報(bào)告了。
6 HLR數(shù)據(jù)庫(kù)脫機(jī)查詢的意義
在面對(duì)著各種災(zāi)情或者突發(fā)狀況時(shí),各行各業(yè)均行動(dòng)起來,發(fā)揮自己的力量做出貢獻(xiàn)。作為通信保障部門,為了確保正在特殊區(qū)域漫游用戶的正常使用,提出為這部分用戶提供免欠費(fèi)停機(jī)等便利。
這就要求需要每天將漫游在特殊區(qū)域的用戶統(tǒng)計(jì)出來,不難看出在上述例子中做簡(jiǎn)單的修改即可實(shí)現(xiàn)要求的功能,而也正是這套脫機(jī)查詢系統(tǒng)在一些有重大意義的行動(dòng)中發(fā)揮了核心的作用。