Oracle9iRAC概述方案作者:谢伟(Oraclexie)1概述本文档是为了提供关于Oracle9iRealApplicationServer的产品说明,好处,成功案例等等。2RAC产品说明2.1RealApplicationClusterRealApplicationCluster(以前称作OracleParallelServer,OPS)用来在集群环境下实现多机共享数据库,以保证应用的高可用性。同时可以自动实现并行处理及均分负载,还能实现数据库在故障时的容错和无断点恢复。RealApplicationCluster为大多数关键业务要求的数据库环境提供了极高的性能和完善的纠错功能。RealApplicationCluster允许集群系统或大型并行系统中的多个节点共享同一物理数据库。RealApplicationCluster可以自动进行负载平衡、故障修复和规划停机时间,以支持高可用性应用程序。它还显著地提高了大型数据仓库和决策支持系统的性能。通过与并行查询选件结合,它还提供了节点间的并行性和节点内的并行性,以得到更高的性能。多服务器的Cluster(集群)结构,因其具有高可靠性、大容量共享磁盘支持、以及无断点的故障恢复,越来越受到业界的关注,越来越多的硬件厂商都相继推出自己的Cluster机种和机型,它已经成为硬件平台的一个新的发展方向。Oracle公司在1989年率先推出ParallelServer选件,以支持这种体系结构(Oracle6.2版)。随着Cluster技术自身的成熟,以及Oracle对这一技术的经验,RealApplicationCluster目前已能支持几乎所有的Cluster集群系统。在share-nothing或shared-disk模式的集群系统上,RealApplicationCluster均可以实现多节点共享数据库,并自动并行处理及均分负载,在数据库故障时进行容错和无断点恢复处理。Oracle提供一个通用的、集成的分布式锁定管理器(DLM)替代了原来的,由不同操作系统厂商提供的锁管理器,从而提高了在大多数工作平台上的执行性能和可移植性。这些使得Oracle并行服务器的运行速度显著加快。Oracle集成的DLM使Oracle并行服务器能够跨平台工作。当并行服务器中某节点失效,透明的应用程序容错能够把用户自动转接到另一节点上继续运行,应用程序在用户没有察觉的情况下继续执行。这使周期性和非周期性发生故障的系统增大了连续可用性。进程的失效可以完全透明地转移到另一节点上去,通过适当地配置,可以指定所有查询都在客户端进行缓存,这样它们便可以在转移后的节点上重新设置。同时,还可以在没有失效时预先与容错节点建立一个连接,这样可以减少容错时在连接所花的时间。Oracle不仅支持第一代、第二代并行处理技术,还最先支持第三代多节点并行处理机。能够在ClusterMode3及MPP结构的各节点上实现并行处理,均分负载。Oracle并行处理技术的另一大优势在于,无论在任何平台上,从单机到并行处理机,从OLTP应用到OLAP应用,Oracle数据库均为同一核心,因此在不同平台之间应用系统可平滑移植,提高了开发效率,降低了维护费用。目前,Oracle并行服务器技术在业界处于绝对领先地位,已在全球数千个实际应用系统中运行,经过十多年的不断完善和发展,其可靠性及稳定性已得到彻底检验。在Oracle9i的RealApplicationCluster技术中,全面采用了Oracle独特的CacheFusion(缓存熔合)技术,消除了多台服务器争用数据时产生的碰撞(Ping)现象,极大的提高了Cluster系统的可扩展性。使Cluster系统可以支持更多的节点,而且数据库应用完全不需要做任何复杂的修改或特殊设计就可以良好的运行在Cluster系统上,并且充分发挥多节点的处理性能。2.2并行服务器与双机热备份的比较在Cluster(集群)多机系统平台上,常用的高可用性技术有两种:双机热备份和并行服务器。这两种方式采用的机制不同,实现的效果也不同。RealApplicationCluster实现的是并行服务器方式。双机热备份方式如上图所示,在双机热备份方式下,数据库系统平时只能在一台服务器(例如服务器A)上运行,另一台服务器无法直接访问数据库,自然也无法进行负载分担。当服务器A由于故障失效时,由相应的操作系统软件控制,将服务器A管理的存储设备(如硬盘)转交给服务器B控制,同时在服务器B上启动另一个数据库进程,管理数据库。这种切换并启动新的数据库核心的过程一般需要几十秒到几分钟。采用双机热备份的平台很多,例如HPMC/ServiceGuard等。这种方式的主要缺点在于:由于需要重新启动数据库核心进程,无法保证数据库系统连续不间断地运行在系统切换的过程中,客户端与服务器之间的数据库连接会中断,需要重新进行数据库的连接和登录工作由于数据库系统只能在一台服务器上运行,另一台服务器无法分担系统的负载,实际上造成了客户投资的浪费。在有些系统中,为了解决双机负载分担的问题,将应用系统人为分割为两个数据库系统,分别在两台服务器上运行。这种方式在一定程度上解决了负载分担的问题,但给系统管理、统计分析等业务处理带来了很多额外的复杂性并行服务器(RealApplicationCluster)方式在并行服务器方式下,两台(或多台)服务器上各自运行一个数据库核心进程,但共同管理、操作一个数据库。客户端无论连接到哪个服务器都可以在数据库中进行操作。当服务器A由于故障失效时,数据库系统本身并未停止工作,连接在服务器B上的客户端还可以继续进行正常工作。同时,服务器B上也不需要再启动新的数据库服务器进程,因此也没有“切换时间”。对于一些特殊应用中严格要求前端应用不能中断的情况,Oracle并行服务器还提供了一种“预连接(pre-connect)”方式,以这种方式连接的客户端当服务器端发生故障时,客户端与数据库服务器的连接不会中断,会被Oracle并行服务器软件自动转接到还在正常工作的其它服务器上,不需要重新输入用户名及口令。同样有许多操作系统平台支持并行服务器方式的高可用性方案,例如HPMCServiceGuardOPSEdition等。与双机热备份方式相比,Oracle9iRealApplicationCluster并行服务器方式有以下优点:各服务器共享一个数据库,在正常运行时可以进行负载分担,无需考虑应用数据的人为分割并行服务器方式对应用完全透明,在应用程序设计和开发的过程中也不需要进行特殊编程,简化了开发的复杂程度,同时今后系统扩展也无需修改应用程序不需要重新启动数据库核心进程,缩短了故障造成的停机时间3RAC的好处具有CacheFusion体系结构的OracleRealApplicationClusters为企业电子商务应用开发提供了以下好处:电子商务应用的灵活和毫不费力的伸缩性;应用用户可以登录到单独的虚拟高性能集群服务器。向数据库添加节点非常容易,并且当需要添加处理器节点或者业务需求变化时,不用手工对数据进行分区。对于所有的应用即时提供集群的可伸缩性--不用修改应用程序。较之传统集群数据库体系结构的高可用性解决方案;该体系结构为客户提供了几乎连续的数据访问,使硬件和软件故障导致的业务中断最小化。系统具备对多个节点失败的容错能力,使部件失败屏蔽开最终用户。单独的管理实体;为了进行所有管理操作,在集群中保持一个单独的系统映像。DBA一次性地进行安装、配置、备份、升级以及监控等功能,然后Oracle将管理功能自动分配到适宜的节点。这意味着DBA只管理着一个虚拟服务器。CacheFusion保存了所有Oracle客户在他们电子商务应用中学习和开发Oracle的投资。所有单节点数据库功能都保留下来,并且应用程序使用相同标准的Oracle接口连接到数据库上。3.1可伸缩性基于RAC的电子商务应用的用户或者中间层应用服务器客户,可以通过虚拟数据库服务名连接到数据库上。Oracle在集群中多个节点之间自动平衡用户负载。不同节点上的RealApplicationClusters数据库实例预订所有数据库服务或者部分子集数据库服务。这使得DBA高度灵活地选定,连接到特定数据库服务的特定应用程序客户是否可以连接到某些或者全部的数据库节点。虽然每一个节点有一个不同的物理IP地址时,应用客户仍可以在一个逻辑数据库服务名的水平上进行连接。因此客户端对于不相关的事情如多服务器的多个地址可以毫不关心。随着业务的增长,电子商务可以从容地增加处理能力。CacheFusion体系结构直接地利用新节点的CPU和内存资源。DBA无需用手工对数据重新分区。这个优点是这种体系结构的副产品,因为有透明度的数据存取是CacheFusion的一项基本功能。CacheFusion体系机构自动适应快速变化的电子商务需求及随之而来的工作负荷的改变。DBA也不必因为工作负荷变化而对数据进行手工的重新分区。RealApplicationClusters通过动态地重新分配数据库资源,从而在节点之间用最小化的磁盘I/O和低的延迟通信来优化利用集群系统资源。这使得RealApplicationClusters可以从容实现增加的应用吞吐量和优化的响应时间。3.2高可用性RealApplicationClusters提供了真正的高可用性解决方案,关键的突破是在大多数数据库恢复期间能提供完整的数据库访问。这使得RealApplicationClusters成为电子商务应用所要求的24x7可用性的最佳平台。RealApplicationClusters在高可用性上在三个关键领域胜出:提供了数据库恢复期间的数据块访问透明的失效转移对最终用户屏蔽了系统失效N-1节点失效的容错能力只要有一个数据库节点幸存,RealApplicationClusters就能够提供完全的数据库访问和相对不间断的操作。3.3可管理性RealApplicationClusters实现了真正意义上的一个单系统访问数据库,它提供了从任何节点到所有磁盘设备和远程高速缓存进行无缝数据访问的能力。此单系统映像延伸到所有数据库管理操作。安装、配置、备份、升级以及监控等操作只需进行一次,然后会自动发布到集群中所有节点上去。各种Oracle工具(如OracleUniversalInstaller、DatabaseConfigurationAssistant以及RecoveryManager)将发现集群数据块中所有不同的节点并以它们为目标分配给想得到的任务。通过为特定的管理操作选择多个目标节点,管理任务在数据库集群中多个节点上执行。这为电子商务管理其环境带来了极大的可伸缩性上的经济实惠。例如,向数据库集群添加一个节点只会增加最小的管理任务。这样,RealApplicationClusters支持在线电子商务应用和决策支持之类的应用,并且为数据访问和管理提供了单一的虚拟高性能服务器。4RAC实际案例参考Oracle9iRAC实际案例GasAuthorityofIndiaLtd.GasAuthorityofIndiaLtd.是一家印度公司,其财务管理系统的数据库服务器选用了Oracle9iRAC.其服务器是两个节点的集群,运行SunSolaris操作系统。该系统已于2001年9月上线。Oracle9iRAC为其系统带来了高可用性。ChelseaInteractive总部在美国维吉尼亚州Reston的ChelseaInteractive公司在其零售系统中应用了Oracle9iRACforCompaqTru-64Unix.该系统已于2001年10月1日投入生产。PoliceNRW德国的PoliceNRW将Oracle9iRAC用于财务管理系统,并已于2001年11月开始使用。该系统由三台运行Linux的机器组成。用户选择Oracle9iRAC是因为RAC提供了高可用性和高性能。FreeMarkets美国宾夕法尼亚州匹兹堡的FreeMarkets公司