Oracle 真正应用集群 (RAC) 10g 主要应用在管理领域。Oracle RAC 10g 和 Oracle 数据库 10g 的配合使用能显著降低企业在管理方面的成本,并提供了更出色的灵活性,从而赋予了企业更高的适应性、前瞻性和敏捷性。Oracle RAC 10g 是企业网格的一项主要基础技术。Oracle RAC 10g 的出现将会极大地推动Oracle技术在企业中的普及。
1 企业网格
现在,企业的 IT 部门面临懂得巨大的压力,他们需要以最低的成本,最高的效率和灵活性,提供优质的服务,同时具有最出色的可用个人性和可伸缩性。简而言之,IT 部门需要以最低的成本,完成最多的事情。
企业网格能够把这些看似无法解决的挑战变成现实。它由大规模的低成本商用集群组成,显著降低了计算机硬件的成本。Oracle RAC 技术可为这一低成本硬件平台提无畏供支持,使其提供优质的服务,并达到或超出昂贵的大型 SMP 计算机所能提供的可用性和可伸缩性等级。通过显著降低管理成本和提供出色的速度管理灵活性,Oracle 为企业网格环境提供了强有力的支持。
企业网格有着深远的影响,可赋予企业更出色的适应性、前瞻性和敏捷性。在企业网格中,数据中心将可以动态改变自身特性,以实时支持企业瞬息万变的需求。应用程序工作负载将以服务的形式进行管理,同时必需满用途足规定的质量等级。处理资源和存储器将以数据流的形式分配给服务,以确保满足规定的质量要求。网格中的每一处理节点或存储组件可统一体近乎实时地改变自身的特性,而不会对应用程序产生任何影响。
Oracle RAC 10g 主要着眼于可管理性,这也是 Oracle 为构建大人体规模 Oracle 数据库所做工作的一部分。这一工作起始于 Oracle9i 数据库,它通过改进的管理功能消除了二分之一的 Oracle 数据库管理运营成本。Oracle 数据库 10g 继续推进这一工作,目标是将其人体余的数据库管理时间和工作再减少二分之一。鉴于 RAC 是数据库的一个集成组件,所有这些增强直接提高了 Oracle RAC 环境的可管理性。 这一工作的千万一个主要成就便是了成功实现了 Oracle 的许多高级和特有技术的自动化。开发一些简单且特性有限的功能将非常容易。真正的挑战在于如何使最高级的性能实现“即需即用”,可供任何人随时使用。Oracle 的最高级和热特有技术的主要功能均已全部实现了自动化,其中包括:
回退段管理。回退段使得 Oracle 数据库可以有效支持混合 OLTP/DSS 工作负载,但很难管理。不过,现在已无需进行任何调整。
备份与恢复管理。Oracle 数据库业界领先的备份和恢复能力现在通过 Oracle 恢复管理器全面实现了自动化。
内存缓冲区管理。Oracle 数据库完善的私用和共享全球内存缓冲区是 Oracle 实现业界领先的可伸缩性和性能的坚实基础。它们现在无需进行调整。
存储管理。Oracle 自动存储管理 10g 通过自动调整数据在不同磁盘中的存储来提高性能,彻底消除了调整 I/O 的需求。
2 什么是 RAC?
Oracle RAC 支持 Oracle 数据库在集群上运不能行真正的应用程序。此处的真正应用是指 RAC 能够支持所有类型的主发流商业应用程序。这包括流行的封装产品,如 SAP、PeopleSoft 和 Oracle E*Business Suite 等,以及自主研发的应用程序,其中包括 OLTP 和 DSS,以及 Oracle 有效支持混合 OLTP/DSS 环境的独有能力。Oracle 是唯一提供具备这一功能的开放系统数据库的厂商。
Oracle RAC 运行于集群之上,为 Oracle 数据库提供了最高级别的可用性、可伸缩性和低成本计算能力。如果集群内的一个节点发生故障,Oracle 将可以继续在其余的节点上运行。如果需要更高的处理能力,新的节点可轻松添加至集群。为了保持低成本,即使最高端的系统也可以从采用标准化商用组件的小型低成本集群开始逐步构建而成。
Oracle 的主要创新是一项称为高速缓存合并的技术,它最初是针对 Oracle9i 真正应用集群开发的。高速缓存合并使得集群中的节点可以通过高速集群互联高效地同步其内存高速缓存,从而最大限度地低降低磁盘 I/O。高速缓存最重要的优势在于它能够使集群中所有节点的磁盘共享对所有数据的访问。数据无需在节点间进行分区。Oracle 是唯一提供具备这一能力的开放系统数据库的厂商。其它声称可以运行在集群上的数据库软件需要对数据库数据进行分区。这对于拥有复杂的数据结构的真正应用程序而言,显得不切实际。而且也不可能对集群系统进行统一变更。如果您添加或删除节点或存储资源,数据则需要完全重新分区。 Oracle RAC 支持企业网格。
企业网格是未来的数据中心,构建于由标准化谔谔商用组件构成的大型配置之上,其中包括:处理器、网络和存储器。Oracle RAC 的高速缓存合并技术提供了最高等级的可用性和可伸缩性。Oracle 数据库 10g 和 Oracle RAC 10g 显著降低了运营成本,增强了灵活性,从而赋予了系统更卓越的适应性、前瞻性和灵活性。动态提供节点、存储器、CPU 和内存可以在实现所需服务级别的同时,通过提高的利用率不断降低成本。
3 ORACLE真正应用集群 10g 的新功能
以下是 Oracle RAC 10g 的主要目标,我们将在下文逐一详细地探讨。消除对第三方组件的需求。这些组件通过提供一个完整系列的 Oracle 解决方案大幅增加了集群环境的复杂性和成本。Oracle RAC 10g 集成集群件将在下文探讨。另一个主要组件自动存储管理器将在 Oracle 的其它白皮书中进行介绍。
将集群作为一个单一集成的系统映像进行管理。
实现主要功能的自动化,诸如工作负载管理等以前需要人工完成的功能。
改进与所有其它 Oracle 特性和功能的集成,使其能够以透明的方式,全面支持 RAC 环境。
全新和改进的工具,用于验证集群配置的正确性并帮助快速找出故障点。
改进性能,使众多应用程序受益。
零停机时间补丁,面向 Oracle RAC 集群环境。
4 集成集群件管理
Oracle RAC 10g 在 Oracle 数据库 10g 运行的所有平台上提供了一个完整集成的集群件管理解决方案。这一集群件功能包括集群连接、消息处理服务和锁定、集群控制和恢复,以及一个工作负载管理框架(将在下文探讨)。用户无需购买任何第三方集群件管理软件。但是,Oracle 仍将继续在特定平台上支持选定的第三方集群件产品。 Oracle RAC 10g 的集成集群件管理具有以下优势:
成本低。Oracle 免费提供这一功能。
单一厂商支持。消除了相互推诿的问题。
安装、配置和持续维护更简单。Oracle RAC 10g 集群件使用标准 Oracle 数据库管理工具进行安装、配置和维护。这一过程无须其它的集成步骤。
所有平台,质量始终如一。与第三方产品相比,Oracle 对新软件版本进行了更严格的测试。
所有平台,功能始终如一。例如,一些第三方集群件产品限制了集群内可以支持的节点的数量。借助 Oracle RAC 10g,所有平台可以支持多达 64 个节点。用户还可以在所有平台上获得一致的响应体验,从而有效解决了高可用性挑战,包括服务器节点故障、互连故障以及 I/O 隔离现象等。
支持高级功能。这包括集成监视和通知功能,从而在发生故障时,在数据库和应用层之间实现快速协调的恢复.
5 单一系统映像管理
Oracle 企业管理器 10g 的功能大幅提升,实现了集群数据库部署真正的单一系统映像管理。Enterprise Manager 的 Cluster Database Page 提供了涵盖多个节点的系统状态的单一视图。它还可以根据需求更详细地显示单独的例程。通过 Cluster Database Page,您可以:
查看整体系统状态,例如:集群数据库内节点的数量及其当前的状态。
查看所有例程的警报,同时详细观察每一警报的根源和其它信息。
在集群数据库基础上设置警报阈值。
监视所有例程的性能标准或逐个显示,以便逐个进行比较,或在需要时了解更详细的信息。
监视集群高速缓存一致性情况(例如:全局缓存获取等)。
执行集群数据库操作,包括启动备份与恢复,以及开始/停止例程等。
通过执行诸如开始/停止、激活/禁用和重新分配服务等操作,以及监视服务性能来管理服务
Oracle 企业管理器 10g 还提供了一个集群页面来查看集群硬件和整个操作系统的状态。在集群支持多个数据库时,这一特性非常实用。用户可以轻松了解整体集群平台状态,同时也可根据需求详细了解每个独数据库的性能。
6 自动工作负载管理
使用 Oracle 数据库 10g,应用程序工作负载可被定义成服务,以便对其进行单独管理和控制。在正常运行期间和发生故障时,DBA 决定分配给相应服务的处理资源。性能标准通过服务进行跟踪,同时还可以设置阈值,一旦超过这些阈值,即自动发出警报。CPU 资源分配和资源消耗控件使用资源管理器进行管理,以便在提供服务时使用。Oracle 工具和设施,如 Job Scheduler、Parallel Query 和 Oracle Streams Advanced Queuing 等,也使用服务来管理它们的工作负载。
使用 Oracle 数据库 10g 可以定义规则,自动将处理资源分配给服务。Oracle RAC 10g 例程可根据需要进行分配,以便处理单个或多个服务。这些分配规则可动态进行修改,以满足瞬息万变的业务需求。例如,这些规则可以在每个季度末进行修改,以确保有足够的处理资源来及时执行重要的财务功能;也可以另行定义规则,以便在运行关键服务的例程发生故障时,工作负载可以自动切换到工作负载较少的例程上。
服务通过全局唯一名称进行识别。例如,一个应用程序套件可为每一个应用程序组件定义一种服务,诸如总帐、应收账款和订单项等。中间层应用程序和客户机在连接到数据库时,可以通过在 TNS 连接数据中指定服务名称,选择一种服务。但无须更改应用程序本身。
DBA 可使用 DBCA 或 SRVCTL 最初定义服务并将其分配给一系列首选例程和可用例程。服务在开始运行使用首选例程,而在发生故障时自动切换到可用例程。监听程序使用这些定义在新会话建立时,向例程分配连接。使用 Oracle 企业管理器 10g,还可以灵活地控制服务。例如,DBA 可对服务执行诸如开始/停止、激活/禁用和重新分配等操作。
6.1 工作负载监视
Oracle 自动工作负载仓库 10g 使 DBA 管理可以针对 RAC 和单一例程数据库执行的服务。响应时间、CPU 消耗,以及其它标准由服务自动收集。应用程序能够实施其代码来设定标记,根据初始应用 MODULE 和 ACTION 识别服务内的操作,从而收集更详细的性能数据。
该自动工作负载仓库持续维护服务标准。该视图 – V$SERVICE_METRICS 和 V$SERVICE_METRICS_HISTORY – 包含过去一小时内每 60 秒的各项服务的测量情况。Oracle 企业管理器 10g 中的图形显示便于它根据 CPU 消耗和其它标准识别顶级服务、顶级模块和顶级操作。
使用 Oracle 企业管理器 10g,可对呼叫响应时间和其它服务级别标准设定阈值,以便在超出这些阈值时能够自动生成警报。例如,如果性能等级未达到要求的服务级别,DBA 将收到向服务分配额外处理资源的警报。应用中间层组件和产品还可以利用这一数据实现负载均衡。
6.2 资源管理
Oracle 资源管理器 10g 可自动分配工作请求,使用服务将其连接到消费者组,以便更细致地管理资源分配。例如,DBA 可向被映射到一个消费者组的高优先级服务分配三分之二的可用 CPU 资源,向映像到第二个消费者组的低优先级服务分配三分之一的可用 CPU 资源。此外,还可对服务工作负载进行控制,以便限制较长运行操作的执行时间、可以同时执行的有效会话的数量、长时间运行资源密集型会话消耗的资源,以及其它资源的使用。而且,服务还可与 RAC 和单一例程环境中的资源管理器配合使用。
7 Oracle 工具
其它 Oracle 工具(如作业调度程序和并行查询)可利用服务,在其工作负载定义中设置服务名称。作业调度程序将作业分配到可在服务中运行的作业类别中。对于并行 DML 和并行 DML,查询协调程序可连接到一个服务,并行查询在执行期间被动承接此服务。在服务承接服务执行阈值的情况下执行工作请求,并作为服务的一部分进行测量。
7.1 快速连接故障切换
Oracle RAC 10g 可使数据库与应用中间层组件和产品之间实现快速、协调的恢复。Oracle RAC 10g 最初将支持与 Oracle 应用服务器 10g 进行 Oracle JDBC 快速连接故障切换,并将在未来支持额外的中间层组件和产品。
Oracle RAC 10g 检测例程中断及其恢复的时间。一个适应能力非常强的通知系统立即向应用中间层发送 UP 和 DOWN 信号,以便应用程序进行自动恢复过程。这比检测网络呼叫故障(如通过 TCP/IP 超时)更高效,而且还可将恢复时间从很长时间缩短至几秒钟。与仅使用虚拟 IP (VIP)地址相比,它还能更全面、一致地响应故障和恢复事件。使用 RAC 10g 的新 VIP 地址,可以更快速地返回故障信息。利用 JDBC 快速连接故障切换,
DOWN 事件可启动处理来清除 JDBC 隐含连接高速缓存中的故障连接,并防止故障或无效的连接被提交给应用程序工作请求。如果应用程序夹杂在一个事务中,则系统会发出适当的 SQL 异常通知,此事务将重新开始。之后,应用程序或容器可以重试此连接请求,重新建立会话状态。UP 事件在高速缓存中启动连接的负载均衡。此时,将重建连接并负载平衡到所有有效 RAC 例程,而无需等待应用连接请求或重试。
7.2 用于灾难恢复的 Data Guard 集成
通过 Oracle 企业管理器 10g,Oracle Data Guard 的管理组件 Data Guard Broker 现在可以与 RAC 全面集成。与那些采用单一例程数据库的环境一样,涉及 Oracle RAC 数据库的 Data Guard 灾难恢复环境也非常易于管理。
自动工作负载管理可用于在发生灾难后重新向备用系统提供服务,从而确保最关键的服务保持需要的服务级别,与此同时低优先级服务还能在降低的容量下运行。这一特性可以使备用系统的总容量少于主系统,因而减少了成本。
7.3 集群验证和改进的诊断工具
Oracle 数据库 10g 带来了全新的集群配置认证工具,提高了 Oracle9i 中原有的诊断工具的性能。使用这些工具,有助于用户避免问题,并在问题发生后更迅速地解决问题。 该集群验证工具通过对前后安装步骤和/或配置变化进行验证,避免发生错误。它还可用于现有的集群验证。其它程序(如 OUI、OEM、DBCA 和 ASM)可通过命令行界面或 API 调用该工具。
在提供 Oracle 数据库 10g 之后,将在 OTN 上提供集群认证工具。诊断工具已经过了改进,可进一步加速问题的解决,减少重现问题的需要,提高易用性,并最大限度地减少 RAC 和非集群环境中的数据库开销。在 Oracle 数据库 10g 中,Oracle 数据库的大多数可执行的都用于生成诊断跟踪数据。注意,该诊断工具只应按照 Oracle 支持提供的说明使用。
7.4 性能改进
除了可管理性方面的显著改进,Oracle RAC 10g 还提供了一系列性能改进,令许多应用程序受益。这些包括例程故障恢复时间的改进,用于提高主要应用程序操作性能的若干优化,以及针对特定类型的工作负载提供性能改进的动态重组。 由于一系列优化缩短了路径长度,而且允许关键恢复功能并行执行,所以大多数应用程序的例程故障恢复速度都加快了。内部实验室测试显示,针对最高恢复速度而配置的应用程序的恢复时间缩短了一半之多。上述快速连接故障切换特性还支持在数据库与应用中间层组件和产品之间实现快速、协调的恢复。
其它重要优化还为特定类型的应用程序操作提供了性能优势。其中包括减少了事务同步开销,对于小型事务来说最明显,如简单的帐户余额更新。消息聚集在适当的时候将多条消息合为一条信息,因而提高了节点之间的高速缓存合并通信效率。这为在节点间生成大量信息的操作提供了最显著的优势,如检验点、在线重做扫描,以及全表扫描。此外,Oracle Streams 高级查询现在使用快速高速缓存合并通信层来更有效地向远程 RAC 例程上的用户提供全球事件。
另一个重要优化是动态资源重组。如果应用程序包含多个工作负载,通常一个或多个工作负载会在很大程度上表现出与特定数据资源集的相似性。如果是这样,RAC 10g 将自动对其进行检测,并将这些资源重组到表现出相似性的例程上。随着工作负载的变化和在例程间的切换,该机制 可自动进行调整,以便以优化的方式重组资源。此优化改进了性能,且无须对应用程序或数据布局进行任何人工调节或更改。
7.5 零停机时间补丁
Oracle 现在支持以滚动方式向 RAC 系统的节点应用补丁,而不会需要停机。补丁一次应用到一个节点,而 RAC 系统中的其它节点可正常运行和操作。请参见图 4。根据补丁所做的变化,将补丁标记为是否作为滚动升级进行安装。Oracle 希望大多数补丁可实现滚动升级,但更改了例程之间的共享通用结构或数据库内容的补丁则不能实现滚动升级。此外,只能滚动升级单个的补丁,而不是补丁集。这一功能最早在 Oracle 9.2.0.2 中提供。
结论
Oracle RAC 10g 是 oracle 公司为适应市场的技术的变化而推出的产品。与oracle以前的产品相比,它极大地改进来管理性能,增加了很多新特性,
Oracle RAC 10g 和 Oracle 数据库 10g 在企业中的联合应用,提供了特定新管理性增强功能,实现了企业网格和各种规模的企业普遍采用 Oracle RAC 来支持各类应用程序。企业网格采用大型标准化商用组件配置:处理器、网络和存储器。利用 Oracle RAC 的高速缓存合并技术,Oracle 数据库实现了最高可用性和可伸缩性。现在,利用 Oracle 数据库 10g 和 Oracle RAC 10g 大幅降低了运行成本,进一步增强了灵活性,其动态提供节点、存储器、CPU 和内存的特性可以更轻松、高效地保持服务级别,而通过提高的利用率又进一步降低了成本。企业网格是未来的数据中心,使企业具备更高的适应能力、前瞻性和敏捷性。