郭林旺 胡玉良
1)中國山西 041000 臨汾中心地震臺(tái)
2)中國太原 030021 山西省地震局
3)中國山西 030025太原大陸裂谷動(dòng)力學(xué)國家野外科學(xué)觀測(cè)研究站
地震前兆臺(tái)網(wǎng)承擔(dān)著前兆觀測(cè)數(shù)據(jù)的匯集、處理、存儲(chǔ)、報(bào)送與歸檔任務(wù)?,F(xiàn)有地震前兆技術(shù)系統(tǒng)主要包含Suse linux操作系統(tǒng)、Oracle數(shù)據(jù)庫、中國地震前兆臺(tái)網(wǎng)數(shù)據(jù)管理系統(tǒng)等軟件,分別部署在1臺(tái)或者數(shù)臺(tái)服務(wù)器上。在日常系統(tǒng)管理當(dāng)中,經(jīng)常需要通過人工方式采用命令方式進(jìn)行對(duì)管理系統(tǒng)進(jìn)行啟動(dòng)或者停止操作(王建國等,2010);當(dāng)需冷備份數(shù)據(jù)庫時(shí),需要按照步驟輸入一系列命令進(jìn)行操作才能實(shí)現(xiàn);當(dāng)技術(shù)系統(tǒng)異常時(shí),需要通過命令方式停止管理系統(tǒng)后再啟動(dòng)。可見,日常技術(shù)系統(tǒng)運(yùn)行維護(hù)管理模式存在一些缺陷,如:操作復(fù)雜、效率較低、容易出錯(cuò)等,有必要設(shè)計(jì)地震前兆技術(shù)系統(tǒng)自動(dòng)化管理方案用于日常工作,提高系統(tǒng)管理的自動(dòng)化水平。
地震前兆技術(shù)系統(tǒng)自動(dòng)化管理方案借助shell腳本、crontab命令和SharpSSH組件,實(shí)現(xiàn)管理系統(tǒng)和數(shù)據(jù)庫自啟動(dòng)、Oracle數(shù)據(jù)庫定時(shí)冷備份和管理系統(tǒng)遠(yuǎn)程啟動(dòng)及停止等功能。
該設(shè)計(jì)方案包含兩部分:①服務(wù)端。地震前兆技術(shù)系統(tǒng)操作系統(tǒng)采用Suse Linux enterprise server操作系統(tǒng),數(shù)據(jù)庫采用 Oracle 10g。在服務(wù)端執(zhí)行3個(gè)Shell腳本,分別用于實(shí)現(xiàn)管理系統(tǒng)和數(shù)據(jù)庫自啟動(dòng)、Oracle數(shù)據(jù)庫啟動(dòng)、Oracle數(shù)據(jù)庫冷備份等;②客戶端。采用Windows 7操作系統(tǒng)Microsoft Visual Studio 2010開發(fā)環(huán)境,引入SharpSSH開源組件,采用C#語言編寫代碼,實(shí)現(xiàn)自動(dòng)登錄地震前兆技術(shù)系統(tǒng),遠(yuǎn)程執(zhí)行服務(wù)端Linux命令,實(shí)現(xiàn)啟動(dòng)和停止管理地震前兆技術(shù)系統(tǒng)。
使用SSH軟件,以root用戶登錄地震前兆技術(shù)系統(tǒng)服務(wù)器,創(chuàng)建文件夾testShell,然后在文件夾下編寫腳本startoracle.sh可實(shí)現(xiàn)數(shù)據(jù)庫啟動(dòng)(陳傳華等,2010)。
中國地震前兆臺(tái)網(wǎng)數(shù)據(jù)管理系統(tǒng)啟動(dòng)腳本run.sh位于服務(wù)器根目錄install文件夾下,執(zhí)行此腳本即可啟動(dòng)管理系統(tǒng)。
為了在Suse Linux系統(tǒng)下完成數(shù)據(jù)庫及管理系統(tǒng)的啟動(dòng),需在/etc/init.d/新建腳本startrun,腳本內(nèi)容如下
冷備份數(shù)據(jù)庫的流程是:停止管理系統(tǒng)—停止數(shù)據(jù)庫—壓縮數(shù)據(jù)庫文件—啟動(dòng)數(shù)據(jù)庫—啟動(dòng)管理系統(tǒng)。編寫的數(shù)據(jù)庫冷備份腳本文件位于testShell文件夾下,名稱backoracle.sh,腳本核心命令是tar cvfzpP /opt/oraclebak$DATE.tar.gz /opt/oracle/oradata(胡玉良等,2013),用于實(shí)現(xiàn)壓縮數(shù)據(jù)庫文件。
以每周二16∶40自動(dòng)冷備份數(shù)據(jù)庫為例,按以下步驟編輯crontab,定時(shí)任務(wù)即可實(shí)現(xiàn):①以root身份登錄命令行;②輸入crontab –e;③按下a鍵進(jìn)入編輯模式;④輸入40 16* * 1/testShell/backoracle.sh;⑤按下ctrl+c;⑥輸入:wq;⑦輸入crontab /sbin/service cron restart。
在Windows 7操作系統(tǒng)vs2010開發(fā)環(huán)境下,采用遠(yuǎn)程口令方式登錄地震前兆技術(shù)系統(tǒng),遠(yuǎn)程執(zhí)行相關(guān)shell腳本,即可實(shí)現(xiàn)管理系統(tǒng)啟動(dòng)和停止,管理系統(tǒng)遠(yuǎn)程管理軟件流程見圖1。
以啟動(dòng)管理系統(tǒng)為例,借助SharpSSH組件,在vs2010開發(fā)環(huán)境下,采用C#語言實(shí)現(xiàn)SSH命令的發(fā)送功能。在SSH命令行下輸入source /install/run.sh,核心程序?yàn)?/p>
圖1 軟件流程Fig.1 Software flow diagram
通過調(diào)用ssh_conn函數(shù),可向指定的Linux服務(wù)器發(fā)送SSH命令,實(shí)現(xiàn)遠(yuǎn)程管理。
管理系統(tǒng)遠(yuǎn)程管理軟件采用控制臺(tái)方式對(duì)地震前兆技術(shù)系統(tǒng)進(jìn)行管理,成功登錄服務(wù)器后,通過輸入相應(yīng)的數(shù)字選項(xiàng),即可實(shí)現(xiàn)地震前兆技術(shù)系統(tǒng)的啟動(dòng)和停止。當(dāng)遇到簡(jiǎn)單的技術(shù)系統(tǒng)異常(如管理系統(tǒng)運(yùn)行緩慢、數(shù)據(jù)采集用時(shí)過長和數(shù)據(jù)交換緩慢等)時(shí),即可使用該軟件對(duì)管理系統(tǒng)進(jìn)行啟動(dòng)或停止,軟件界面見圖2。
地震前兆技術(shù)系統(tǒng)自動(dòng)化管理方案緊密結(jié)合地震前兆臺(tái)網(wǎng)系統(tǒng)管理需求,針對(duì)技術(shù)系統(tǒng)運(yùn)行維護(hù)管理中存在的問題,設(shè)計(jì)并實(shí)現(xiàn)相關(guān)功能,減輕了系統(tǒng)運(yùn)行管理對(duì)專業(yè)人員的依賴,提高了系統(tǒng)管理自動(dòng)化水平,在山西地震前兆臺(tái)網(wǎng)中心應(yīng)用以來,效果良好,對(duì)山西地震前兆臺(tái)網(wǎng)技術(shù)系統(tǒng)穩(wěn)定、可靠、高效的運(yùn)行提供了保障。自動(dòng)冷備份后數(shù)據(jù)庫文件見圖3。
圖2 軟件界面Fig.2 Software Interface
圖3 自動(dòng)冷備份后的數(shù)據(jù)庫文件Fig.3 The database backup automaticly
地震前兆技術(shù)系統(tǒng)自動(dòng)化管理設(shè)計(jì)為實(shí)現(xiàn)系統(tǒng)管理自動(dòng)化提供了較好的解決方案,在此基礎(chǔ)上,今后可利用Sharpssh組件其他功能,實(shí)現(xiàn)服務(wù)器硬件參數(shù)監(jiān)控、Oracle數(shù)據(jù)庫備份文件導(dǎo)出、Oracle數(shù)據(jù)庫恢復(fù)、Oracle數(shù)據(jù)庫表空間查詢及擴(kuò)充、儀器數(shù)據(jù)文件上傳等,從而實(shí)現(xiàn)地震觀測(cè)系統(tǒng)運(yùn)行的高效管理。
陳傳華,曲保安,朱榮,等.前兆管理系統(tǒng)數(shù)據(jù)庫冷備份及恢復(fù)方法實(shí)現(xiàn)[J].地震地磁觀測(cè)與研究,2010,31(4):135-139.
胡玉良,程冬焱,穆慧敏,王鵬偉.山西地震前兆臺(tái)網(wǎng)系統(tǒng)運(yùn)行維護(hù)[J].山西地震,2013,(3):44-48.
王建國,姚會(huì)琴,高遜.天津市地震前兆臺(tái)網(wǎng)的運(yùn)行監(jiān)控與維護(hù)管理[J].大地測(cè)量與地球動(dòng)力學(xué),2010,30(A01):111-115.