论文部分内容阅读
【摘要】本文介绍我院HIS系统oracle数据库服务器出现部分用户无法登陆系统故障,通过认真分析故障原因,经改变连接模式、修改软件,用户进程恢复正常水平,故障排除,系统恢复正常运行。
【关键词】oracle数据库故障分析故障处理解决方案
[Abstract] In this paper, the hospital HIS system appear some users cannot login the oracle database server system failure, through careful analysis of the cause of the problem, after change the connection mode, modify the software, the user process back to normal level, troubleshooting, system back to normal operation.
[Keywords] Oracle DatabaseFailure analysisFault handlingsolution
一、前言
我院HIS(Hospital Information System)建于2009年,采用C/S构架,运行环境为Intel E7420八核双CPU、内存4G数据库服务器,操作系统windows2003server企业版,数据库系统oracle 10g标准版,终端应用为四台Intel E5405四核CPU、12G内存服务器,近期出现部分用户无法登陆系统,对我院业务工作造成较大影响,经过认真分析故障现象,找出故障原因,通过完善和改进系统和应用软件,解决了该问题,下文对故障进行详细分析。
二、系统故障分析
2.1故障现象
近期在我院就诊高峰期,部分用户反映在登录HIS系统时出现“无法连接数据库”的错误提示,但同时约有300多个用户仍能正常使用系统,能正常使用系统的用户都是原先一直在线的,而无法登陆系统的用户都是较晚登陆系统的。
2.2故障检查分析
经初步检查,无法登陆的用户计算机硬件和网络均无问题,初步确认为数据库系统或应用软件故障。在Windows事件查询器里可见“Unable to begin another thread”的提示,根据这个提示查找Oracle数据库故障手册,发现是Oracle的线程已经满了,不能再建新的线程,导致新用户无法再登录数据库。根据故障现象,首先去调整Oracle的PGA参数,增大线程数和调整线程分配内存,但问题没有根本得到解决,经分析主要原因是受32位Windows系统单线程最大2G内存的限制,于是我们将连接Oracle的连接模式由专用服务器模式改为共享模式,故障排除。在故障解决之后,我们对故障发生的原因进行认真分析,故障发生前我院日常约有300多台计算机同时登陆系统但没有超连接数的提示,通过查找Oracle的V$session线程表发现了在高峰期有多达300多个hospital用户登录的HIS软件线程,后与系统开发工程师联系,在故障发生前,开发工程师在系统上更新了一个“自动升级更新软件”的程序,用户在登录时都先检查有无新版本软件更新,程序在检查更新后没有自动关闭注销,释放连接,导致用户进程数翻倍增涨,工程师修改软件BUG后,用户进程恢复正常的水平。这个软件的BUG才是发生故障的主要原因。
三、解决方案
由于医院的业务是不断增长,随着业务的增长,访问数据库的用户和线程数量不断增长,为彻底解决问题,我们提出如下方案。
3.1升级操作系统
将目前在用的32位Windows Server升级为64位Windows系统,或者将数据库迁移到Linux操作系统,让单线程突破2G内存的限制;
3.2升级数据库系统
将标准版Oracle升级为企业版Oracle,利用Oracle RAC(real application clusters)技术,使用Oracle提供的集群软件和存储管理软件,将数据库系统由单节点改为双节点的Oracle集群系统,实现数据库系统多节点负载均衡,提供系统的高可用性,这样就可以解决由于业务量的增长导致的数据库线程增长引起的数据库性能问题。
四、结束语
作为医院计算机中心的工程师,不仅要求具备扎实的数据库基本功,而且对计算机网络也要有一定的基础,对出现过的数据库故障或其他问题的现象及解决法,认真记录、善于总结,尽可能缩短维修时间,把对医院信息化工作的影响降到最小。
参考文献
[1](美)凯特著,苏金国译.Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构(第2版)[M].北京:人民邮电出版社,2011.
[2]何明.从实践中学习Oracle数据库管理与维护(第2版)[M].北京:清华大学出版社,2009.
[3](美)Darl Kuhn(美)Sam R. Alapati(美)Bill Padfield著,卢涛译.Oracle索引技[M].北京:人民邮电出版社,2012.
[4]彭小斌,张文峰,林根深. ORACLE数据库并发访问控制机制及访问冲突的解决方法[J].中国医疗设备,2013(1)
[5]曹丽,刘刚.医院信息系统ORACLE数据库升级解决方案[J].医疗设备信息,2007(7).
【关键词】oracle数据库故障分析故障处理解决方案
[Abstract] In this paper, the hospital HIS system appear some users cannot login the oracle database server system failure, through careful analysis of the cause of the problem, after change the connection mode, modify the software, the user process back to normal level, troubleshooting, system back to normal operation.
[Keywords] Oracle DatabaseFailure analysisFault handlingsolution
一、前言
我院HIS(Hospital Information System)建于2009年,采用C/S构架,运行环境为Intel E7420八核双CPU、内存4G数据库服务器,操作系统windows2003server企业版,数据库系统oracle 10g标准版,终端应用为四台Intel E5405四核CPU、12G内存服务器,近期出现部分用户无法登陆系统,对我院业务工作造成较大影响,经过认真分析故障现象,找出故障原因,通过完善和改进系统和应用软件,解决了该问题,下文对故障进行详细分析。
二、系统故障分析
2.1故障现象
近期在我院就诊高峰期,部分用户反映在登录HIS系统时出现“无法连接数据库”的错误提示,但同时约有300多个用户仍能正常使用系统,能正常使用系统的用户都是原先一直在线的,而无法登陆系统的用户都是较晚登陆系统的。
2.2故障检查分析
经初步检查,无法登陆的用户计算机硬件和网络均无问题,初步确认为数据库系统或应用软件故障。在Windows事件查询器里可见“Unable to begin another thread”的提示,根据这个提示查找Oracle数据库故障手册,发现是Oracle的线程已经满了,不能再建新的线程,导致新用户无法再登录数据库。根据故障现象,首先去调整Oracle的PGA参数,增大线程数和调整线程分配内存,但问题没有根本得到解决,经分析主要原因是受32位Windows系统单线程最大2G内存的限制,于是我们将连接Oracle的连接模式由专用服务器模式改为共享模式,故障排除。在故障解决之后,我们对故障发生的原因进行认真分析,故障发生前我院日常约有300多台计算机同时登陆系统但没有超连接数的提示,通过查找Oracle的V$session线程表发现了在高峰期有多达300多个hospital用户登录的HIS软件线程,后与系统开发工程师联系,在故障发生前,开发工程师在系统上更新了一个“自动升级更新软件”的程序,用户在登录时都先检查有无新版本软件更新,程序在检查更新后没有自动关闭注销,释放连接,导致用户进程数翻倍增涨,工程师修改软件BUG后,用户进程恢复正常的水平。这个软件的BUG才是发生故障的主要原因。
三、解决方案
由于医院的业务是不断增长,随着业务的增长,访问数据库的用户和线程数量不断增长,为彻底解决问题,我们提出如下方案。
3.1升级操作系统
将目前在用的32位Windows Server升级为64位Windows系统,或者将数据库迁移到Linux操作系统,让单线程突破2G内存的限制;
3.2升级数据库系统
将标准版Oracle升级为企业版Oracle,利用Oracle RAC(real application clusters)技术,使用Oracle提供的集群软件和存储管理软件,将数据库系统由单节点改为双节点的Oracle集群系统,实现数据库系统多节点负载均衡,提供系统的高可用性,这样就可以解决由于业务量的增长导致的数据库线程增长引起的数据库性能问题。
四、结束语
作为医院计算机中心的工程师,不仅要求具备扎实的数据库基本功,而且对计算机网络也要有一定的基础,对出现过的数据库故障或其他问题的现象及解决法,认真记录、善于总结,尽可能缩短维修时间,把对医院信息化工作的影响降到最小。
参考文献
[1](美)凯特著,苏金国译.Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构(第2版)[M].北京:人民邮电出版社,2011.
[2]何明.从实践中学习Oracle数据库管理与维护(第2版)[M].北京:清华大学出版社,2009.
[3](美)Darl Kuhn(美)Sam R. Alapati(美)Bill Padfield著,卢涛译.Oracle索引技[M].北京:人民邮电出版社,2012.
[4]彭小斌,张文峰,林根深. ORACLE数据库并发访问控制机制及访问冲突的解决方法[J].中国医疗设备,2013(1)
[5]曹丽,刘刚.医院信息系统ORACLE数据库升级解决方案[J].医疗设备信息,2007(7).