葉選成
摘要:航行情報動態信息處理系統(簡稱CNMS系統)投入運行時間較早,硬件設備已明顯老化,跟不上業務發展需求,特進行硬件及數據庫軟件的升級工作,在此過程中遇到一些問題,并將其一一解決。
關鍵詞:CNMS系統;升級;數據遷移導入;故障解決;應急
溫州空管站航行情報動態信息處理系統(簡稱CNMS系統)主要用于接收、處理和發布國內外航行通告、雪情通告及其他電報,并向航空公司、空中交通管制部門和其他用戶提供飛行前資料公告和航行通告的查詢服務。由于該系統運行年限已久,設備老化,硬件故障頻發,同時隨著業務量不斷增大,舊系統也不能滿足正常業務需求。為了更好的滿足飛行服務的要求,決定對該系統進行升級改造,通過此次改造,主要升級了硬件部分,包括服務器、交換機;增加了路由器、防火墻、光纖磁盤陳列、存儲與備份一體化設備;增強了系統防護功能,安裝了網絡殺毒軟件。采用了新的操作系統(win2008 R2 64位)和數據庫軟件(ORACLE 11G 64位),啟用了win2008 sever 和oracle 的群集系統,使該系統達到了主服務器故障時能自動切換的功能。此外,還安裝了機房綜合網管系統(北塔BTNM5.0),大大增強了系統綜合管理能力。
一、系統網絡拓撲結構圖
二、系統功能實現簡介
(一)集群部署
(1)分別設置主備服務器ip地址,DNS首選是對方IP,備用是自己IP;設置心跳IP地址為192.168.X.1、192.168.X.2。
(2)在主備服務器上分別添加共享盤Y:和仲裁盤Z:。
(3)用dcpromo命令將主備服務器升級為域控制器,域名為wzkg.com。
(4)用 win 2008 server r2 的集群管理器在主服務器上創建新集群,需要域名、集群名、仲裁盤符Z:以及集群服務IP地址;完成后需將集群組里的磁盤Y:更改到集群組,并把原來的組刪除。在備用服務器上用集群管理器添加節點(備用服務器計算機名)到集群;完成后需將集群組里的磁盤Y:更改到集群組,并把原來的組刪除。
(二)Oracle數據庫安裝
(1)安裝Oracle, 主目錄位置為:d:\\oracle\\product\\11.2.0\\db_1,取消勾選“創建啟動數據庫”。
(2)用數據庫配置向導配置數據庫(全局數據庫名:cnms,SID 名:cnms),所有數據庫文件使用公共位置,數據庫文件位置:y:\\oradata,快速恢復區:y:\\oradata1\\flash_recovery_flash。
(3)創建監聽程序,并配置監聽;數據庫服務:修改全局數據庫名,cnms;oracle 主目錄:d:\\oracle\\product\\10.2.0\\db_1,SID 名:cnms。
(三)數據庫創建及導入
1.創建表空間
c:>sqlplus / as sysdba
sql>create tablespace NOTAM_MAINdatafile 'R:\\Data\\orcl\\NOTAM_MAIN01.dbf'size 10Gautoextend on next 1024M;
sql>create tablespace NOTAM_IMG_VOIdatafile 'R:\\Data\\orcl\\NOTAM_IMG_VOI01.dbf'size 10Gautoextend on next 1024M;
sql>create temporary tablespace AIPS_PD_TMPtempfile 'R:\\Data\\orcl\\AIPS_PD_TMP.dbf'size 5Gautoextend on next 1024M maxsize 20G;
2.創建用戶
sql>create user notam_admin identified by notam_admindefault tablespacenotam_maintemporary tablespaceaips_pd_tmpaccount unlock;
sql>grant dba,connect,resource to notam_admin;
3.手工導入
C:>imp system/manager@orcl file='D:\\0623\\SUN.dmp' fromuser=notam_admintouser=notam_admin log='D:\\0623\\imp.log'.
三、升級過程中出現的問題及解決方法
問題1:oracle8.17數據無法導入oracle 11g。
oracle8.1.7數據庫dmp文件導入到oracle11g數據庫時出現 ORA12899 錯誤,在日志文件里,開始導入時候有這樣一個提示:
“已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的導入IMP00019: 由于 ORACLE 錯誤 12899 而拒絕行IMP00003: 遇到 ORACLE 錯誤 12899ORA12899: 列 "NOTAM_ADMIN"."APPLICATION_FUN"."APP_NAME" 的值太大 (實際值: 34, 最大值: 30)”。
此錯誤表示ORACLE字符集不匹配,源dmp文件字符集是ZHS16GBK。
解決方法:
使用如下命令修訂字符集即可:
SQL> conn /as sysdba;(連接數據庫)
SQL> shutdown immediate; (關閉數據庫)
SQL> startup mount ;(重新加載數據庫)
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> alter database open; (此時注意要先關閉實例)
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
SQL> select * from v$nls_parameters; (重啟檢查是否更改完成)
SQL> shutdown immediate;
SQL> startup
問題2:應用軟件(v3.4)無法連接數據庫的問題。
航行情報系統的應用軟件一共有6個組件,一般只需安裝系統接口單元、電報分揀與處理單元、信息處理系統、報警程序和備份數據查詢,這些程序在win2008 server R2系統上無法正常連接數據庫,出現“oracle library OCI.DLL or ORA803.DLL could not be loaded”錯誤告警,無法加載oci.dll或ora803.dll文件”告警。此錯誤是由于服務器上安裝的是64位的數據庫軟件,而這些組件是32位的應用系統,不能調用64位的oci.dll。
解決方法:將電報分揀與處理程序、系統接口單元、航行動態信息處理單元、ORCAL 11g client for win32客戶端單獨安裝在一臺終端機(win7 professional 64)上,遠程訪問數據庫。(注意orcal11g客戶端必須安裝32位的客戶端,且用管理員用戶安裝)
問題3:自動備份軟件無法連接數據庫問題。
情況1:在客戶端上(win7 professional 64,oracle 11g client for windows 32 bit)安裝綜合自動備份軟件,運行時會出現“未找到ORACLE數據庫的命令集,這將導致數據庫備份和恢復無法正常運行”,需修訂環境變量,將路徑指向客戶端安裝目錄,即可解決此錯誤。
解決方法:在注冊表中建立path變量,并將其指向oracle客戶端安裝目錄
(1)運行→regedit(進入注冊表);
(2)在HKEY_LOCAL_MACHINE中選擇SOFTWARE下的WOW6432NODE\\
ORACLE下;
(3)新建ALL_HOMES選項,在ALL_HOMES選項下新建ID0選項;
(4)在IDO選項中新建字符串值PATH,對應的數值數據為orcal 客戶端安裝目錄;
數值名稱:PATH,
數值數據:F:\\app\\user\\product\\11.2.0\\client_1(orcal 11g 32 bit客戶端安裝路徑)
情況2:在客戶端上(win7 professional 64,oracle 11g client for windows 64 bit)安裝綜合自動備份軟件,運行時無反應,運行狀態顯示連接失敗,在日志文件里發現“連接失敗,oracle library OCI.DLL or ORA803.DLL could not be loaded”,此錯誤的原因是終端機上安裝了64位的oracle客戶端,而此應用是32位的應用軟件,不能調用64位的oci.dll。
解決辦法:就是在客戶端安裝 oracle 11g client for windows 32 bit。
四、系統應急處理
(1)服務器為雙機熱備,如主用服務器故障,另一臺備用服務器會自動接管;
(2)H3C交換機為雙機熱備,如主用交換機故障,另一臺交換機會自動接管;
(3)ORACLE數據庫安裝在IBM磁盤陳列上,如博科交換機或IBM磁盤陳列故障,會使系統癱瘓,立即啟用應急服務器,將最新備份的數據庫文件導入至應急服務器上的ORACLE數據庫,步驟如下:
c:>sqlplus / as sysdba
sql>drop user notam_admin cascade;(刪除用戶)
sql>create user notam_admin identified by notam_admin default tablespacenotam_main temporary tablespaceaips_pd_tmp account unlock;(建立用戶)
sql>grant connect,resource,dba to notam_admin;(用戶授權)
sql> exit
c:>imp notam_admin/notam_admin@cnms log='D:\\0720\\imptest.log' file='D:\\0720\\test.dmp' from user=notam_admin to user=notam_admin(備份數據導入)
更改檢索終端和報文接收終端上的服務名,指向該機就可。
(4)報文接收終端或AFTN線路故障,可用檢索終端或備用AFTN線路接收報文并處理入庫:開啟報文接收接口單元,檢查通訊參數和本地參數正確即可。
(5)檢索終端、電流環、打印機等設備故障時,可更換上備用設備。
五、系統未來功能拓展
(1)增加web服務器,使機場用戶或航空公司能以網頁的方式訪問該系統數據庫,獲取相關的航行情報資料。
(2)系統已預裝了路由器和防火墻,將來通過ATM線路,與華東航行情報系統連網,相關資料可以通過網絡上傳下發,大大增加資料交換速度,特別在本地服務器故障時也能快速的獲取航行情報資料,能更好地為航空用戶服務。
參考文獻:[1]航行情報動態信息處理系統維護手冊.
[2]循序漸進oracle:數據庫管理、優化與備份.人民郵電出版社,ISBN9787115253170.