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