Oracle RAC在医院信息系统中的应用
2011-01-26李民曹阳
【作 者】李民,曹阳
南通市第一人民医院信息中心,江苏,南通,226001
随着以数据库为核心的医院信息系统的不断深入发展,医院对计算机系统的依赖程度也日益增加。医院信息系统的特点是覆盖面广,数据量大,信息种类多,还必须保持每天24小时的不间断运行。庞大的数据量和复杂的业务流程使数据中心一旦出现问题,就会给医院带来不可估量的损失,因此系统的可靠、安全和高效运行也变得越来越重要。
1 Oracle RAC 概述
Oracle Real Application Cluster意为真正应用集群,简称Oracle RAC,是Oracle的并行集群,使位于不同服务器系统的Oracle实例能同时访问同一个Oracle数据库,节点之间通过私有网络进行通信,所有的控制文件、联机日志和数据文件存放在共享的设备上,能够被集群中的所有节点同时读写。
Oracle RAC使企业可以构建支持多个操作系统的服务器,并可提供出色的可用性和可伸缩性。在Oracle RAC环境中,Oracle可在一个集群中运行于两个或多个系统之上,并可以同时访问一个共享数据库。这使一个数据库系统可以跨越多个硬件系统,同时对应用程序而言仍是一个统一的数据库系统,从而为您的应用程序带来出色的可用性和可伸缩性优势。Oracle RAC为大多数关键业务要求的数据库环境提供了极高的性能和完善的纠错功能,可以自动进行负载平衡、故障修复和规划停机时间,以支持高可用性应用程序。它还显著地提高了大型数据库和决策支持系统的性能[1]。
2 Oracle Rac的实际应用
2.1 硬件配置
二台IBM P6 550,一台DS4700磁盘阵列组成的双机集群,具体配置如下:
P6 550(Server A、Server B)
4*3.5 GHz POWER6 CPU、16 GB RAM、2*146 GB SAS硬盘、1块千兆网卡,1块双口4Gb光纤通道卡, 1个DVD光驱,冗余电源;
DS4700盘柜
16*300G 15K 300G FC硬盘。
2.2 平台搭建
搭建系统平台主要分以下几个步骤:
1) 安装操作系统,连接光纤存储;
2) 配置Orcale 用户环境及相关系统参数;
3) 安装Oracle CRS;
4) 安装Oracle Rac数据库;
5) 安装Oracle补丁;
6) VIP/NET设置及建库。
2.3 实施中要注意的关键问题
Oracl的集群是“共享一切”的架构,所有的节点都共享一份磁盘数据。实例间通过Cache Fusion机制进行数据同步,所有RAC的性能在很大程度上受限于Cache Fusion的性能。因此,要提高RAC的性能,可以从以下两个方面入手:
(1) 采用专用的私有网络
利用ArcGIS的空间叠加分析,统计得到2005—2008年、2008—2010年、2010—2013年、2005—2013年的土地利用转移矩阵(表2~表5)。
实时应用集群(RAC)有几个节点就有几个数据库实例运行,实例之间通过私有网络实现通讯。为了维护数据库各实例间读一致性和高可用性,登录到不同实例上的用户操作相同数据记录时,RAC将通过私有网络传递和维护这些数据的一致性。在一般性应用时,数据库私有网络间的流量非常大,因此,在RAC的建设上,ORACLE建议私有网络采用千兆光纤网,或者使用Infiniband等DRA技术,来预防RAC的瓶颈问题。
(2) 面向业务分散负载
LoadBalance就是把负载平均的分配到集群中的各个节点,从而提高整体的吞吐能力。Oracle 10g RAC提供2种手段分散负载:一是通过Connection Balancing,按照客户端均衡或服务器端均衡的算法把用户分配到不同的节点;二是通过Service,在应用层面上进行分散。Connection Balancing,从表面上看起来,用户被分配到两个不同实例上,似乎负载被分散了。但是这种分散是没有结合用户的业务需求下进行的,是纯理论的,这种分散反而会导致Cache Fusion工作量的增加,数据需要在Cache Fusion的协助下在两个实例之间同步,加重系统的负担[2]。
基于上述考虑,实际应用中,我们不采用客户端负载平衡的登录方式,而是根据数据库表的不同和各模块功能的不同进行分类,分成门诊和住院两大类客户端,通过Service来划分负载。这样,可有效的减少了私有网络间的流量,降低了服务器内部的开销,实际是节省了服务器资源,提高了RAC的整体性能。=192.168.11.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.11.2)(PORT = 1521))
(LOAD_BALANCE = yes)(CONNECT_DATA =
))
图1 Oracle RAC双机集群系统示意图Fig.1 Oracle RAC Dual machine cluster system schemes
3 RAC方案的优点
Oracle RAC并行集群实质上就是使多个服务器访问同一个Oracle数据库,这样不但可以避免一个服务器宕机时数据库不能访问,同时也可以进行并行运算和负载均衡。
与传统的HA方案相比较,双机热备进行故障切换时,因需要启动数据库核心进程,无法真正地保障系统的不间断运行。在这种切换过程中,客户端和服务端会断开,需要系统的重新登陆。而且,由于系统实际上只能在一台机器上运行,无法做到负载分担,也造成了我们投资的浪费。面对越来越高的CPU利用率,而我们只能通过不断升级机器来解决。
在RAC并行集群模式下,当RAC集群中任一服务器发生故障时,客户端与服务器的连接不会中断,会被并行服务器软件自动转接到还在正常运行的服务器上,且无需用户重新登陆。各服务器共享一个数据库,在正常运行时可以进行负载分担,无需考虑应用数据的人为分割;并行服务器方式对应用完全透明,在应用程序设计和开发的过程中也不需要进行特殊编程,简化了开发的复杂程度,同时今后系统扩展也无需修改应用程序;不需要重新启动数据库核心进程,缩短了故障造成的停机时间。
通过监控软件可以发现,使用上述方案后,在业务繁忙阶段服务器的CPU 利用率降了下来,处理业务的速度也更迅速(图2)。
图2 用户CPU利用率Fig.2 CPU utilization of Users
4 总结
Oracle RAC 作为一种高可用性应用集群,在故障容错、并行处理及负载均衡等方面表现出突出的优越性。通过Oracle 10g RAC 集群技术对现有系统的改造,使内存、CPU 资源的紧张得以缓解,提高了系统的响应速度,为现有各项业务应用提供了一个高效、可靠的数据平台。因此,应用RAC 技术实现数据库集群方案,是提高系统安全、改善数据库性能的重点考虑方案之一。
[1] 荣伟铭. Oracle RAC技术概述及应用[J]. 中国科技信息, 2008,66: 111-113.
[2] 张晓明.大话Oracle RAC集群 高可用性 备份与恢复[M]. 北京:人民邮电出版社, 2009.