来自农村的老实娃
分类: Oracle
2007-05-11 10:57:32
使用Oracle 真正应用集群 (RAC),Oracle数据库可跨一组集群服务器运行任何打包的或自定义的应用程序,不需对这些应用程序做任何改动。这就提供了最高的可用性和最灵活的可伸缩性。如果集群中的一个服务器故障,Oracle 可继续在其余的服务器上运行。当我们需要更多的处理能力时,只需添加服务器即可,无需用户下线。为保证低成本,我们可使用标准化的普通硬件组建出最高端的系统。
Oracle 真正应用集群为 Oracle 的企业网格计算体系结构提供了基础。Oracle RAC 技术可为这一低成本硬件平台提供支持,使其提供优质的服务,并达到或超出昂贵的大型 SMP 计算机所能提供的可用性和可伸缩性等级。通过显着降低管理成本和提供出色的管理灵活性,Oracle 为企业网格环境提供了强有力的支持。 本白皮书从技术层面对 Oracle 真正应用集群
什么是 ORACLE 数据库
Oracle 真正应用集群是 Oracle 数据库的一个组件选项,在 Oracle 9i 中首次推出。Oracle 真正应用集群现已发展成一项成熟的技术,其用户过千,遍及各个行业,涉及各类应用程序。Oracle RAC 为伸缩应用程序以超越单个服务器的能力限制提供了一个选择。这使得用户可以利用低成本的普通硬件来降低他们的总拥有成本,并提供一个可伸缩的计算环境来支持其应用程序负载。 Project Mega Grid1 是一个展示项目,用于说明实际的应用负载可运行于一台 SAIP 服务器上,也可以运行于一个服务器集群中,且达到相同的性能要求。此外,集群环境还包括高可用性.Oracle 真正应用集群是 Oracle 高可用性体系结构2的重要组件,它指导着应用程序高可用性的设计。Oracle RAC 提供了在任何应用数据库应用环境中移除单点故障服务器的能力。
真正应用集群体系结构
RAC 数据库是一个集群数据库。集群是一组独立的服务器,协同合作如同一个系统。集群提供了比单对称多处理器 (SMP) 系统更好的容错和模块增量系统。发生系统故障时,集群可确保向客户提供高可用性。对关键任务数据的访问不会丢失。冗余的硬件组件(如额外的节点、互联和磁盘)使得集群能够提供高可用性。此类冗余硬件体系结构避免了单点故障并提供了异常故障恢复。
图 1 真正应用集群体系结构
在真正应用集群中,我们将 Oracle 实例(运行在一个服务器中的流程和内存结构,以充许数据访问)与 Oracle 数据库(驻留在存储器上的实际用于保存数据的物理结构,通常称为数据文件) 进行了分离。集群数据库是一个可由多个实例访问的数据库。每个实例运行于集群中的一个独立服务器上。当需要更多的资源时,可以在不停机的情况下轻松地向集群中添加节点和实例。当启动新实例后,应用程序可立即使用这一新实例,无需对应用程序或应用服务器进行任何改动。
真正应用集群是Oracle 数据库的一个扩展,所以它利用了 Oracle 数据库
Oracle 集群件
Oracle 数据库
Oracle 集群件用于监管真正应用集群数据库。当集群中的一个节点启动时,所有实例、监听程序和服务都将自动启动。如果一个实例出现故障,集群件将自动重启该实例,这样通常可在管理员发现前恢复该服务。
在 Oracle 数据库 l
硬件体系结构
Oracle 真正应用集群是一个全共享的体系结构。集群中的所有服务器必须共享用于 RAC 数据库的所有存储器。存储用的磁盘类型可以是网络连接存储 (NAS)、存储区域网络 (SAN)、或是 SCSI 磁盘。存储器的选择受限于所选用的服务器硬件及硬件供应商所支持的存储器类型。选择存储器的关键之处在于选择一个可向您的应用程序提供可伸缩 I/O 的存储系统,一个在向集群中添加服务器时可进行伸缩的 I/O 系统。
对于数据库服务器所连入的局域网 (LAN),集群还需要另外一个网络连入该局域网,用于应用程序连接。集群还需要一个专用的网络,即通常所说的互联。Oracle 建议您对这一网络使用两个网络接口,以实现高用性。我们需要使用不属于 Oracle 的网络接口来提供故障切换和负载均衡。集群使用这一互联来进行节点间消息传递。RAC 则使用这一互联来实施缓存融合技术。对于集群互联,Oracle 建议使用 UDP,不建议使用 GigE。在实际应用环境中,RAC 数据库不支持将交叉线缆用作互联。
要了解关于 Oracle 真正应用集群的认证和技术限制信息,请访问 Oracle Metalink (http:/ /metalinkoracle.com)。
文件系统和卷管理
因为 RAC 是一个全共享式的体系架构,卷管理和文件系统必须能够识别集群。Oracle 建议使用自动存储器管理 (ASM),它是 Oracle 数据库
Oracle 也支持原始设备和某些集群文件系统,如 Oracle 集群文件系统 (OCFS),这一文件系统可用于 Windows、Linux 和 Solaris(用于 Solaris 的 OCFS 将于 Oracle 数据库
虚拟互联网协议地址 (VIP)
Oracle 真正应用集群
集群验证实用程序
Oracle 数据库
在远距离集群 RAC 这一体系结构中,集群中的各节点位于不同的地理位置。远距离集群 RAC 提供了非常快速的站点故障恢复,允许所有站点中的所有节点作为单个数据库集群的一部分主动进行事务处理。当该体系结构受到世人瞩目并成功实施后,关键是要了解这一体系结构最适用的情形 — 距离、延迟时间,及其提供的保护程度。
延迟时间会产生巨大的影响,所以距离便对这一体系结构的适用情形有一些实际限制。这一体系结构适用于 2 个数据中心间的距离相对较小(小于等于
远距离集群 RAC 提供了比本地 RAC 更高的可用性,但并不能达到企业所需的完全灾难恢复要求。合理分区可以很好地防御某些灾难事件(局部断电、飞机失事、机房被淹),但并不是所有灾难事件。如地震、飓风、区域性洪灾会影响更大的区域。客户应通过分析确定一个灾难事件是否会同时影响两个站点。要实现全面的灾难防御(包括防御数据出错和区域性灾难),Oracle 建议用户结合 Data Guard 使用 RAC,如 Oracle 高可用性体系结构文档中所述。Data Guard 还提供了其它的一些功能,如支持跨 Oracle 版本进行滚动升级。
远距离集群的配置也较本地集群复杂。需要精心考虑节点的布局、表决磁盘和数据磁盘的布置.妥善实施这一体系结构后,它将提供比本地 RAC 数据库更高的可用性。Oracle 集群件、Oracle 真正应用集群和自动存储器管理可用于构建远距离集群。
ORACLE 真正应用集群的优势
高可用性
Oracle 真正应用集群
可靠性 — Oracle 数据库以其稳定性著称。真正应用集群将这一优点发扬光大,能够以单点故障方式移除服务器。如果一个实例故障,集群中的其它实例将仍然保持运行和活动状态。
恢复能力 — Oracle 数据库包含许多有助于从各类故障中轻松恢复的功能。如果 RAC 数据库中的一个实例出现故障,集群中的另外一个实例将察觉到这一故障,随后自动进行故障恢复。利用快速应用程序通知,快速连接故障转移和透明应用程序故障切换这三个功能,应用程序可以很方便地掩藏组件故障,使用户无法察觉。
持续运行 — 使用真正应用集群,在计划和意外停机期间仍可持续提供服务。如果一个节点(或实例)出现故障,数据库将仍然保持运行状态,应用程序仍可访问数据。大多数的数据库维护操作可在不中断运行的情况下完成,并且对用户透明。其它维护任务可以通过滚动方式完成,所以可将应用程序中断时间降至最少,或完全消除。快速应用程序通知和快速连接故障切换可帮助应用程序达到服务水平和掩藏组件故障。
可伸缩性
Oracle 真正应用集群提供了独一无二的应用程序伸缩技术。传统上,当服务器容量不足时,我们会使用更大的新服务器来替换它。但服务器容量越大,其价格也愈加昂贵。而对于使用了 RAC 的数据库,我们可选择其它方法进行增容。原先运行于大型 SMP 服务器上的应用程序可移植到小型服务器集群中运行。或者,您也可以选择保留现有硬件的投资,在集群中加入新服务器(或创建一个集群)来增加容量。通过 Oracle 集群件和 RAC 向集群中添加服务器时并不需要停机,且在启动新实例后,应用程序就可立即利用这些增加的容量。集群中的所有服务器必须使用同一操作系统和相同版本的 Oralce 软件,但其容量不需要一样。现在,客户可以根据自己的需要来选择集群,可以是由每台服务器含 2 个 cpu 的普通服务器组成的集群,也可以是每台服务器含 32 或 64 个 cpu 的服务器组成的集群。
Oracle 真正应用集群可以自动适应快速变化的业务要求和由此带来的负载变化。应用程序用户,或中层应用程序服务器客户端可使用服务名连接到数据库。Oracle 可在集群中的多个节点中自动进行负载均衡。在不同节点上的真正应用集群数据库实例订阅了所有或部分数据库服务。这样 DBA 就可以灵活地选择某个连接到特定数据库服务是否可以连接到某个或所有数据库节点。当应用需求上升时,管理员可以很方便地增添处理能力。RAC 的缓存融合体系结构可立刻使用新节点的 CPU 和内存资源。DBA 不需要手动对数据进行重新分区。
在 Oracle 数据库中分配负载的另一个方法通过 Oracle 数据库的并行执行特性。并行执行(如并行查询或并行 DIIL)在多个进程间划分 SQL 语句执行工作。在 Oracle 真正应用集群环境中,可在多个实例间均衡分配这些进程。Oracle 提供了基于成本的优化程序,它以并行执行作为其基础元素来制定最佳的执行方案。在真正应用集群环境中,明智的决策都要考虑到节点内和节点间的并行性。例如,完成某个查询需要 6 个查询进程,本地节点中(用户
管理 ORACLE 真正应用集群数据库为便于配置和管理,Oracle 真正应用集群提供了一个系统镜像。用户可在一个位置完成 RAC 数据库的安装、配置和管理。用于管理数据库的工具和实用程序都可识别集群,从 Oracle Universal Installer (OUI) 到 Enterprise Manager,包括数据库配置助理 (DBCA)、数据库升级助理 (DBUA)、网络配置助理 (NETCA) 和命令行,如 srvctl。
Enterprise Manager
Enterprise Manager
在 Cluster Database Page 中,您可以:
查看整体系统状态,例如,集群数据库内节点的数量及其当前的状态。
在集群数据库基础上设置警报阈值。 监视所有实例的性能标准或逐个显示,以便逐个进行比较,或在需要时了解更详细的信息。 监视集群缓存一致性情况(例如:全局缓存获取等)。执行集群数据库操作,包括启动备份与恢复,以及开始/停止实例等。 管理服务,执行创建、更改、启动/终止、启用/禁用等操作,重新部署服务并监控服务性能。
Oracle Enterprise Manager
对 Linux 操作系统,Oracle 还可以向裸节点供应“镜像”。该镜像可以由操作系统、Oracle Enterprise Manager 代理、Oracle 集群件和带真正应用集群的 Oracle 数据库组成。该镜像可以和硬件配置文件关联。这一镜像的各部分都将作为“黄金镜像”存储在 Enterprise Manager 中。用户可以使用向导程序来选择硬件并将所有镜像供给新硬件。该新节点将自动添加到这一集群中。
滚动补丁应用
Oracle 现在支持以滚动方式向 RAC 数据库的节点应用补丁,而不需要停机。补丁一次应用到一个节点,而 RAC 系统中的其它节点可正常运行和操作。这要求每个节点都有独立的 Oracle Home。根据补丁所做的更改,将补丁标记为是否作为滚动升级进行安装。一些更改实例间共享的公共结构或数据库内容的补丁将不会标记为以滚动升级方式安装。此外,只能滚动升级单个的补丁,而不是补丁集。这一功能最早在 Oracle
滚动版本升级支持
Oracle 集群件支持从第 1 版(即 Cluster Ready Services)滚动升级到第 2 版。这就可以在集群不停止服务的情况下升级集群件,实现全天候的业务运行。
Oracle RAC
通过支持具有最小停机时间的滚动升级,Data Guard 缩小了一般包含许多管理任务的大维护窗口,并实现了全天候的业务运行。
使用真正应用集群进行负载管理
使用 RAC 数据库的应用程序需要跨集群管理负载。Oracle 真正
服务
负载管理依赖于服务的使用,服务是 Oracle 数据库的
一个服务可以跨越一个 Oracle 数据库的一个或多个实例,一个实例可以支持多个服务。提供服务的实例数量是由 DBA 动态控制的,独立于该应用程序。当发生故障时,服务将自动恢复到正常运行的实例中。.当实例恢复后,任何未运行的服务都将自动恢复。
连接负载均衡
Oracle Net Services 为数据库连接提供了连接负载均衡。客户端负载均衡跨集群中所有监听程序进行连接请求均衡,方法是将集群中的所有服务器列入客户连接字符的地址表。SQL*NET 将随机选择其中的一个服务器。如果选中的服务器不可用,将尝试列表中的下一个服务器。服务器端负载均衡是在监听程序中实现的。每个监听程序会识别出集群中刺探每个服务的所有实例。基于为服务定义的目标,监听程序会选择与目标最符合的实例,然后连接到该实例。
快速应用程序通知 (FAN)
快速应用程序通知提供了 RAC 数据库和应用程序间的集成。利用这一特性,应用程序能够识别任意给定时间下的集群当前配置,从而仅连接至可响应当前应用程序请求的实例。当集群内的状态改变时,Oracle RAC
集成客户端收到这些事件后迅速做出响应。对于故障事件,通过清除到故障实例的连接可以将应用程序中断降至最低,进行中的事务中断后,将向应用程序返回一个出错提示。尝试连接的应用程序将仅指向活动实例。服务器端调出可用于记录故障单或页,通知管理员出现故障。对于正常运行事件,将创建一个新连接,让应用程序立即利用新增的资源。Oracle JDBC、 ODP.NET 和 OCI 客户端与 FAN 进行了集成。其它应用程序可以利用 FAN,方法是使用应用程序编程接口直接订阅 FAN 事件。
负载均衡顾问程序
数据库负载会随着时间而变化,集群配置也可以更改,因此,基于最新信息创建和分配数据库连接很重要。Oracle Real Application Clusters
集成的 Oracle 客户端使用这些事件合理地进行应用程序请求负载均衡。当应用程序要获取一个连接时,大多数的连接池使用随机或循环算法从池中选出一个空闲连接。使用来自负载均衡顾问程序的 FAN 事件,连接池将选择当前提供最佳服务的连接。Oracle JDBC 和 ODP.NET 通过集成负载均衡顾问程序来均衡运行时连接负载。
总结
Oracle 真正应用集群实现了高可用性和可伸缩性。通过预防硬件和软件故障,Oracle 真正应用集群提供了系统高可用性,保障了持续的数据访问。其横向和纵向伸缩特性提供了一个可在任何方向上进行扩展的平台,可支持企业业务增长。 Oracle 真正应用集群提供的透明性让现有的应用程序和许多新开发的应用程序获益匪浅。应用程序的开发和管理及更改管理因此变得更为简单,从而降低了总拥有成本。Oracle 真正应用集群凭借其功能和性能成为市场中独一无二的产品。它在全球拥有上千名用户,遍及所有行业,涉及任务关键和许多其它应用环境。