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