洪旭瑜,余 丹,劉堅(jiān)剛,陳彩虹,張清秀
(1.福建省地震局,福建 福州 350003 2.中國(guó)地震臺(tái)網(wǎng)中心,北京 100045)
自中國(guó)地震局啟動(dòng)實(shí)施地震前兆觀(guān)測(cè)系統(tǒng)并網(wǎng)以來(lái),我國(guó)地震前兆臺(tái)網(wǎng)先后經(jīng)歷了人工觀(guān)測(cè)、模擬觀(guān)測(cè)、“九五”數(shù)字化及 “十五”的網(wǎng)絡(luò)化等多個(gè)階段。以福建省地震前兆臺(tái)網(wǎng)為例,已經(jīng)完成了一部分“九五”儀器通過(guò)接入改造為網(wǎng)絡(luò)化儀器及模擬和人工儀器接入“十五”系統(tǒng),實(shí)現(xiàn)并網(wǎng)運(yùn)行[1]?!笆濉逼陂g,地震前兆網(wǎng)絡(luò)平臺(tái)建設(shè)將更趨規(guī)?;?、系統(tǒng)化、科學(xué)化以及集成化,數(shù)據(jù)使用效率將得到極大提高。地震前兆設(shè)備網(wǎng)絡(luò)設(shè)施的改造完成使得地震設(shè)備具有遠(yuǎn)程管理和控制功能,簡(jiǎn)化了地震前兆維護(hù)的管理。隨著前兆臺(tái)網(wǎng)規(guī)模的不斷升級(jí),觀(guān)測(cè)數(shù)據(jù)量也大幅增長(zhǎng),維護(hù)好“十五”觀(guān)測(cè)系統(tǒng)并及時(shí)保證其正常運(yùn)行顯得日益的重要。本文主要以為福建前兆臺(tái)網(wǎng)為例,說(shuō)明地震前兆臺(tái)網(wǎng)日常運(yùn)行過(guò)程中數(shù)據(jù)管理系統(tǒng)和oracle數(shù)據(jù)庫(kù)遇到的一些主要問(wèn)題,并提出解決方案,以此提高前兆臺(tái)網(wǎng)運(yùn)行維護(hù)效率。
前兆數(shù)字臺(tái)網(wǎng)工程建設(shè)是中國(guó)地震局“十五”重點(diǎn)項(xiàng)目“中國(guó)數(shù)字地震前兆網(wǎng)絡(luò)”的組成部分[2]。前兆觀(guān)測(cè)儀器、通信網(wǎng)絡(luò)、服務(wù)器、臺(tái)式計(jì)算機(jī)等硬件和“九五”及“十五”軟件構(gòu)成了前兆臺(tái)網(wǎng)技術(shù)系統(tǒng)。前兆觀(guān)測(cè)儀器主要包括感應(yīng)器、記錄器、數(shù)據(jù)采集器、通信單元;oracle服務(wù)器、SQL SERVER服務(wù)器與省級(jí)FTP服務(wù)器組成前兆服務(wù)器?!熬盼濉避浖饕菙?shù)據(jù)采集、數(shù)據(jù)預(yù)處理、數(shù)據(jù)質(zhì)量控制、數(shù)據(jù)備份、數(shù)據(jù)入庫(kù)等系統(tǒng)軟件;前兆管理系統(tǒng)、數(shù)據(jù)預(yù)處理系統(tǒng)、數(shù)據(jù)庫(kù)備份系統(tǒng)、監(jiān)控日志入庫(kù)軟件等構(gòu)成“十五”軟件 (圖1)。
圖1 福建地震前兆臺(tái)網(wǎng)技術(shù)系統(tǒng)的主要構(gòu)成Fig.1 The main components of technical systems of Fujian earthquake precursor network
地震前兆臺(tái)網(wǎng)系統(tǒng)由國(guó)家前兆中心、區(qū)域前兆中心、直屬觀(guān)測(cè)臺(tái)站和地方臺(tái)站組成。地震前兆觀(guān)測(cè)數(shù)據(jù)的匯集、處理、存儲(chǔ)、報(bào)送與歸檔,承擔(dān)無(wú)人值守臺(tái)站的工作并保證數(shù)據(jù)質(zhì)量控制、產(chǎn)品產(chǎn)出與應(yīng)用服務(wù)是前兆臺(tái)網(wǎng)系統(tǒng)的主要職責(zé)。同時(shí)也承擔(dān)著后續(xù)前兆觀(guān)測(cè)系統(tǒng)的運(yùn)行維護(hù)與升級(jí)改造,如圖2為前兆臺(tái)網(wǎng)數(shù)據(jù)產(chǎn)出流程。通過(guò)前兆臺(tái)網(wǎng)中心管理平臺(tái)收取臺(tái)站原始數(shù)據(jù)并進(jìn)行預(yù)處理,將原始數(shù)據(jù)和預(yù)處理數(shù)據(jù)存入到前兆臺(tái)網(wǎng)專(zhuān)門(mén)的數(shù)據(jù)庫(kù)里[3]。目前“九五”系統(tǒng)產(chǎn)生的數(shù)據(jù)主要存儲(chǔ)在SQLSERVER數(shù)據(jù)庫(kù),而“十五”系統(tǒng)產(chǎn)生的數(shù)據(jù)主要是存入到oracle數(shù)據(jù)庫(kù)。
圖2 前兆臺(tái)網(wǎng)數(shù)據(jù)產(chǎn)出流程Fig.2 Output process of the data of precursor network
自“九五”系統(tǒng)改造以來(lái),考慮到我國(guó)地震前兆數(shù)據(jù)存儲(chǔ)特點(diǎn)和各方面的需求,根據(jù)我國(guó)地震行業(yè)標(biāo)準(zhǔn)和規(guī)范,基于oracle數(shù)據(jù)庫(kù)在數(shù)據(jù)管理方面具有結(jié)構(gòu)化、數(shù)據(jù)完整性檢查、數(shù)據(jù)庫(kù)查詢(xún)性能、實(shí)現(xiàn)數(shù)據(jù)共享、減少數(shù)據(jù)冗余度及數(shù)據(jù)安全性方面等功能,而且在表空間管理、數(shù)據(jù)的備份與恢復(fù)及開(kāi)發(fā)工具提供了多種不同方法和手段[4],“十五”系統(tǒng)決定采用甲骨文公司的oracle數(shù)據(jù)庫(kù)。目前,我國(guó)前兆臺(tái)網(wǎng)各中心采用的是以suse linux enterprise 10(逐漸更新為suse linux enterprise 11)為應(yīng)用系統(tǒng)平臺(tái),安裝oracle 10G (或oracle 11G)為數(shù)據(jù)存儲(chǔ)平臺(tái)[5],通過(guò)十五地震前兆數(shù)據(jù)管理系統(tǒng)或是基于GIS的地震分析預(yù)報(bào)系統(tǒng)軟件等地震分析預(yù)報(bào)相關(guān)軟件,管理和運(yùn)用前兆數(shù)據(jù)。
2.2.1 oracle數(shù)據(jù)庫(kù)結(jié)構(gòu)
地震前兆o(hù)racle數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)計(jì)綜合考慮了各省各個(gè)臺(tái)站的地震前兆臺(tái)站的實(shí)際情況,在庫(kù)結(jié)構(gòu)設(shè)計(jì)、表空間以及他們之間的相對(duì)應(yīng)的關(guān)聯(lián)都要求精簡(jiǎn),使數(shù)據(jù)庫(kù)管理人員能夠一目了然的統(tǒng)一管理和維護(hù)使用??紤]到前兆數(shù)據(jù)容量和數(shù)據(jù)的多樣性,利用表分區(qū)將數(shù)據(jù)從分區(qū)上物理分隔開(kāi),不同分區(qū)數(shù)據(jù)保存在不同的數(shù)據(jù)文件里,縮短對(duì)表的查詢(xún)時(shí)間。目前,前兆o(hù)racle數(shù)據(jù)庫(kù)包括信息表、數(shù)據(jù)表、日志表和數(shù)據(jù)字典表等四大類(lèi)[6]。信息表主要為臺(tái)站信息表、測(cè)項(xiàng)信息表和臺(tái)站測(cè)項(xiàng)信息表等,信息表之間通過(guò)主鍵與外鍵來(lái)實(shí)現(xiàn)彼此之間的引用關(guān)系,通過(guò)測(cè)項(xiàng)代碼來(lái)實(shí)現(xiàn)臺(tái)站測(cè)項(xiàng)信息表與測(cè)項(xiàng)信息表的關(guān)聯(lián),而臺(tái)站測(cè)項(xiàng)信息表與臺(tái)站信息表通過(guò)臺(tái)站編碼來(lái)取得關(guān)聯(lián),三者之間的關(guān)聯(lián)如圖3所示。數(shù)據(jù)庫(kù)表則分別對(duì)應(yīng)地震前兆觀(guān)測(cè)技術(shù)進(jìn)行分鐘采樣、整點(diǎn)采樣、日均值采樣三種采樣率手段的分鐘值表、整點(diǎn)值表、日均值表,三個(gè)表的結(jié)構(gòu)都一樣,如表1整點(diǎn)值表的結(jié)構(gòu)。日志表包括觀(guān)測(cè)日志表、觀(guān)測(cè)日志和儀器運(yùn)行日志表[7]。數(shù)據(jù)字典表主要存放前兆數(shù)據(jù)庫(kù)所有模式對(duì)象的信息的輔助表,對(duì)于每個(gè)包含于觀(guān)測(cè)數(shù)據(jù)有關(guān)的前兆數(shù)據(jù)庫(kù)表的數(shù)據(jù)庫(kù)都建立一套規(guī)范的數(shù)據(jù)字典表,存放在qzdata表空間中。
2.2.2 oracle數(shù)據(jù)庫(kù)的體系
關(guān)于前兆o(hù)racle數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)主要是由oracle instance實(shí)例即PDBQZ實(shí)例、程序全局區(qū)(program global areas)、后臺(tái)進(jìn)程和文件組成,這里就不詳細(xì)介紹各個(gè)主要體系結(jié)構(gòu)的內(nèi)容,可以參考相關(guān)資料[8]。Oracle數(shù)據(jù)庫(kù)詳細(xì)的體系結(jié)構(gòu)如圖4所示,以此對(duì)前兆o(hù)racle數(shù)據(jù)的運(yùn)行有一個(gè)總體的框架概念,更好的對(duì)oracle數(shù)據(jù)庫(kù)進(jìn)行維護(hù)和管理,保證分析預(yù)報(bào)人員能夠及時(shí)獲取前兆數(shù)據(jù)[9]。通過(guò)十五前兆數(shù)據(jù)管理系統(tǒng)來(lái)做為可視化界面對(duì)oracle數(shù)據(jù)庫(kù)進(jìn)行管理和數(shù)據(jù)入庫(kù)。
圖3 表的E-R關(guān)系Fig.3 The E-R relationship of table
表1 整點(diǎn)值表的結(jié)構(gòu)Table 1 The structure of hour-values table
圖4 Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)Fig.4 The architectur of oracle database
前兆o(hù)racle數(shù)據(jù)庫(kù)的更新和數(shù)據(jù)庫(kù)故障是日常oracle數(shù)據(jù)庫(kù)維護(hù)的重點(diǎn),對(duì)于數(shù)據(jù)庫(kù)的更新主要是通過(guò)定期監(jiān)測(cè)前兆表空間的運(yùn)行狀況,例如當(dāng)表空間容量達(dá)到99%以上就需要對(duì)表空間進(jìn)行更新,而oracle數(shù)據(jù)庫(kù)的故障主要出現(xiàn)在日常運(yùn)行中可能出現(xiàn)的問(wèn)題,這時(shí)候就需要針對(duì)具體的問(wèn)題具體的分析。
2.3.1 oracle數(shù)據(jù)庫(kù)更新
當(dāng)oracle數(shù)據(jù)庫(kù)運(yùn)行一段時(shí)間,就需要對(duì)oracle數(shù)據(jù)庫(kù)的表空間進(jìn)行更新擴(kuò)展,以保證前兆數(shù)據(jù)能夠及時(shí)入庫(kù)[10]。更新的頻率取決于各個(gè)區(qū)域中心每天前兆觀(guān)察數(shù)據(jù)的大小以及QZDATA表空間數(shù)據(jù)文件的大小。每天采集的觀(guān)察數(shù)據(jù)多且數(shù)據(jù)量大、QZDATA表空間數(shù)據(jù)文件比較小,更新的頻率就需要比較頻繁,反之則無(wú)需頻繁對(duì)表空間采取動(dòng)作。當(dāng)前主要通過(guò)增加QZDATA表空間數(shù)據(jù)文件來(lái)更新oracle數(shù)據(jù)庫(kù)。增加表空間數(shù)據(jù)文件主要有三種方法[11]。首先利用Secure Shell、VNC或SecureCRT等軟件工具以oracle用戶(hù)(用root用戶(hù)登陸需要輸入su-oracle命令切換到oracle用戶(hù)底下,否則增加的數(shù)據(jù)文件無(wú)效)遠(yuǎn)程登陸鏈接到服務(wù)器,一般不建議利用本地登陸。然后輸入命令進(jìn)入到PDBQZ實(shí)例sys用戶(hù)下的SQL,如圖5所示。在SQL下:①改變表空間數(shù)據(jù)文件尺寸來(lái)直接擴(kuò)展表空間:ALTER DATABASE DATAFILE'file_name'SIZE file_size;②改變表空間的狀態(tài)使表空間填滿(mǎn)時(shí)數(shù)據(jù)文件可以自動(dòng)擴(kuò)展,使用ALTER DATABASE DATAFILE命令激活數(shù)據(jù)文件自動(dòng)擴(kuò)展:ALTERDATABASEDATAFILE'file_name'AUTOEXTENDON [NEXTincrement_by][MAXSIZE maximum_size];③為表空間增加數(shù)據(jù)文件來(lái)擴(kuò)展表空間:ALTER TABLESPACE tablespace_name ADD DATAFILE'file_name'SIZE file_size。
圖5 Sql命令窗口Fig.5 Sql command window
2.3.2 oracle數(shù)據(jù)庫(kù)故障
通常情況下,進(jìn)程故障、用戶(hù)錯(cuò)誤、SQL表達(dá)式引起的故障、實(shí)例與介質(zhì)故障是造成oracle數(shù)據(jù)庫(kù)正常運(yùn)行出現(xiàn)故障的主要原因[12]。
Oracle數(shù)據(jù)庫(kù)的進(jìn)程故障主要是針對(duì)用戶(hù)進(jìn)程而言,當(dāng)用戶(hù)進(jìn)程被意外終止或是DBA終止了服務(wù)進(jìn)程,例如當(dāng)oracle的監(jiān)聽(tīng)沒(méi)有開(kāi)啟或是監(jiān)聽(tīng)器出現(xiàn)錯(cuò)誤(如圖6所示)導(dǎo)致用戶(hù)進(jìn)程無(wú)法訪(fǎng)問(wèn)[13]。
用戶(hù)在進(jìn)行誤刪除表、UPDATA更新、insert插入、DELETE刪除等誤操作所引發(fā)的錯(cuò)誤是用戶(hù)錯(cuò)誤,這些情況主要是因?yàn)橛脩?hù)在實(shí)際操作過(guò)程中沒(méi)有按照規(guī)范的步驟進(jìn)行操作引起的。
SQL表達(dá)式引起的故障是oracle數(shù)據(jù)庫(kù)故障最常出現(xiàn)的,對(duì)oracle造成的影響也比較大,嚴(yán)重可能導(dǎo)致一些重要的數(shù)據(jù)丟失從而無(wú)法恢復(fù)。表空間內(nèi)存不足、超出了空間的配額、執(zhí)行非法授權(quán)操作等原因造成的某些語(yǔ)句處理不正確出現(xiàn)的邏輯錯(cuò)誤是常見(jiàn)由SQL表達(dá)式引起的故障。
圖6 監(jiān)聽(tīng)異常Fig.6 Lsnrctl errors
實(shí)例相關(guān)的后臺(tái)進(jìn)程、系統(tǒng)內(nèi)存結(jié)構(gòu)和由于數(shù)據(jù)文件發(fā)生物理?yè)p壞導(dǎo)致數(shù)據(jù)庫(kù)所需的物理文件無(wú)法正常讀寫(xiě)成為實(shí)例與介質(zhì)故障。其主要表現(xiàn)在斷電,磁盤(pán)損壞。斷電所引起的實(shí)例故障會(huì)由SMON進(jìn)程進(jìn)行自動(dòng)處理,而對(duì)于磁盤(pán)損壞的主要應(yīng)對(duì)方式只能通過(guò)RMAN熱備和DATA GUARD容災(zāi)方案補(bǔ)救。
在前兆臺(tái)網(wǎng)運(yùn)行過(guò)程中出現(xiàn)的oracle數(shù)據(jù)庫(kù)故障,根據(jù)運(yùn)行維護(hù)的經(jīng)驗(yàn),一般情況只需要重新啟動(dòng)數(shù)據(jù)庫(kù)就能夠解決問(wèn)題,使數(shù)據(jù)庫(kù)正常運(yùn)行[14]。重啟數(shù)據(jù)庫(kù)的步驟詳見(jiàn)2.3.1,進(jìn)入到oracle的SQL命令模式,依次輸入圖7的命令即可。
圖7 命令語(yǔ)句Fig.7 Command statement
“十五”中國(guó)地震前兆臺(tái)網(wǎng)數(shù)據(jù)管理系統(tǒng)作為面向?qū)ο蟮目梢暬芾硐到y(tǒng),通過(guò)該系統(tǒng)對(duì)oracle數(shù)據(jù)庫(kù)進(jìn)行操作,實(shí)現(xiàn)臺(tái)網(wǎng)觀(guān)測(cè)數(shù)據(jù)的入庫(kù),保證對(duì)數(shù)據(jù)庫(kù)的及時(shí)更新。其主要由采集模塊、交換模塊、監(jiān)控模塊和用戶(hù)界面等五大模塊組成。數(shù)據(jù)管理系統(tǒng)運(yùn)行的運(yùn)行維護(hù)相對(duì)比較簡(jiǎn)單。數(shù)據(jù)管理系統(tǒng)運(yùn)行異常主要表現(xiàn)[15]:①在服務(wù)器斷電或死機(jī)重新啟動(dòng)導(dǎo)致無(wú)法進(jìn)入數(shù)據(jù)管理系統(tǒng)的界面。②oracle數(shù)據(jù)庫(kù)沒(méi)有開(kāi)啟或oracle數(shù)據(jù)庫(kù)進(jìn)程死機(jī)導(dǎo)致登陸數(shù)據(jù)管理系統(tǒng) “數(shù)據(jù)庫(kù)操作失敗,請(qǐng)返回”。③數(shù)據(jù)交換模塊長(zhǎng)時(shí)間沒(méi)有響應(yīng)導(dǎo)致無(wú)法進(jìn)行數(shù)據(jù)交換而出現(xiàn)的“數(shù)據(jù)交換中,此操作無(wú)效”。對(duì)①③的情況只需要重新啟動(dòng)數(shù)據(jù)管理系統(tǒng):在suse linux操作系統(tǒng)桌面打開(kāi)終端,輸入cd/install進(jìn)入install目錄,鍵入./stoprun.sh命令停止中國(guó)地震前兆臺(tái)網(wǎng)數(shù)據(jù)管理系統(tǒng)運(yùn)行,停止成功以后重新鍵入./run.sh命令開(kāi)啟系統(tǒng)應(yīng)用程序。②的情況只需要把oracle數(shù)據(jù)重新啟動(dòng)即可,啟動(dòng)命令參考圖7所示。
隨著全國(guó)前兆臺(tái)網(wǎng)“九五”及模擬觀(guān)測(cè)系統(tǒng)并入“十五”觀(guān)測(cè)系統(tǒng)工作的完成,地震前兆觀(guān)測(cè)數(shù)據(jù)量也日益增多,數(shù)據(jù)庫(kù)技術(shù)也在不斷的發(fā)展,管理和維護(hù)好前兆臺(tái)網(wǎng)正常運(yùn)行對(duì)我們來(lái)說(shuō)是一項(xiàng)很重要的工作。今后如何不斷的提高前兆臺(tái)網(wǎng)運(yùn)行效率,合理的配置和管理好數(shù)據(jù)庫(kù),需要我們前兆臺(tái)網(wǎng)管理運(yùn)行維護(hù)人員打好基礎(chǔ),熟練掌握前兆臺(tái)網(wǎng)運(yùn)行的各項(xiàng)技術(shù)。
保證前兆數(shù)據(jù)的及時(shí)交換和上傳是前兆臺(tái)網(wǎng)運(yùn)行的必須要求,前兆觀(guān)測(cè)數(shù)據(jù)量日益增加,維護(hù)和管理工作也相應(yīng)提高,每天的任務(wù)比較繁重,建議對(duì)“十五”管理系統(tǒng)和oracle數(shù)據(jù)庫(kù)對(duì)沒(méi)有在規(guī)定的時(shí)間內(nèi)交換上來(lái)的臺(tái)站數(shù)據(jù)進(jìn)行預(yù)警提示;同時(shí)區(qū)域中心和各學(xué)科中心的數(shù)據(jù)庫(kù)應(yīng)當(dāng)有對(duì)本書(shū)以下面各直屬臺(tái)站的表空間大小和容量臨界值進(jìn)行提示的功能,但不影響數(shù)據(jù)的入庫(kù)轉(zhuǎn)換和數(shù)據(jù)同步交換。
參考資料:
[1]周克昌,趙剛,王晨,等.全國(guó)地震前兆臺(tái)網(wǎng)觀(guān)測(cè)系統(tǒng)整合[J].國(guó)際地震動(dòng)態(tài),2012,6:209.
[2]丁學(xué)仁,史壽華,曾建民,等.福建地震前兆臺(tái)網(wǎng)集成設(shè)計(jì)與應(yīng)用[J].華南地震,2008,28(3):97-99.
[3]馬文娟,何案華,曹開(kāi),等.“九五”前兆儀器與 “十五”前兆管理系統(tǒng)的整合[J].地震研究,2010,33(4): 361-363.
[4]哈斯高娃,蘭陵,陳向東.前兆數(shù)據(jù)庫(kù)備份軟件開(kāi)發(fā)與應(yīng)用[J].內(nèi)陸地震,2010,24(4):365-368.
[5]周浩,程冬眾,程宇.“十五”黑龍江省數(shù)字化區(qū)域前兆臺(tái)網(wǎng)建設(shè)與系統(tǒng)集成[J].地震地磁觀(guān)測(cè)與研究,2008, 29 (3): 54-56.
[6]王秀英,牛從達(dá).臺(tái)網(wǎng)中心地震前兆數(shù)據(jù)庫(kù)的結(jié)構(gòu)及其管理維護(hù)[J].華北地震科學(xué),2004,22(3):28-30.
[7]周克昌,蔣春花,紀(jì)壽文,等.地震前兆數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)[J].地震,2010,30(2):144-148.
[8]Jason Price.Oracle database 10g SQL master SQL and PL/SQL[M].北京:清華大學(xué)出版社,2005.
[9]Sam R.Alapati,鐘鳴.Oracle 10g數(shù)據(jù)庫(kù)管理藝術(shù)[M].北京:人民郵電出版社,2007.
[10]王建國(guó),姚會(huì)琴,高遜,等.天 津市地震前兆臺(tái)網(wǎng)的運(yùn)行監(jiān)控與維護(hù)管理[J].大地測(cè)量與地球動(dòng)力學(xué),2010, 30 (1): 114-146.
[11]周渝霞.Oracle數(shù)據(jù)庫(kù)中有關(guān)表空間設(shè)計(jì)管理方法[J].微計(jì)算機(jī)應(yīng)用,2003,25(3):220-222.
[12]江楠.淺析ORACLE數(shù)據(jù)庫(kù)安全策略和方法[J].中國(guó)電子商務(wù), 2012,19(2):51-51.
[13]Sam R.Alapati.Expert Oracle Database 10g Administration[M].北京:人民郵電出版社,2007.
[14]孫鴻雁,辛月提,單德華,等.遼寧省地震前兆臺(tái)網(wǎng)的運(yùn)行、管理模式及常見(jiàn)問(wèn)題處置方法[J].東北地震研究, 2009, 25 (4): 49-51.
[15]袁燕妮,盧婷,張曉明,等.四川省地震局 “十五”地震前兆數(shù)據(jù)庫(kù)維護(hù)[J].四川地震,2011,3:23-26.