Chinaunix首页 | 论坛 | 博客
  • 博客访问: 838108
  • 博文数量: 199
  • 博客积分: 6363
  • 博客等级: 准将
  • 技术积分: 2225
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-28 10:01
个人简介

来自农村的老实娃

文章分类

全部博文(199)

文章存档

2017年(1)

2014年(2)

2013年(3)

2012年(6)

2011年(26)

2010年(34)

2009年(50)

2008年(44)

2007年(33)

我的朋友

分类: Oracle

2007-05-11 10:57:32

    使用Oracle 真正应用集群 (RAC)Oracle数据库可跨一组集群服务器运行任何打包的或自定义的应用程序,不需对这些应用程序做任何改动。这就提供了最高的可用性和最灵活的可伸缩性。如果集群中的一个服务器故障,Oracle 可继续在其余的服务器上运行。当我们需要更多的处理能力时,只需添加服务器即可,无需用户下线。为保证低成本,我们可使用标准化的普通硬件组建出最高端的系统。

    Oracle 真正应用集群为 Oracle 的企业网格计算体系结构提供了基础。Oracle RAC 技术可为这一低成本硬件平台提供支持,使其提供优质的服务,并达到或超出昂贵的大型 SMP 计算机所能提供的可用性和可伸缩性等级。通过显着降低管理成本和提供出色的管理灵活性,Oracle 为企业网格环境提供了强有力的支持。 本白皮书从技术层面对 Oracle 真正应用集群 10g 进行了概述,着重介绍了涉及为企业应用程序提供高可用性和高可伸缩性方面的功能和特性。

        什么是 ORACLE 数据库 10G 真正应用集群?

        Oracle 真正应用集群是 Oracle 数据库的一个组件选项,在 Oracle 9i 中首次推出。Oracle 真正应用集群现已发展成一项成熟的技术,其用户过千,遍及各个行业,涉及各类应用程序。Oracle RAC 为伸缩应用程序以超越单个服务器的能力限制提供了一个选择。这使得用户可以利用低成本的普通硬件来降低他们的总拥有成本,并提供一个可伸缩的计算环境来支持其应用程序负载。 Project Mega Grid1 是一个展示项目,用于说明实际的应用负载可运行于一台 SAIP 服务器上,也可以运行于一个服务器集群中,且达到相同的性能要求。此外,集群环境还包括高可用性.Oracle 真正应用集群是 Oracle 高可用性体系结构2的重要组件,它指导着应用程序高可用性的设计。Oracle RAC 提供了在任何应用数据库应用环境中移除单点故障服务器的能力。

真正应用集群体系结构

RAC 数据库是一个集群数据库。集群是一组独立的服务器,协同合作如同一个系统。集群提供了比单对称多处理器 (SMP) 系统更好的容错和模块增量系统。发生系统故障时,集群可确保向客户提供高可用性。对关键任务数据的访问不会丢失。冗余的硬件组件(如额外的节点、互联和磁盘)使得集群能够提供高可用性。此类冗余硬件体系结构避免了单点故障并提供了异常故障恢复。

1 真正应用集群体系结构

    在真正应用集群中,我们将 Oracle 实例(运行在一个服务器中的流程和内存结构,以充许数据访问)与 Oracle 数据库(驻留在存储器上的实际用于保存数据的物理结构,通常称为数据文件) 进行了分离。集群数据库是一个可由多个实例访问的数据库。每个实例运行于集群中的一个独立服务器上。当需要更多的资源时,可以在不停机的情况下轻松地向集群中添加节点和实例。当启动新实例后,应用程序可立即使用这一新实例,无需对应用程序或应用服务器进行任何改动。

    真正应用集群是Oracle 数据库的一个扩展,所以它利用了 Oracle 数据库 10g 的可管理性、可靠性和安全性特性。

Oracle 集群件

    Oracle 数据库 10g 开始提供有 Oracle 集群件,Oracle 集群件是一个专门针对 Oracle 数据库而集成和设计的可移植集群件解决方案。您不必再为构建一个 RAC 数据库而去购买第三方的集群件。Oracle 集群件与Oracle DBA 熟悉的 Oracle Universal Installer 进行了集成。支持也比以往更为简便,因为现在有一个专门的组织处理涉及集群件和集群数据库的支持问题。您可以选择使用第三方集群件来运行 Oracle RACOracle 产品可与经认证的第三方集群件共同使用,但 Oracle 集群件必须管理所有的 RAC 数据库。

    Oracle 集群件用于监管真正应用集群数据库。当集群中的一个节点启动时,所有实例、监听程序和服务都将自动启动。如果一个实例出现故障,集群件将自动重启该实例,这样通常可在管理员发现前恢复该服务。

     Oracle 数据库 l0g 2 版中,Oracle 提供了高可用性 API,这样可使用 Oracle 集群件内高可用性框架来控制非 Oracle 的流程。当向 Oracle 集群件注册流程时,需要提供如何启动、终止和监控这些流程的信息。您还可以指定当执行流程的节点出现故障时,是否将该流程转移到另一个节点。

硬件体系结构

    Oracle 真正应用集群是一个全共享的体系结构。集群中的所有服务器必须共享用于 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 位。

     要了解关于 Oracle 真正应用集群的认证和技术限制信息,请访问 Oracle Metalink (http:/ /metalinkoracle.com)

文件系统和卷管理

      因为 RAC 是一个全共享式的体系架构,卷管理和文件系统必须能够识别集群。Oracle 建议使用自动存储器管理 (ASM),它是 Oracle 数据库 10g 包含的一个特性,能够自动管理用于数据库的存储器。使用 ASM 可以方便地管理文件系统,提供异步 I/O 的性能。ASM 通过跨所有可用资源分配 I/O 负载来优化性能,且免除了手动调整 I/O 的需要。

      Oracle 也支持原始设备和某些集群文件系统,如 Oracle 集群文件系统 (OCFS),这一文件系统可用于 WindowsLinux Solaris(用于 Solaris OCFS 将于 Oracle 数据库 10g 2 版之后推出)。

虚拟互联网协议地址 (VIP)

      Oracle 真正应用集群 10g 要求集群中的每个服务器都使用一个虚拟 IP 地址。虚拟 IP 地址即是与局域网所属子网相同的子网中的一个未使用的 IP 地址。应用程序使用这一地址连接 RAC 数据库。如果一个节点出现故障,该虚拟 IP 将自动切换到集群中的另一个节点,这样就可以快速响应针对故障节点的连接请求。这提升了应用程序的可用性,因为他们的连接请求可自动切换到集群中的另一个实例,此前不再需要等待网络超时。

集群验证实用程序

     Oracle 数据库 10g 2 版引入了一个新的集群配置验证工具。该集群验证工具通过对前后安装步骤和/或配置变化进行验证,避免发生错误。它还可用于现有的集群验证。该工具可以通过命令行接口调用,也可由其它程序通过 API 进行调用,如 Oracle Universal Installer (OUI) 程序。


 远距离集群 RAC

     在远距离集群 RAC 这一体系结构中,集群中的各节点位于不同的地理位置。远距离集群 RAC 提供了非常快速的站点故障恢复,允许所有站点中的所有节点作为单个数据库集群的一部分主动进行事务处理。当该体系结构受到世人瞩目并成功实施后,关键是要了解这一体系结构最适用的情形 距离、延迟时间,及其提供的保护程度。

    延迟时间会产生巨大的影响,所以距离便对这一体系结构的适用情形有一些实际限制。这一体系结构适用于 2 个数据中心间的距离相对较小(小于等于 100 线

    远距离集群 RAC 提供了比本地 RAC 更高的可用性,但并不能达到企业所需的完全灾难恢复要求。合理分区可以很好地防御某些灾难事件(局部断电、飞机失事、机房被淹),但并不是所有灾难事件。如地震、飓风、区域性洪灾会影响更大的区域。客户应通过分析确定一个灾难事件是否会同时影响两个站点。要实现全面的灾难防御(包括防御数据出错和区域性灾难),Oracle 建议用户结合 Data Guard 使用 RAC,如 Oracle 高可用性体系结构文档中所述。Data Guard 还提供了其它的一些功能,如支持跨 Oracle 版本进行滚动升级。 

    远距离集群的配置也较本地集群复杂。需要精心考虑节点的布局、表决磁盘和数据磁盘的布置.妥善实施这一体系结构后,它将提供比本地 RAC 数据库更高的可用性。Oracle 集群件、Oracle 真正应用集群和自动存储器管理可用于构建远距离集群。

ORACLE 真正应用集群的优势

高可用性

       Oracle 真正应用集群 10g 提供了实现数据中心高可用性的基础架构。它还是 Oracle 高可用性体系结构不可或缺的一部分,提供了构建高可用性数据管理解决方案的最佳实践。Oracle 真正应用集群针对高可用性解决方案的主要特性提供了保护功能。

      可靠性 Oracle 数据库以其稳定性著称。真正应用集群将这一优点发扬光大,能够以单点故障方式移除服务器。如果一个实例故障,集群中的其它实例将仍然保持运行和活动状态。

      恢复能力 Oracle 数据库包含许多有助于从各类故障中轻松恢复的功能。如果 RAC 数据库中的一个实例出现故障,集群中的另外一个实例将察觉到这一故障,随后自动进行故障恢复。利用快速应用程序通知,快速连接故障转移和透明应用程序故障切换这三个功能,应用程序可以很方便地掩藏组件故障,使用户无法察觉。

     错误检测 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 个查询进程,本地节点中(用户

     连接到的节点)有 6 个闲置的 CPU,则只需使用本地资源来处理该查询即可。这演示了高效的结点间并行性,且消除了在多个节点间协调查询的开销。但是,如果该本地结点中只有两个 CPU,那么就由这两个 CPU 再加上其它节点中的 4 CPU 来处理这一查询。这样就利用了节点内和节点间并行性来加快查询的处理。

管理 ORACLE 真正应用集群数据库为便于配置和管理,Oracle 真正应用集群提供了一个系统镜像。用户可在一个位置完成 RAC 数据库的安装、配置和管理。用于管理数据库的工具和实用程序都可识别集群,从 Oracle Universal Installer (OUI) Enterprise Manager,包括数据库配置助理 (DBCA)、数据库升级助理 (DBUA)、网络配置助理 (NETCA) 和命令行,如 srvctl

Enterprise Manager 10g

     Enterprise Manager 10g Database Control Oracle 提供的一个用于管理 Oracle 数据库的 GUI 管理工具。在创建数据库时,DBCA 会自动配置 Database ControlEnterprise Manager 10g Grid Control Oracle 提供的一个用于管理企业的 GUI 管理工具。用户可通过 Oracle 数据库 CD 包内的一张 CD 来安装该 Grid Control。这些工具都可识别集群且提供了一个中央控制台来管理您的集群数据库。

Cluster Database Page 中,您可以:

 查看整体系统状态,例如,集群数据库内节点的数量及其当前的状态。

 查看所有实例的警报,同时详细观察每一警报的根源和其它信息。

 在集群数据库基础上设置警报阈值。 监视所有实例的性能标准或逐个显示,以便逐个进行比较,或在需要时了解更详细的信息。 监视集群缓存一致性情况(例如:全局缓存获取等)。执行集群数据库操作,包括启动备份与恢复,以及开始/停止实例等。     􀁺 管理服务,执行创建、更改、启动/终止、启用/禁用等操作,重新部署服务并监控服务性能。

     Oracle Enterprise Manager 10g Grid Control 还提供了一个集群页面来查看集群硬件和整个操作系统的状态。在集群支持多个数据库时,这一特性非常实用。用户可以轻松了解整体集群平台状态,同时也可根据需求详细了解每个独数据库的性能。

     Oracle Enterprise Manager 10g Release 2 Grid Control 中提供了一个实用工具,该工具可用于自动将Oracle 数据库实例转换为 RAC 数据库实例。Oracle Enterprise Manager 10g Release 2 Grid Control 还提供了其他简化真正应用集群供应的功能。使用 Enterprise Manager 可以轻松地完成创建集群时涉及的一些工作,如部署 Oracle home、配置集群件。Oracle Home 软件可以置于 Enterprise Manager 中作为黄金镜像,该软件也可以从其它已知的基准主机中获得。黄金镜像使用一个已知正常的 Oracle Clusterware 10g Release 2 Oracle Real Application Clusters 10g Release 2 环境实施副本创建而成。在 Grid Control 10g Release 2 中,该克隆应用程序将支持创建完全的端到端新 RAC Oracle 集群件软件,包括执行超级用户操作 (root.sh) 和可自定义的前期和反续步骤。在向当前集群中添加新节点时也可以使用它。

Linux 操作系统,Oracle 还可以向裸节点供应镜像。该镜像可以由操作系统、Oracle Enterprise Manager 代理、Oracle 集群件和带真正应用集群的 Oracle 数据库组成。该镜像可以和硬件配置文件关联。这一镜像的各部分都将作为黄金镜像存储在 Enterprise Manager 中。用户可以使用向导程序来选择硬件并将所有镜像供给新硬件。该新节点将自动添加到这一集群中。

 滚动补丁应用

     Oracle 现在支持以滚动方式向 RAC 数据库的节点应用补丁,而不需要停机。补丁一次应用到一个节点,而 RAC 系统中的其它节点可正常运行和操作。这要求每个节点都有独立的 Oracle Home。根据补丁所做的更改,将补丁标记为是否作为滚动升级进行安装。一些更改实例间共享的公共结构或数据库内容的补丁将不会标记为以滚动升级方式安装。此外,只能滚动升级单个的补丁,而不是补丁集。这一功能最早在 Oracle 9.2.0.2 中提供。所有 Oracle 集群件补丁都可以滚动方式应用。

滚动版本升级支持

     Oracle 集群件支持从第 1 版(即 Cluster Ready Services)滚动升级到第 2 版。这就可以在集群不停止服务的情况下升级集群件,实现全天候的业务运行。

     Oracle RAC 10g 2 版支持使用 Data Guard SQL Apply 以滚动方式进行数据库软件升级(从 Oracle 数据库 10g 1 版的补丁集 1 起),几乎无需数据库停机。这些步骤包括将逻辑备用数据库升级到下一个版本、在一种混合的模式下运行,以测试和验证升级、通过切换到已升级的数据库来执行角色转换,然后最终升级旧的主数据库。当为了测试而运行在一种混合模式下时,可以终止升级,降级软件,而不会有数据丢失。为了在这些步骤中提供额外的数据保护,可以使用第二个备用数据库。

    通过支持具有最小停机时间的滚动升级,Data Guard 缩小了一般包含许多管理任务的大维护窗口,并实现了全天候的业务运行。

使用真正应用集群进行负载管理

使用 RAC 数据库的应用程序需要跨集群管理负载。Oracle 真正


 

 应用集群 10g 提供了创新的技术来管理工作负载,通过对应用程序进行妥善配置并实现高可用性,可提供最好的应用程序吞吐能力。

服务

    负载管理依赖于服务的使用,服务是 Oracle 数据库的 10g 的特性。服务通过提供一个系统镜像来管理负载,隐藏了 RAC 数据库的复杂性。服务使得应用程序能够获益于集群的稳定性。通常,数据库提供一个服务且该名称即是赋予 SQL*NET 的连接数据。使用 Oracle 数据库 10gDBA 可以定义多达 100 个由一个数据库提供的数据库服务。这使得您可以基于业务需求(如服务水平和优先级)将应用程序的负载分解为可管理的部分。服务与 Oracle 数据库 10g 的许多特性进行了集成。应用程序用户可以自动分配到一个 Resource Manager 用户组,这一用户组限制了成员可使用的资源,如 cpu。批量作业可基于其服务分配到特定的作业类。在使用 Oracle Streams Advanced Queuing 时,可使用服务来实现队列的位置透明性。

    一个服务可以跨越一个 Oracle 数据库的一个或多个实例,一个实例可以支持多个服务。提供服务的实例数量是由 DBA 动态控制的,独立于该应用程序。当发生故障时,服务将自动恢复到正常运行的实例中。.当实例恢复后,任何未运行的服务都将自动恢复。

连接负载均衡

    Oracle Net Services 为数据库连接提供了连接负载均衡。客户端负载均衡跨集群中所有监听程序进行连接请求均衡,方法是将集群中的所有服务器列入客户连接字符的地址表。SQL*NET 将随机选择其中的一个服务器。如果选中的服务器不可用,将尝试列表中的下一个服务器。服务器端负载均衡是在监听程序中实现的。每个监听程序会识别出集群中刺探每个服务的所有实例。基于为服务定义的目标,监听程序会选择与目标最符合的实例,然后连接到该实例。

快速应用程序通知 (FAN)

    快速应用程序通知提供了 RAC 数据库和应用程序间的集成。利用这一特性,应用程序能够识别任意给定时间下的集群当前配置,从而仅连接至可响应当前应用程序请求的实例。当集群内的状态改变时,Oracle RAC 10g 高可用性框架将快速地发出一个 FAN 事件。

    集成客户端收到这些事件后迅速做出响应。对于故障事件,通过清除到故障实例的连接可以将应用程序中断降至最低,进行中的事务中断后,将向应用程序返回一个出错提示。尝试连接的应用程序将仅指向活动实例。服务器端调出可用于记录故障单或页,通知管理员出现故障。对于正常运行事件,将创建一个新连接,让应用程序立即利用新增的资源。Oracle JDBC ODP.NET OCI 客户端与 FAN 进行了集成。其它应用程序可以利用 FAN,方法是使用应用程序编程接口直接订阅 FAN 事件。

负载均衡顾问程序

    数据库负载会随着时间而变化,集群配置也可以更改,因此,基于最新信息创建和分配数据库连接很重要。Oracle Real Application Clusters 10g 2 版提供了一个负载均衡顾问程序。通过由每个实例刺探服务,RAC 始终不停的监视针对每个服务执行的负载。该信息将通过 FAN 事件发布到 Automatic Workload Repository 和应用程序。FAN 事件包含当前所提供的服务水平,并建议了指向每个实例的连接的百分比。

    集成的 Oracle 客户端使用这些事件合理地进行应用程序请求负载均衡。当应用程序要获取一个连接时,大多数的连接池使用随机或循环算法从池中选出一个空闲连接。使用来自负载均衡顾问程序的 FAN 事件,连接池将选择当前提供最佳服务的连接。Oracle JDBC ODP.NET 通过集成负载均衡顾问程序来均衡运行时连接负载。

总结

     Oracle 真正应用集群实现了高可用性和可伸缩性。通过预防硬件和软件故障,Oracle 真正应用集群提供了系统高可用性,保障了持续的数据访问。其横向和纵向伸缩特性提供了一个可在任何方向上进行扩展的平台,可支持企业业务增长。 Oracle 真正应用集群提供的透明性让现有的应用程序和许多新开发的应用程序获益匪浅。应用程序的开发和管理及更改管理因此变得更为简单,从而降低了总拥有成本。Oracle 真正应用集群凭借其功能和性能成为市场中独一无二的产品。它在全球拥有上千名用户,遍及所有行业,涉及任务关键和许多其它应用环境。

阅读(5248) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~