叶选成
摘要:航行情报动态信息处理系统(简称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.