Oracle RAC体系结构与优势.docx
- 文档编号:5738410
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:12
- 大小:253.61KB
Oracle RAC体系结构与优势.docx
《Oracle RAC体系结构与优势.docx》由会员分享,可在线阅读,更多相关《Oracle RAC体系结构与优势.docx(12页珍藏版)》请在冰豆网上搜索。
OracleRAC体系结构与优势
Oracle10gRAC应用分析
高性能服务器产品部徐斌
2008-12-12
引言
使用Oracle真正应用集群(RAC),Oracle数据库可跨一组集群服务器运行任何打包的或自定义的应用程序,不需对这些应用程序做任何改动。
这就提供了最高的可用性和最灵活的可伸缩性。
假如集群中的一个服务器故障,Oracle可接着在其余的服务器上运行。
当我们需要更多的处理能力时,只需添加服务器即可,无需用户下线。
为保证低成本,我们可使用标准化的一般硬件组建出最高端的系统。
OracleRAC为Oracle的企业网格计算体系结构提供了基础。
OracleRAC技术可为这一低成本硬件平台提供支持,使其提供优质的服务,并达到或超出昂贵的大型SMP计算机所能提供的可用性和可伸缩性等级。
通过显着降低治理成本和提供出色的治理灵活性,Oracle为企业网格环境提供了强有力的支持。
本文从技术层面对Oracle10gRAC进行了概述,着重介绍了涉及为企业应用程序提供高可用性和高可伸缩性方面的功能和特性,并与双机热备份架构的服务平台进行了比较,最后给出了部分官方技术问答,希望对大伙儿了解与销售OracleRAC能够有所关心。
一、什么是ORACLERAC?
OracleRAC是Oracle数据库的一个组件选项,在Oracle9i中首次推出。
OracleRAC现已进展成一项成熟的技术,其用户过千,遍及各个行业,涉及各类应用程序。
OracleRAC为伸缩应用程序以超越单个服务器的能力限制提供了一个选择。
这使得用户能够利用低成本的一般硬件来降低他们的总体拥有成本,并提供一个可伸缩的计算环境来支持其应用程序负载。
二、OracleRAC体系结构
RAC数据库是一个集群数据库。
集群是一组独立的服务器,协同合作如同一个系统。
集群提供了比单对称多处理器(SMP)系统更好的容错和模块增量系统。
发生系统故障时,集群可确保向客户提供高可用性。
对关键任务数据的访问可不能丢失。
冗余的硬件组件(如额外的节点、互联和磁盘)使得集群能够提供高可用性。
此类冗余硬件体系结构幸免了单点故障并提供了异常故障恢复。
在OracleRAC中,我们将Oracle实例(运行在一个服务器中的流程和内存结构,以充许数据访问)与Oracle数据库(驻留在存储器上的实际用于保存数据的物理结构,通常称为数据文件)进行了分离。
集群数据库是一个可由多个实例访问的数据库。
每个实例运行于集群中的一个独立服务器上。
当需要更多的资源时,能够在不停机的情况下轻松地向集群中添加节点和实例。
当启动新实例后,应用程序可立即使用这一新实例,无需对应用程序或应用服务器进行任何改动。
真正应用集群是Oracle数据库的一个扩展,因此它利用了Oracle数据库10g的可治理性、可靠性和安全性特性。
1.Oracle集群件
Oracle数据库10g开始提供有Oracle集群件,Oracle集群件是一个专门针对Oracle数据库而集成和设计的可移植集群件解决方案。
您不必再为构建一个RAC数据库而去购买第三方的集群件。
Oracle集群件与OracleDBA熟悉的OracleUniversalInstaller进行了集成。
支持也比以往更为简便,因为现在有一个专门的组织处理涉及集群件和集群数据库的支持问题。
您能够选择使用第三方集群件来运行OracleRAC,Oracle产品可与经认证的第三方集群件共同使用,但Oracle集群件必须治理所有的RAC数据库。
Oracle集群件用于监管真正应用集群数据库。
当集群中的一个节点启动时,所有实例、监听程序和服务都将自动启动。
假如一个实例出现故障,集群件将自动重启该实例,如此通常可在治理员发觉前恢复该服务。
在Oracle数据库l0g第2版中,Oracle提供了高可用性API,如此可使用Oracle集群件内高可用性框架来操纵非Oracle的流程。
当向Oracle集群件注册流程时,需要提供如何启动、终止和监控这些流程的信息。
您还能够指定当执行流程的节点出现故障时,是否将该流程转移到另一个节点。
2.硬件体系结构
OracleRAC是一个全共享的体系结构。
集群中的所有服务器必须共享用于RAC数据库的所有存储器。
存储用的磁盘类型能够是网络连接存储(NAS)、存储区域网络(SAN)、或是SCSI磁盘。
存储器的选择受限于所选用的服务器硬件及硬件供应商所支持的存储器类型。
选择存储器的关键之处在于选择一个可向您的应用程序提供可伸缩I/O的存储系统,一个在向集群中添加服务器时可进行伸缩的I/O系统。
关于数据库服务器所连入的局域网(LAN),集群还需要另外一个网络连入该局域网,用于应用程序连接。
集群还需要一个专用的网络,即通常所讲的互联。
Oracle建议您对这一网络使用两个网络接口,以实现高用性。
我们需要使用不属于Oracle的网络接口来提供故障切换和负载均衡。
集群使用这一互联来进行节点间消息传递。
RAC则使用这一互联来实施缓存融合技术。
关于集群互联,Oracle建议使用UDP,不建议使用GigE。
在实际应用环境中,RAC数据库不支持将交叉线缆用作互联。
集群由1到多个服务器组成,每个服务器有一个LAN连接、一个互联连接,必须连接到共享存储器。
在Oracle数据库10g第2版中,Oracle集群件和真正应用集群可支持多达100个集群节点。
集群中的每个服务器不需要完全相同,然而必须使用同样的操作系统和同一版本的Oracle产品。
所有服务器必须支持同一体系结构,如全部为32位或全部为64位。
3.文件系统和卷治理
因为RAC是一个全共享式的体系架构,卷治理和文件系统必须能够识不集群。
Oracle建议使用自动存储器治理(ASM),它是Oracle数据库10g包含的一个特性,能够自动治理用于数据库的存储器。
使用ASM能够方便地治理文件系统,提供异步I/O的性能。
ASM通过跨所有可用资源分配I/O负载来优化性能,且免除了手动调整I/O的需要。
Oracle也支持原始设备和某些集群文件系统,如Oracle集群文件系统(OCFS),这一文件系统可用于Windows、Linux和Solaris(用于Solaris的OCFS将于Oracle数据库10g第2版之后推出)。
4.虚拟互联网协议地址(VIP)
Oracle真正应用集群10g要求集群中的每个服务器都使用一个虚拟IP地址。
虚拟IP地址即是与局域网所属子网相同的子网中的一个未使用的IP地址。
应用程序使用这一地址连接RAC数据库。
假如一个节点出现故障,该虚拟IP将自动切换到集群中的另一个节点,如此就能够快速响应针对故障节点的连接请求。
这提升了应用程序的可用性,因为他们的连接请求可自动切换到集群中的另一个实例,此前不再需要等待网络超时。
5.集群验证有用程序
Oracle数据库10g第2版引入了一个新的集群配置验证工具。
该集群验证工具通过对前后安装步骤和/或配置变化进行验证,幸免发生错误。
它还可用于现有的集群验证。
该工具能够通过命令行接口调用,也可由其它程序通过API进行调用,如OracleUniversalInstaller(OUI)程序。
6.远距离集群RAC
在远距离集群RAC这一体系结构中,集群中的各节点位于不同的地理位置。
远距离集群RAC提供了特不快速的站点故障恢复,同意所有站点中的所有节点作为单个数据库集群的一部分主动进行事务处理。
当该体系结构受到世人瞩目并成功实施后,关键是要了解这一体系结构最适用的情形—距离、延迟时刻,及其提供的爱护程度。
延迟时刻会产生巨大的阻碍,因此距离便对这一体系结构的适用情形有一些实际限制。
这一体系结构适用于2个数据中心间的距离相对较小(小于等于100公里),且有资金在两个站点间建立带专用通道的直连线缆的情况。
远距离集群RAC提供了比本地RAC更高的可用性,但并不能达到企业所需的完全灾难恢复要求。
合理分区能够专门好地防备某些灾难事件(局部断电、飞机失事、机房被淹),但并不是所有灾难事件。
如地震、飓风、区域性洪灾会阻碍更大的区域。
客户应通过分析确定一个灾难事件是否会同时阻碍两个站点。
要实现全面的灾难防备(包括防备数据出错和区域性灾难),Oracle建议用户结合DataGuard使用RAC,如Oracle高可用性体系结构文档中所述。
DataGuard还提供了其它的一些功能,如支持跨Oracle版本进行滚动升级。
远距离集群的配置也较本地集群复杂。
需要精心考虑节点的布局、表决磁盘和数据磁盘的布置.妥善实施这一体系结构后,它将提供比本地RAC数据库更高的可用性。
Oracle集群件、Oracle真正应用集群和自动存储器治理可用于构建远距离集群。
三、ORACLERAC的优势
1.高可用性
Oracle真正应用集群10g提供了实现数据中心高可用性的基础架构。
它依旧Oracle高可用性体系结构不可或缺的一部分,提供了构建高可用性数据治理解决方案的最佳实践。
Oracle真正应用集群针对高可用性解决方案的要紧特性提供了爱护功能。
可靠性—Oracle数据库以其稳定性著称。
真正应用集群将这一优点发扬光大,能够以单点故障方式移除服务器。
假如一个实例故障,集群中的其它实例将仍然保持运行和活动状态。
恢复能力—Oracle数据库包含许多有助于从各类故障中轻松恢复的功能。
假如RAC数据库中的一个实例出现故障,集群中的另外一个实例将察觉到这一故障,随后自动进行故障恢复。
利用快速应用程序通知,快速连接故障转移和透明应用程序故障切换这三个功能,应用程序能够专门方便地掩藏组件故障,使用户无法察觉。
错误检测—Oracle集群件自动监控RAC数据库并可对环境中的错误进行快速检测。
在用户不知不觉中自动完成故障恢复。
使用快速应用程序通知功能,应用程序能够在集群组件出现故障出现时立即得到通知,然后将事务切换至无故障节点,从而掩藏这一故障,让用户无法察觉。
持续运行—使用真正应用集群,在打算和意外停机期间仍可持续提供服务。
假如一个节点(或实例)出现故障,数据库将仍然保持运行状态,应用程序仍可访问数据。
大多数的数据库维护操作可在不中断运行的情况下完成,同时对用户透明。
其它维护任务能够通过滚动方式完成,因此可将应用程序中断时刻降至最少,或完全消除。
快速应用程序通知和快速连接故障切换可关心应用程序达到服务水平和掩藏组件故障。
2.可伸缩性
Oracle真正应用集群提供了独一无二的应用程序伸缩技术。
传统上,当服务器容量不足时,我们会使用更大的新服务器来替换它。
但服务器容量越大,其价格也愈加昂贵。
而关于使用了RAC的数据库,我们可选择其它方法进行增容。
原先运行于大型SMP服务器上的应用程序可移植到小型服务器集群中运行。
或者,您也能够选择保留现有硬件的投资,在集群中加入新服务器(或创建一个集群)来增加容量。
通过Oracle集群件和RAC向集群中添加服务器时并不需要停机,且在启动新实例后,应用程序就可立即利用这些增加的容量。
集群中的所有服务器必须使用同一操作系统和相同版本的Oralce软件,但其容量不需要一样。
现在,客户能够依照自己的需要来选择集群,能够是由每台服务器含2个cpu的一般服务器组成的集群,也能够是每台服务器含32或64个cpu的服务器组成的集群。
Oracle真正应用集群能够自动适应快速变化的业务要求和由此带来的负载变化。
应用程序用户,或中层应用程序服务器客户端可使用服务名连接到数据库。
Oracle可在集群中的多个节点中自动进行负载均衡。
在不同节点上的真正应用集群数据库实例订阅了所有或部分数据库服务。
如此DBA就能够灵活地选择某个连接到特定数据库服务是否能够连接到某个或所有数据库节点。
当应用需求上升时,治理员能够专门方便地增添处理能力。
RAC的缓存融合体系结构可赶忙使用新节点的CPU和内存资源。
DBA不需要手动对数据进行重新分区。
在Oracle数据库中分配负载的另一个方法通过Oracle数据库的并行执行特性。
并行执行(如并行查询或并行DIIL)在多个进程间划分SQL语句执行工作。
在Oracle真正应用集群环境中,可在多个实例间均衡分配这些进程。
Oracle提供了基于成本的优化程序,它以并行执行作为其基础元素来制定最佳的执行方案。
在真正应用集群环境中,明智的决策都要考虑到节点内和节点间的并行性。
例如,完成某个查询需要6个查询进程,本地节点中(用户连接到的节点)有6个闲置的CPU,则只需使用本地资源来处理该查询即可。
这演示了高效的结点间并行性,且消除了在多个节点间协调查询的开销。
然而,假如该本地结点中只有两个CPU,那么就由这两个CPU再加上其它节点中的4个CPU来处理这一查询。
如此就利用了节点内和节点间并行性来加快查询的处理。
四、治理ORACLE真正应用集群数据库
为便于配置和治理,Oracle真正应用集群提供了一个系统镜像。
用户可在一个位置完成RAC数据库的安装、配置和治理。
用于治理数据库的工具和有用程序都可识不集群,从OracleUniversalInstaller(OUI)到EnterpriseManager,包括数据库配置助理(DBCA)、数据库升级助理(DBUA)、网络配置助理(NETCA)和命令行,如srvctl。
1.EnterpriseManager10g
EnterpriseManager10gDatabaseControl是Oracle提供的一个用于治理Oracle数据库的GUI治理工具。
在创建数据库时,DBCA会自动配置DatabaseControl。
EnterpriseManager10gGridControl是Oracle提供的一个用于治理企业的GUI治理工具。
用户可通过Oracle数据库CD包内的一张CD来安装该GridControl。
这些工具都可识不集群且提供了一个中央操纵台来治理您的集群数据库。
在ClusterDatabasePage中,您能够:
●查看整体系统状态,例如,集群数据库内节点的数量及其当前的状态。
●查看所有实例的警报,同时详细观看每一警报的根源和其它信息。
●在集群数据库基础上设置警报阈值。
●监视所有实例的性能标准或逐个显示,以便逐个进行比较,或在需要时了解更详细的信息。
●监视集群缓存一致性情况(例如:
全局缓存猎取等)。
●执行集群数据库操作,包括启动备份与恢复,以及开始/停止实例等。
●治理服务,执行创建、更改、启动/终止、启用/禁用等操作,重新部署服务并监控服务性能。
OracleEnterpriseManager10gGridControl还提供了一个集群页面来查看集群硬件和整个操作系统的状态。
在集群支持多个数据库时,这一特性特不有用。
用户能够轻松了解整体集群平台状态,同时也可依照需求详细了解每个独数据库的性能。
OracleEnterpriseManager10gRelease2GridControl中提供了一个有用工具,该工具可用于自动将Oracle数据库实例转换为RAC数据库实例。
OracleEnterpriseManager10gRelease2GridControl还提供了其他简化真正应用集群供应的功能。
使用EnterpriseManager能够轻松地完成创建集群时涉及的一些工作,如部署Oraclehome、配置集群件。
OracleHome软件能够置于EnterpriseManager中作为“黄金镜像”,该软件也能够从其它已知的基准主机中获得。
“黄金镜像”使用一个已知正常的OracleClusterware10gRelease2或OracleRealApplicationClusters10gRelease2环境实施副本创建而成。
在GridControl10gRelease2中,该克隆应用程序将支持创建完全的端到端新RAC和Oracle集群件软件,包括执行超级用户操作(root.sh)和可自定义的前期和反续步骤。
在向当前集群中添加新节点时也能够使用它。
对Linux操作系统,Oracle还能够向裸节点供应“镜像”。
该镜像能够由操作系统、OracleEnterpriseManager代理、Oracle集群件和带真正应用集群的Oracle数据库组成。
该镜像能够和硬件配置文件关联。
这一镜像的各部分都将作为“黄金镜像”存储在EnterpriseManager中。
用户能够使用向导程序来选择硬件并将所有镜像供给新硬件。
该新节点将自动添加到这一集群中。
2.滚动补丁应用
Oracle现在支持以滚动方式向RAC数据库的节点应用补丁,而不需要停机。
补丁一次应用到一个节点,而RAC系统中的其它节点可正常运行和操作。
这要求每个节点都有独立的OracleHome。
依照补丁所做的更改,将补丁标记为是否作为滚动升级进行安装。
一些更改实例间共享的公共结构或数据库内容的补丁将可不能标记为以滚动升级方式安装。
此外,只能滚动升级单个的补丁,而不是补丁集。
这一功能最早在Oracle9.2.0.2中提供。
所有Oracle集群件补丁都能够滚动方式应用。
3.滚动版本升级支持
Oracle集群件支持从第1版(即ClusterReadyServices)滚动升级到第2版。
这就能够在集群不停止服务的情况下升级集群件,实现全天候的业务运行。
OracleRAC10g第2版支持使用DataGuardSQLApply以滚动方式进行数据库软件升级(从Oracle数据库10g第1版的补丁集1起),几乎无需数据库停机。
这些步骤包括将逻辑备用数据库升级到下一个版本、在一种混合的模式下运行,以测试和验证升级、通过切换到已升级的数据库来执行角色转换,然后最终升级旧的主数据库。
当为了测试而运行在一种混合模式下时,能够终止升级,降级软件,而可不能有数据丢失。
为了在这些步骤中提供额外的数据爱护,能够使用第二个备用数据库。
通过支持具有最小停机时刻的滚动升级,DataGuard缩小了一般包含许多治理任务的大维护窗口,并实现了全天候的业务运行。
五、使用真正应用集群进行负载治理
使用RAC数据库的应用程序需要跨集群治理负载。
Oracle真正应用集群10g提供了创新的技术来治理工作负载,通过对应用程序进行妥善配置并实现高可用性,可提供最好的应用程序吞吐能力。
1.服务
负载治理依靠于服务的使用,服务是Oracle数据库的10g的特性。
服务通过提供一个系统镜像来治理负载,隐藏了RAC数据库的复杂性。
服务使得应用程序能够获益于集群的稳定性。
通常,数据库提供一个服务且该名称即是给予SQL*NET的连接数据。
使用Oracle数据库10g,DBA能够定义多达100个由一个数据库提供的数据库服务。
这使得您能够基于业务需求(如服务水平和优先级)将应用程序的负载分解为可治理的部分。
服务与Oracle数据库10g的许多特性进行了集成。
应用程序用户能够自动分配到一个ResourceManager用户组,这一用户组限制了成员可使用的资源,如cpu。
批量作业可基于其服务分配到特定的作业类。
在使用OracleStreamsAdvancedQueuing时,可使用服务来实现队列的位置透明性。
一个服务能够跨越一个Oracle数据库的一个或多个实例,一个实例能够支持多个服务。
提供服务的实例数量是由DBA动态操纵的,独立于该应用程序。
当发生故障时,服务将自动恢复到正常运行的实例中。
当实例恢复后,任何未运行的服务都将自动恢复。
2.连接负载均衡
OracleNetServices为数据库连接提供了连接负载均衡。
客户端负载均衡跨集群中所有监听程序进行连接请求均衡,方法是将集群中的所有服务器列入客户连接字符的地址表。
SQL*NET将随机选择其中的一个服务器。
假如选中的服务器不可用,将尝试列表中的下一个服务器。
服务器端负载均衡是在监听程序中实现的。
每个监听程序会识不出集群中刺探每个服务的所有实例。
基于为服务定义的目标,监听程序会选择与目标最符合的实例,然后连接到该实例。
3.快速应用程序通知(FAN)
快速应用程序通知提供了RAC数据库和应用程序间的集成。
利用这一特性,应用程序能够识不任意给定时刻下的集群当前配置,从而仅连接至可响应当前应用程序请求的实例。
当集群内的状态改变时,OracleRAC10g高可用性框架将快速地发出一个FAN事件。
集成客户端收到这些事件后迅速做出响应。
关于故障事件,通过清除到故障实例的连接能够将应用程序中断降至最低,进行中的事务中断后,将向应用程序返回一个出错提示。
尝试连接的应用程序将仅指向活动实例。
服务器端调出可用于记录故障单或页,通知治理员出现故障。
关于正常运行事件,将创建一个新连接,让应用程序立即利用新增的资源。
OracleJDBC、ODP.NET和OCI客户端与FAN进行了集成。
其它应用程序能够利用FAN,方法是使用应用程序编程接口直接订阅FAN事件。
4.负载均衡顾问程序
数据库负载会随着时刻而变化,集群配置也能够更改,因此,基于最新信息创建和分配数据库连接专门重要。
OracleRealApplicationClusters10g第2版提供了一个负载均衡顾问程序。
通过由每个实例刺探服务,RAC始终不停的监视针对每个服务执行的负载。
该信息将通过FAN事件公布到AutomaticWorkloadRepository和应用程序。
FAN事件包含当前所提供的服务水平,并建议了指向每个实例的连接的百分比。
集成的Oracle客户端使用这些事件合理地进行应用程序请求负载均衡。
当应用程序要猎取一个连接时,大多数的连接池使用随机或循环算法从池中选出一个空闲连接。
使用来自负载均衡顾问程序的FAN事件,连接池将选择当前提供最佳服务的连接。
OracleJDBC和ODP.NET通过集成负载均衡顾问程序来均衡运行时连接负载。
六、OracleRAC并行服务器与双机热备份的比较
在Cluster(集群)多机系统平台上,常用的高可用性技术有两种:
双机热备份和并行服务器。
这两种方式采纳的机制不同,实现的效果也不同。
RealApplicationCluster实现的是并行服务器方式。
双机热备份方式
如上图所示,在双机热备份方式下,数据库系统平常只能在一台服务器(例如服务器A)上运行,另一台服务器无法直接访问数据库,自然也无法进行负载分担。
当服务器A由于故障失效时,由相应的操作系统软件操纵,将服务器A治理的存储设备(如硬盘)转交给服务器B操纵,同时在服务器B上启动另一个数据库进程,治理数据库。
这种切换并启动新的数据库核心的过程一般需要几十秒到几分钟。
这种方式的要紧缺点在于:
●由于需要重新启动数据库核心进程,无法保证数据库系统连续不间断地运行;
●在系统切换的过程中,客户端与服务器之间的数据库连接会中断,需要重新进行数据库的连接和登录工作;
●由于数据库系统只能在一台服务器上运行,另一台服务器无法分担系统的负载,实际上造成了客户投资的白费。
在有些系统中,为了解决双机负载分担的问题,将应用系统人为分割为两个数据库系统,分不在两台服务器上运行。
这种方式在一定程度上解决了负载分担的问题,但给系统治理、统计分析等业务处理带来了专门多额外的复杂性。
并行服务器(RealApplicationCluster)方式
在并行服务器方式下,两台(或多台)服务器上各自运行一个数据库核心进程,但共同治理、操作一个数据库。
客户端不管连接到哪个服务器都能够在数据库中进行操作。
当服务器A由于故障失效时,数据库系统本身并未停止工作,连接在服务器B上的客户端还能够接着进行正常工作。
同时,服务器B上也不需要再启动新的数据库服务器进程,因此也没有“切换时刻”。
关于一些专门应用中严格要求前端应用不能中断的情况,Oracle并行服务器还提供了一种“预连接(pre-connect)”方式,以这种方式连
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle RAC体系结构与优势 RAC 体系结构 优势
![提示](https://static.bdocx.com/images/bang_tan.gif)