楊振鵬,孫素梅,趙 倩,楊群山,王承偉,陳繼偉
(遼寧省地震局,遼寧 沈陽 110034)
目前我局前兆臺網中心前兆服務器3臺,節點前兆服務器14臺,均安裝了ORACLE數據庫。前兆觀測儀器通過網線直接連接到節點的信息網絡上,在節點上采用ORACLE數據庫管理系統建設了前兆數據庫系統,管理數字化前兆原始觀測數據、數字化前兆預處理數據、模擬人工前兆觀測數據,以及經常規數據處理和專業數據處理產出的各種產品數據等,觀測數據通過數據庫同步方式實現從臺站到區域中心再到國家中心的報送。
由于前兆臺網是一個觀測臺網,因此不斷產出的觀測數據存入數據庫中保存,為地震預報提供連續、可靠、快捷的數據服務。隨著臺網儀器布置密度、采樣率的不斷提高,對數據庫服務器存儲空間的需求也在加大。當發現數據庫讀寫速度下降時,應考慮擴展存儲數據文件,本文介紹的是一種維護數據庫的方法,就是通過擴展表空間來擴大存儲容量。以營口地震臺為例,通過“營口臺前兆管理系統”、“資源監控”、“存儲資源”觀察到表空間顯示已用6269.75M,占96.46%,需要維護,如圖1所示。
首先介紹工具OEM,中文名稱是企業管理器,全稱Oracle Enterprise Manager,是Oracle10g的數據庫控制和管理數據庫的主要工具,采用java編寫而成,具有Web界面風格,操作方便簡單。
OEM工具可以執行一些管理任務,如啟動和關閉數據庫,創建模式對象(表空間、表、索引)、管理用戶安全、備份和恢復數據庫、導入和導出數據,最常用的是查看數據庫實例的性能及狀態信息。OEM的功能較多,使用也較方便,我們這里主要利用EM的登錄和使用功能,啟動OEM控制臺,執行命令如下:

圖1 營口地震臺現有表空間容量圖Fig.1 Yingkou seismic station space capacity of the existing tables

因為EM是一個web應用,所以在IE瀏覽器上就可以使用,在IE地址欄中輸入臺站IP地址,如http://10.21.**.11:1158/em。這里考慮到臺站數據庫安全問題,隱藏一部分IP地址,輸入用戶名和密碼。
在首頁中,可以查看當前數據庫的一些基本信息和運行情況,里面記錄一些oracle運行過程中的一些警告日志。管理人員根據警告日志來查看當前數據庫運行過程中出現的問題,有助于數據庫優化和問題的解決。
注意管理員Administration選項中的Storage,里面的Tablespaces是表空間。點擊Tablespaces,進入Tablespaces頁面,如圖2所示。
根據這個頁面大致了解當前數據庫的各表空間的存儲情況,如QZDATA用戶當前分配了6500M的表空間,已經使用了6,269M的空間,占96.5%,剩余231M可用。我們要擴展的就是QZDATA這個文件。

圖3 數據庫表空間概況Fig.3 Table space of the database
按照頁面的指導步驟,最后在擴展頁面file Name中填寫新的數據文件名稱qzdata,文件位置 默 認 為/opt/oracle/oradata/PDBQZ目 錄 下,填入新的增量為1000MB,擴展表空間完成。如圖3所示。
最后一步是關閉EM,由于EM是Oracle的一個控制與管理的工具,使用時占用一定的服務器資源,因此完成的時候及時關閉EM。關閉的命令:emctl stop dbconsole。
前面介紹了正常情況下通過EM管理表空間的實例,實際情況中EM可能存在故障,對常見問題總結如下:
(1)Oracle數據庫控制臺啟動后,看到數據庫實例無信息、監聽程序狀態為不可用或者到實例的代理連接狀態為不可用。
分析認為,此時服務剛啟動,稍后再刷新,此時可能會看到:
①數據庫實例有相關信息;
②監聽程序有信息但狀態為關閉;
③到實例的代理連接狀態為失敗,并提示ORA-12541:TNS:無監聽程序(DBD ERROR:OCIServerAttach)。
原因可能是監聽服務沒啟動。
(2)IO異常:The Network Adapter could not establish the connection
分析認為,此種情況改變了IP或計算機名的情況下出現,一般是監聽服務有問題。解決辦法:
第一步,用emca-config dbcontrol db命令從新配置一下EM的database control;
第二步:在ie中輸入http://oracl_hostname:5500/EM/(是5500端口,而不是1158端口)看看是否運行正常,如不正常,接著按問題③的解決方法進行處理。
(3)對于多網卡,或改變IP的情況,控制臺出現如下情況:
①監聽程序TNS-12541:TNS:無監聽程序;
②到實例的代理連接ORA-12541:TNS:無監聽程序(DBD ERROR:OCIServerAttach)。
解決辦法:修改Network Configuration File:%ORACLE_HOME%/network/admin/下的tnsnames.ora和listener.ora,把其中的HOST=后的主機名或IP改為當前的主機名或IP,并重新啟動監聽服務。之后刷新控制臺頁面,會看到監聽程序已經啟動,但可能會出現下面的提示“ORA-12505:TNS:監聽程序當前無法識別連接描述符中所給出的SID(DBD ERROR:OCIServerAttach)”,多刷新幾次即可看到到實例的代理連接成功的信息。
(4)java.lang.Exception:IOException in sending Request:Connection refused:connect
分析認為,控制臺上刷新的時候常見,原因不詳,但并不影響數據庫運行。
(5)Listener refused the connection with the following error:ORA-12514,TNS:listener does not currently know of service requested in connect descriptor The Connection descriptor used by the client was:(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=LHL)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))
分析認為可能是數據庫實例沒有啟動,解決辦法:查看數據庫實例服務是否啟動。對于多網卡機器上安裝Oracle10g時,最好先關閉網絡然后安裝。
數據庫的維護包含很多技術工作,擴展數據庫表空間只是維護數據庫的一部分,及時維護給數據入庫帶來穩定連續,安全穩定的運行就是前兆數據產出的保證。本文僅是遼寧省前兆臺網維護中一個很小的實例,通過EM系統管理控制臺修改營口地震臺前兆服務器的表空間,并對EM可能出現的故障進行了總結,為以后工作提供方便。
[1]張朝明.ORACLE入門很簡單[M].北京:清華大學出版社,2011:47-49;50-52.
[2]秦靖,劉存勇,等.Oracle從入門到精通[M].北京:機械工業出版社,2011:340-358.
[3]盧群,宋彥云.遼寧省數字地震監測系統建設[M].北京:地震出版社,214-216;219-220.