“军卫一号”数据库字符集升级
2013-07-31庄绍燕杨保卫
庄绍燕,杨保卫
中国人民解放军第一八零医院信息科,福建 泉州 362000
“军卫一号”数据库字符集升级
庄绍燕,杨保卫
中国人民解放军第一八零医院信息科,福建 泉州 362000
本文分析了“军卫一号”数据库的US7ASCII字符集存在的不足,同时介绍了我院“军卫一号”数据库升级字符集的总体设计方案和具体实施过程。
军卫一号信息系统;Oracle数据库;ASCII编码;GBK编码
“军 卫 一号 ” 系 统 自 1995 年 先 后 在 200 所军 队 医院和 100 多家地方医院成功运行。最早部署数据库时只支持US7ASCII字符集。随着医院数字化的进一步发展,麻醉系统、心电系统、重症监护系统、移动护士工作站、图象归档与传输系统(PACS)、临床检验信息系统(LIS)等逐步加入“军字一号”系统。同时,随着网络和区域医疗的发展,数据库间的通信已成为一种趋势[1-3]。
“军卫一号”后台 Oracle 数据库最早版本为 Oracle7.3,支持的编码方案是 ASCII编码。据不完全统计,目前全军92% 的部队医院和 45% 的地方医院仍然使用 ASCII字符编码的 Oracle 数据库[5-6]。由于 ASCII支持的字符数量非常有限,因此随后又出现很多的编码方案。随着数字化医疗的进步,支持 ASCII字符集的数据库在使用上出现越来越多的弊端。GBK 编码是 1995 年发布的指导性规范编码方案[7]。因此,数据库字符集升级迫在眉睫。本文就我院“军卫一号”数据库字符集升级的一些经验与大家分享。
1 US7ASCII字符集的弊端
近几年来新构建的数据库基本以国家标准的 GBK 字符集为基础,原来的 US7ASCII字符集已经逐渐暴露出许多弊端:
(1)生僻字读写困难。有的患者姓名为生僻字,在“军卫一号”数据库系统中无法存取,只能存储相近字并辅以文字说明,使数据库的唯一性和完整性管理极大不便。
(2)系统间数据通信问题。近些年迅速发展的医保、农 保、区 域 卫 生医 疗 系统 皆 适 用 GBK 数 据库 字 符 集。“军卫一号”内的相关系统与这些系统程序互相通信时,无法通过系统默认的字符集直接通信。多数单位使用时,要通过文本文件交互的方式解决,降低了通信的效率。
(3)客户机配置字符集困难。医院内部存在多种不同字符集的数据库系统。当客户机同时访问医院内部的不同服务器系统时,一台客户机同一时刻只能配置一种字符集连接模式,使客户机配置字符集难度增加。
(4)影响 Web 浏览。近些年,数据库 Web 浏览访问成为趋势。但基于“军卫一号”数据库开发基于 JAVA 的Web 浏览系统,应用 ASCII字符集转换难度大。
(5)部署客户机繁琐。部署客户机时,默认的字符集为 GBK;访问“军卫一号”数据库时,需要手动设置为ASCII,非常繁琐。
可见,ASCII字符集的使用已经成了制约医院信息化发展的绊脚石。大多数医院虽然有这方面的需求,但总是害怕数据库升级失败导致医院数据库停止运行而没有对文字集进行升级。以下对我院数据库字符集升级进行总结性介绍。
2 我院数据库字符集升级方案
2.1 总体方案
根据 Oracle 官方提供的升级方案,对数据库字符集进行升级,虽然过程比较简单,且升级的时间基本可以控制在 30 min 以内,但还是存在一定的风险。如果升级不当,则会造成数据库的永久损坏。因此,对医院的数据库字符集进行升级时需制定一个总体方案。该方案可以简单描述为备份、测试、制定应急预案。确定升级前,应该做大量测试和字符集升级失败时的应急预案工作,并对数据库进行一次冷备份。测试主要针对客户端一些较早研发的软件,并要在升级后的数据库上测试各个软件升级后的使用情况。
2.2 HIS服务器IP地址修改或DNS名称修改
字符集升级时,需要考虑医院的 HIS 客户端访问数据库服务器的方式,如果是通过DNS访问的,则建议更换数据库服务器 DNS 名称和 IP 地址。如果是通过 IP 地址访问的,则建议更换服务器 IP 地址。在升级数据库服务器前 3 h 更改客户端 IP 地址。HIS 服务器 IP 地址参数设置,见表 1。
表1 HIS服务器IP地址参数设置
服务器 IP 地址的更改是整个升级过程中最为关键的一步,有着至关重要的意义。主要是因为医院各信息系统连接数据库服务器的客户机数量众多、且分布比较零散。数据库升级后,一定要做到宁可有部分客户端不能访问数据库也不能存在部分客户端通过错误的字符集方式访问数据库。一旦有没有修改字符集的客户端登录数据库,会造成数据库的数据不一致,给将来相关方案的制定造成困难。
2.3 HIS数据库字符集升级
根据 Oracle 官方提供的文档,通过自行整理后,数据库升级步骤如下:
(1)关闭数据库,并进行数据库冷备。
(2)在服务器端使用 SQLPLUS 工具做如下修改 :
(3)修改服务器端注册表 :NLS_LANG=simplified chinese_ china.zhs16gbk。
(4)在服务器端查看字符集:SQL>select userenv(‘language’)from dual。
2.4 客户端服务器IP地址、字符集参数修改
客户端访问数据库服务器,通常需要设置4个比较重要的参数 :① NLS_LANG ;② 服务器 IP 地址 ;③ 服务名 ;④ 端口号。
为保证升级成功,在升级时服务器修改了 IP 地址,避免客户端错误的字符集连接数据库服务器。通过修改ORACLE_HOME$db_1 etworkADMINTNSNAME.ORA 文件实现。具体修改说明如下:
紧接着修改注册表中 NLS_LANG 按键的参数值 :
HKEY_LOCAL_MACHINESOFTWAREORACLE HOME0NLS_LANG=simplified_chinese_china.zhs16gbk。
在修改客户机连接参数时,一定要同时修改服务器 IP 地址和注册表字符集参数。
3 结束语
修改 HIS 数据库服务器的字符集,对许多使用“军卫一号”系统的医院是一件头疼的事。其实,到 Oracle8 版本后,数据库字符集升级并不是一件难事。升级成败的关键不在于数据库服务器升级本身,而在于如何设计整个升级方案,以确保整个升级过程平稳、顺利。
[1] 李怀庆,张文东.基于数据仓库的医院信息系统概述[J].中国医疗设备,2008,23(1):53-55.
[2] 杨红玲,师恩洲.影响HIS的临床病区代码问题及解决方案[J].中国医疗设备,2012,27(5):44-46.
[3] 余元龙,王德坤,杨勇.医院信息化建设的几点认识[J].现代医院,2008,(10):4-5.
[4] 樊同科,陶紫琼.数据仓库技术及其在医院信息系统中的应用[J].电脑知识与技术,2009,(9):2051-2052.
[5] 张志彬,白剑坤.HIS系统客户端软件自动更新实现[J].医疗装备,2009,(3):27-28.
[6] 王明实.医院信息系统[M].北京:科学出版社,2008:89-91.
[7] 国家标准总局.中华人民共和国国家标准信息交换用汉字编码字符集基本集[S].北京:技术标准出版社,1981:32-36.
Character Set Promotion of “No.1 Military Medical Project” Database
ZHUANG Shao-yan, YANG Bao-wei
Department of Information, The 180thHospital of PLA, Quanzhou Fujian 362000, China
This paper dicusses the deficiencies of US7ASCII character set of “No.1 Military Medical Project” database, and introduces the total design scheme and specific implementation process of the character set promotion of “No.1 Military Medical Project” database in our hospital.
No.1 Military Medical Project; Oracle database; ASCII code; GBK code
TP311.53
A
10.3969/j.issn.1674-1633.2013.11.018
1674-1633(2013)11-0054-02
2013-05-14
2013-06-11
作者邮箱:3817118@qq.com