APP下载

“军卫一号”数据库系统由Oracle8i手工升级至Oracle10g的方法

2010-10-09孟庆崧

中国医疗设备 2010年2期
关键词:数据库系统手工升级

孟庆崧

(济南军区总医院 资源共享协作办公室,山东 济南 250031)

“军卫一号”数据库系统由Oracle8i手工升级至Oracle10g的方法

孟庆崧

(济南军区总医院 资源共享协作办公室,山东 济南 250031)

利用Oracle公司提供的升级脚本,将“军卫一号”数据库系统由Oracle8i手工升级至Oracle10g,该方法升级速度快,简便易行,为“军卫一号”系统的深入应用奠定了良好的基础。

“军卫一号”;Oracle数据库;HIS

Abstract:This paper provides a method for upgrading the database system of No.1 military medical project from Oracle8i to Oracle10g by using the upgrading script provided by Oracle corporation.The method provides a quick way for upgrading and is easy to use.It makes a good foundation for the deep application of No.1 military medical project.

Key words:"No.1 military medical project";Oracle database;HIS

随着我院信息化建设的深入发展,地方医疗保险系统、LIS、PACS等系统的陆续投入使用,我院“军卫一号”数据库系统的维护和管理面临新的挑战:

(1)客户端的增多对后台数据库的性能提出了更高的要求,需要对内存参数进行恰当的调整;

(2)用户一旦对数据进行了误操作,如误删除某条记录等,需要立即进行恢复;

(3)新上线的社会医疗保险系统采用ZHS16GBK中文字符集,而“军卫一号”数据库系统采用US7ASCII英文字符集,虽然通过编程的方法可以进行字符集转换,但程序使用过程中仍经常会出现乱码的情况,为了长远的需要,最好将“军卫一号”数据库的字符集修改为简体中文字符集。

我院“军卫一号”数据库系统为Oracle8.1.7.4,操作系统为Windows Server 2000,对于上述问题不是不能解决,但需要对Oracle8i的知识有深入的了解。目前,Oralce10g的推出已有一段时间,业界有关Oracle10g的应用已日益成熟,且Oralce10g提供了许多新的特性,如自动化实例调整、自动化内存调整、闪回(Flashback)以及修改字符集的内部指令等,这些新特性完全可以应对我院“军卫一号”数据库管理所面临的新挑战。因此,有必要对我院“军卫一号”数据库系统进行升级。

1 升级方法概述

将Oracle8i升级为Oracle10g的方法很多,利用Oracle的Exp/Imp以及Toad工具实现数据迁移[1];采用建立数据库链接的方法实现数据迁移[2]。这两种方法虽然最终都能够实现数据库的升级,但由于“军卫一号”系统数据量很大,数据迁移耗费的时间很长,从而造成系统切换的时间很长。

除上述方法以外,Oracle也提供了其它升级途径,比如采用Database Upgrade Assistant升级工具,以及利用升级脚本进行手工升级等。采用手工升级可以明确的察觉升级过程中出现的错误,以采取应对措施,便于对升级过程进行有效的控制,而且升级速度较前面介绍的数据迁移的方法要快。因此,本文就手工升级方法进行详细的介绍。

需要注意的是,对“军卫一号”数据库系统进行升级是一个复杂的过程,它关系着整个医院信息系统的正常运行。因此,有必要在备用服务器中对升级过程进行反复实验,待实验成功后,才可对生产数据库进行升级。

2 升级的具体步骤

目标数据库版本为Oralce 10.2.0.1,以下简称为Oracle10g,现有数据库版本为Oracle 8.1.7.4,以下简称为Oracle8i。

(1)如果待升级数据库版本为Oracle 8.1.7.4,则略去此步,否则,安装待升级数据库对应的Patch,将待升级数据库先升级到Oralce 8.1.7.4,有关安装Patch的方法,请参考有关说明,此处不再赘述。

(2)在Windows Server 2000操作系统中创建一个新目录,在该目录下全新安装Oracle10g数据库,并且不安装任何启动数据库。

(3)将Oracle10g目录ORACLE_HOME/rdbms/admin下的utlu102i.sql文件拷贝出至另一目录,并切换至该目录,用数据库管理员身份登录Oracle8i数据库的SQL*Plus,执行该脚本(该脚本又称为升级前信息工具)并查看脚本的执行结果。

(4)备份原Oracle8i数据库。

(5)将原Oracle8i数据库中的参数文件、口令文件拷贝至Oracle10g数据库的相应目录下。拷贝参数文件后,将该参数文件重命名为initsid.ora。(在Oracle8i数据库中,参数文件名为init.ora,在Oracle10g数据库中,参数文件名为initsid. ora)。

(6)调整Oracle10g数据库中的参数文件initsid.ora,对照(3)步中升级前信息工具的执行结果,在initsid.ora文件中将该结果中标记为“Obsolete”的参数删除,将标记为“Deprecated”的参数的参数值进行调整,调整范围参考该结果中提供的参考值,并增加该结果中提示需增加的参数。同时参照该结果调整其它需要调整的方面,比如使某些小的回滚段离线,并创建一个更大的回滚段以便于升级过程中使用该回滚段等。

(7)在cmd(控制台命令行)下,关闭Oracle8i数据库,删除该数据库实例,并创建新的Oracle10g数据库实例。设“军卫一号”数据库系统的实例名为“orcl”,执行:

使用Oracle10g目录下的参数文件创建新的实例:

(8)在cmd下切换至Oracle10g的ORACLE_HOME/rdbms/ admin目录,启动Oracle10g的SQL*Plus,以数据库管理员(sysdba)身份连接至数据库,执行:

3 升级后的步骤

(1)安装Oracle10g中Web版的OEM(Oracle企业管理器),在cmd下执行:

(2)启动iSQL*Plus服务,在cmd下执行:

(3)将原“军卫一号”数据库采用的英文字符集AMERICAN_AMERICA.US7ASCII修改为简体中文字符集SIMPLIFIED CHINESE_CHINA.ZHS16GBK,启动Oracle10g的SQL*Plus,执行:

4 小结

本文介绍了将Oracle8i版本的“军卫一号”数据库手工升级为Oracle10g的方法。该方法的最大优点是升级速度快,缩短了新旧系统切换的时间。经过严密测试,最终数据库由Oracle 8.1.7.4成功升级为Oracle 10.2.0.1,并且将“军卫一号”数据库的字符集成功修改为简体中文字符集。系统升级后,运行平稳。

[1] 徐正雄,王玲,乔静,等.用Exp/Imp实现“军卫一号”从Oracle8i到Orade10g的升级[J].医疗卫生装备,2009,30(1):55-56.

[2] 夏洪斌,陈金雄,陈薇薇.“军卫一号”数据库从Oracle 8.17到Oracle 10g的升级实现[J].医疗卫生装备,2008,29(4):40-41.

[3] 刘志敏,等.利用数据库分布技术改善HIS的应用性能[J].中国医疗设备,2008(6):25-26.

[4] Kathy Rich,Viv Schupmann.Oracle Database Upgrade Guide 10g Release 2(10.2)[DB/OL].(2008-01-01)[2009-06-01].http:// download.oracle.com/docs/cd/B19306_01/server.102/b14238/ toc.htm.

[5] 盖国强.循序渐近Oracle[M].北京:人民邮电出版社,2007.

A Method of Manual Upgrading No.1 Military Medical Project Database from Oracle8i to Oracle10g

MENG Qing-song
(Resource Sharing Cooperation Office, General Hospita of Jinan Military Area,Jinan Shandong 250031,China)

TP392

A

10.3969/j.issn.1674-1633.2010.02.015

1674-1633(2010)02-0040-02

2009-06-24

作者邮箱:qing-song-zi-zai@163.com

猜你喜欢

数据库系统手工升级
小投入,大升级 Polk Audio Monitor XT系列
幸福,在“家门口”升级
Oracle数据库系统的性能优化研究
做手工
超萌的羊毛毡手工
回暖与升级
微细铣削工艺数据库系统设计与开发
江苏省ETC数据库系统改造升级方案探讨
手工DIY
自主阅读,快乐升级