毕业设计(论文)-Oracle RAC实时应用集群的设计与实现.doc_第1页
毕业设计(论文)-Oracle RAC实时应用集群的设计与实现.doc_第2页
毕业设计(论文)-Oracle RAC实时应用集群的设计与实现.doc_第3页
毕业设计(论文)-Oracle RAC实时应用集群的设计与实现.doc_第4页
毕业设计(论文)-Oracle RAC实时应用集群的设计与实现.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南 阳 理 工 学 院本科生毕业设计(论文)学院(系): 软件学院 专 业: 网络工程 学 生: 指导教师: 完成日期 2013 年 05 月南阳理工学院本科生毕业设计(论文)Oracle RAC实时应用集群的设计与实现Design and Implementation of theOracle Real Application Clusters总 计:毕业设计(论文) 35页表 格: 2个插 图: 39幅Oracle RAC实时应用集群的设计与实现南 阳 理 工 学 院 本 科 毕 业 设 计(论文)Oracle RAC实时应用集群的设计与实现Design and Implementation of theOracle Real Application Clusters学 院(系): 软件学院 专 业: 网络工程 学 生 姓 名: 学 号: 指导教师(职称): 评 阅 教 师: 完 成 日 期: 2013年05月01日 南阳理工学院Nanyang Institute of TechnologyOracle RAC实时应用集群的设计与实现网络工程 蔡尚易摘 要 作为IT系统的核心, 数据库服务器系统应具有极高的可靠性, 以保证应用系统能够及时的访问到数据库中的数据。相较而言,数据安全、性能、可用性、可伸缩性、平台无关性以及低价格导致对于传统数据库应用的要求也越来越高。RAC的出现成功解决了传统数据库应用中所面临的这一问题。本设计详细实现了基于Linux系统平台的双节点Oracle 11g RAC实际生产数据库集群案例。本设计的RAC是建立在Red Hat Enterprise Linux 6.3系统之上的,硬件是两台浪潮NF8560M2数据库服务器和同友NetStor iSUM 550-16R2FS21磁盘阵列。本次设计详细实现了Linux平台系统规划,集群机构以及存储的规划,并对其进行了可高用和负载均衡测试,有效的解决了单机数据库服务器的安全问题和数据处理压力。关键词 Oracle;实时应用集群;内存融合;ASM;高可用Design and Implementation of theOracle Real Application ClustersNetwork Engineering MajorCai ShangYiAbstract: As the core of the IT system, the database server system should have high reliability, in order to ensure the application system can timely access to data in a database.In contrast, data security, performance, availability, scalability, platform independence and low prices lead to traditional database application requirements are also getting higher and higher. RAC has successfully solved the traditional database application in the face of this problem. In this design implementation in detail to build on Linux systems the details of a two-node Oracle 11g RAC real case of the production database cluster.The design of the RAC is built on top of Red Hat Enterprise Linux 6.3 system, the hardware is two Inspur of NF8560M2 the database server and with the NetStor iSUM 550-16R2FS21 disk array.The design of a detailed plan of implementation of the Linux platform system, cluster agencies, as well as storage planning, and load balancing, effectively solved single database server security issues and data processing of pressure.Key words: Oracle; Real Application Cluster; Cache Fusion; ASM; High-availability目 录1 绪论11.1 课题研究的背景和意义11.2 RAC国内外现状21.3 RAC的应用及发展31.3.1 高性能计算科学集群31.3.2 负载均衡集群31.3.3 高可用性集群31.3.4 网格集群31.4 课题目标42 Oracle RAC实时应用集群42.1 什么是Oracle RAC42.1.1 Oracle RAC基本结构52.1.2 集群网络结构52.1.3 Oracle高可用解决方案62.2 RAC技术特点72.3 RAC的基本原理82.3.1 RAC的原理核心82.3.2 RAC集群环境中几个关键问题102.4 RAC的组成结构112.4.1 RAC集群的逻辑结构112.4.2 RAC集群的体系架构123 Oracle 11g RAC集群设计与实施案例143.1 PGIS项目简介143.1.1 硬件环境143.1.2 软件环境143.1.3 Oracle 11g RAC实施任务列表143.2 Oracle 11g RAC实施规划153.2.1 网络规划153.2.2 存储方案选型153.3 Oracle 11g RAC系统环境配置163.3.1 配置主机解析文件和软件包163.3.2 系统内核参数和shell限制183.3.3 Oracle RAC时钟同步193.3.4 对用户的设置和要求203.3.5 RAC节点间SSH等效性建立223.3.6 盘阵的划分和raw的建立233.4 集群组件grid的安装配置253.4.1 检测安装环境253.4.2 集群组件grid安装过程253.5 对database的安装和配置273.5.1 创建ASM磁盘组293.6 DBCA创建集群数据库294 Oracle 11g RAC测试304.1 查看ASM304.2 查看数据库配置314.3 查看TNS314.4 查看集群及实例状态32结束语33参考文献34致谢351 绪论在计算机科学技术领域中,数据库技术是研究最广泛、发展比较快的领域之一。在信息现代化社会中,数据库技术已经成为企业保存以及使用数据的基础和核心。数据库技术是信息系统的一个核心技术,是一种计算机辅助管理数据的方法,它研究如何组织和存储数据,如何高效地获取和处理数据,是通过研究数据库的结构、存储、设计、管理以及应用的基本理论和实现方法,并利用这些理论来实现对数据库中的数据进行处理、分析和理解的技术。1.1 课题研究的背景和意义自从计算机诞生以来,在全世界就产生了一个全新的行业。无数工程师投身于这个新兴的行业。然而,在这个行业里挣扎多年以后,工程师们发现了一个他们不愿意承认的事实:计算机是不安全的。无论人们做什么样的努力,计算机还是不安全的。计算机的安全实际上就是数据的安全。为了保证数据的安全,人们开发了许多附加于计算机之上的硬件和软件产品,如防火墙、杀毒软件、磁盘阵列、集群、异地容灾等,借助于这些产品,人们希望能够尽量保证数据不受诸如病毒感染、黑客攻击、硬件故障、极端分子破坏等各种事件的影响。集群是一种软件和硬件相结合的应用环境,它的功能是向用户提供一个可以24小时不间断访问的高可用环境。目前各个大的计算机公司都有自己的集群软件,如IBM公司的HACMP,HP公司的ServiceGuard、SUN公司的SUN Cluster,以及Oracle公司的RAC 。其中前三种产品只能安装到各公司自己的操作系统中,而RAC可以安装到各个主流的操作系统中,可以应用于适合数据库运行的各种环境。Oracle RAC,是Oracle Real Application Clusters,官方网站称其为真正应用集群,是Oracle数据库实现高可用性的一种技术。RAC是Oracle公司实现网格计算环境的核心技术。它一般由两台或者两台以上同构计算机及共享存储设备构成,可以提供强大的数据处理能力,是Oracle Grid应用的重要组成部分。真正应用指的是它能够支持所有主流的商业应用系统。Oracle RAC可以支持Oracle9i及以上版本,可以支持24 x 7这样对数据库有着极高要求的应用系统,降低成本来构建具有高可用性的数据库应用系统,并且可以不需要修改之前的应用代码,对应用系统进行自由部署。在Oracle RAC集群中,Oracle还内置了存储管理软件ASM和集群软件Clusterware,这样就降低了成本。而且当整个应用系统的规模需要扩充时,用户可以根据需求扩展应用系统,从而保证系统的性能。长期以来,在业界流行着以是否有RAC经历来衡量DBA水平。虽然并不十分的准确,但某种程度上反映了RAC在Oracle金字塔的顶尖地位。造成这种现象的原因有很多,作为一种高端解决的方案,RAC在实施成本一度都是很高的,除开硬件成本,OS License,Oracle License成本,还包括第三方的Cluster软件成本,人力成本,因此RAC案例一直集中在电信,银行,制造等大企业,中小企业鲜有问津,绝大多数的DBA很难有机会接触到这种环境。但随着芯片技术的发展,近年来硬件成本不断的降低。在软件方面,更多的企业已经在核心业务上选择Linux作为首选平台,Oracle尤其重视在Linux平台上的应用,它也是第一个支持Linux平台的商业数据库。因此,Oracle RAC的部署成本不断降低,越来越多的企业选择Oracle RAC数据库集群解决方案。1.2 RAC国内外现状对于大部分担任关键任务的系统来说,都需要具有高可用性的计算机系统,这些系统如果出现数天甚至只是几个小时的停机,都很有可能使公司蒙受巨大的损失。大部分担任关键任务的系统都不能而且也不允许出现哪怕是片刻的停机。目前已经有很多种解决方案用来减少系统的非正常停机时间,延长系统的正常运行时间,主要有:Oracle RAC、Data Guard以及其他解决方案。其中,RAC和Data Guard都属于Oracle公司最大可用性体系结构(Maximum Availability Architecture,MAA)的一部分。MAA融合了几种高可用性、可容错性及灾难恢复的解决方案,目的就是提供具有最大可用性的系统。在过去近40年时间里,Oracle公司从一家普通的数据库产品开发和销售公司成长为业界广泛认可的数据库产品领导者。今天数据系统已经成为了企业的重中之重,而企业对数据库的可用性要求也越来越高。随着数据库系统高可用性理论日趋成熟,它也越发的被重视。无论是国内还是国外的IT界都加快了对HA技术和HA框架的研究。HA解决方案都是被国外厂商所领导,他们凭借早期的研发能力,雄厚的资金支持以及完善的产品链,推出了诸多不同层次,各具特色的高可用性解决方案。像HP、EMC、IBM等公司都在商务主机和存储的层面提高了数据库系统的可用性。而国内对于数据库的研究起步时间则比较晚,因此对于数据库的优化技术及应用的研究没有国外成熟。目前,国家863计划对于数据库软件产品的开发给予了特别的支持,设立了国家863计划“数据库管理系统及其应用”重大专项,对于国内数据库软件的发展具有重大的意义。其中,数据库KingbaseES对于CPU、内存等资源的要求不高,可以根据需求进行调整,在一定程度上提高了系统的工作效率。就国内而言,近年来,各行业都开始借鉴国外经验使用高可用的方案来解决存储,数据的问题。由于我国在软硬件技术和系统架构上与发达国家存在较大差距,国内所使用的高可用性解决方案大部分都采用国外的产品,在已经建成并投入使用的高可用性框架也存在功能单一,投入成本高,投资回报率低,结构复杂,管理成本居高不下等问题。当然,这个问题也在慢慢的得到了解决,现在的中小型企业所采用的基于PC Server的RAC就可以很好的解决。随着企业业务的发展,企业对数据的可靠性要求越来越高。随着高可用性方案实施成本的不断降低,相信在未来的一段时间,更多的企业会选择HA方案解决数据的存储和管理问题。1.3 RAC的应用及发展简单的说集群(Cluster)就是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文件服务等)的单一客户视图,同时提供接近容错机的故障恢复能力。集群系统就是将多台服务器用集群软件连接在一起,作为一个整体为客户端提供服务,每个集群节点都是运行其自己进程的独立服务器。这些进程可以彼此通信,对网络客户来说就像是形成了一个单一系统,协同起来向用户提供应用程序、系统资源和数据。除了作为单一系统提供服务,集群系统还具有恢复服务器级故障的能力1。集群系统还可通过在集群中继续增加服务器的方式,从内部增加服务器的处理能力,并通过系统级的冗余提供固有的可靠性和可用性。集群根据其功能的侧重点不同,可分为以下几类:1.3.1 高性能计算科学集群以解决复杂的科学计算问题为目的的认集群系统,是并行计算的基础。它可以不使用专门的由十至上万个独立处理器组成的并行超级计算机,而是采用通过高速网络来链接一组1/2/4CPU的IA服务器,并且在公共消息传递层上进行通信以运行并行应用程序。这样的计算集群,其处理能力与真正超级并行机相等,并且具有优良的性价比。例如:Beowulfo2。当谈到Linux集群时,许多人的第一反映是Beowulfo它是最著名的Linux科学软件集群系统。实际上,它是一组适用于在Linux内核上运行的公共软件包的通称。其中包括流行的软件消息传递API,如“消息传送接口(MPI)或“并行虚拟机(PVM)。1.3.2 负载均衡集群负载均衡集群为企业需求提供更实用的系统,使各节点的负载流量可以在服务器集群中尽可能平均合理地分摊处理。该系统需要均衡处理端口负载或网络流量负载。这样的系统非常适合于大量用户运行同一组应用程序。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。对于网络流量也如此。通常,网络服务器应用程序接受大量入网流量,无法迅速处理,这就需要将流量发送给其它节点。负载均衡算法还可以根据每个节点不同的可用资源或网络的特殊环境来进行优化。1.3.3 高可用性集群为保证集群整体服务的高可用,考虑计算硬件和软件的容错性。如果高可用性集群中的某个节点发生故障,那么将由另外的节点代替它。整个系统环境对于用户是一致的。1.3.4 网格集群网格计算(Grid computing)网格计算或网格集群是一种与集群计算非常相关的技术。与传统集群相比,网格是连接一组相关却不信任的计算机,它的运作更像一个计算公共设施而不是一个独立的计算机,通常比集群支持更多不同类型的计算机集合。网格计算是针对有许多独立作业的工作任务作优化,在计算过程中作业间无需共享数据,主要服务于管理在独立执行工作的计算机间的作业分配。资源如存储可以被所有结点共享,但作业的中间结果不会影响在其他网格结点上作业的进展。1.4 课题目标群集不但提供了多种增强性能和可扩展性的特性,而且从高可用性的角度来看它提供了大量由其他结构无法提供的特性。本文主要目标是建立一个高可用性数据库群集系统,并满足以下两要求:能够提供不间断的服务。就是系统连续运行的时间,对用户来说,这个时间越长越好。具体说就是达到9999的可靠性;系统不会出现硬件故障而宕机。当系统中的某一硬件出现故障时,能够迅速的解决故障,保证系统能正常的运行下去。确保数据安全。无论遇到何种灾难,数据不会丢失。在系统遇到故障时能够在最短时间内恢复,把影响降到最低。2 Oracle RAC实时应用集群现在Oracle数据库产品的质量和影响力已今非昔比,它所拥有的技术含量已被业界视为达到了顶尖的水平。随着每一个数据库版本的发布,Oracle在不断改进其产品的可扩展性,功能性以及易管理性。Oracle还提出了“100平方米绿色数据中心”的概念,就是用100平方米部署8台冰箱大小的Exalogic和Exadata,以替代常规5000平方米的数据中心,满足任何一个企业或者任何云计算中心的数据交易需要。2.1 什么是Oracle RACOracle RAC,全称Oracle Real Application Clusters,译为“实时应用集群”, 是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。Oracle RAC技术(9i以前的版本称作Oracle Parallel Server,OPS)1617用来在集群环境下实现多机共享数据库,以实现应用的高可用性,同时可以自动实现并行处理及负载均衡,还能实现数据库在故障时的容错和无断点恢复。Oracle RAC技术具有共享缓存体系结构,它运行在通过集群互联和共享存储设备子系统连接在一起的多台机器上。数据文件存储在共享存储设备(一般是磁盘阵列)脚1上,允许多个Oracle实例同时访问一个数据库存储设备,实例之间共享缓存,共享同一数据文件,保证了所有数据在任意时刻对所有节点来说都是相同的。Oracle RAC系统的结构主要分三部分:节点、私有网络、和共享磁盘。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。2.1.1 Oracle RAC基本结构Oracle RAC的实质是位于不同操作系统的Oracle实例节点同时访问同一个Oracle数据库,每个节点间通过私有网络进行通信,互相监控节点的运行状态,Oracle数据库所有的数据文件、联机日志文件、控制文件等均放在集群的共享存储设备上,而共享存储设备可以是RAW、ASM、OCFS2等,所有集群节点可以同时读写共享存储。如图2-1所示,RAC拓扑从逻辑上显示了RAC集群的层次结构。RAC集群由多个服务器节点组成,而节点间通过心跳线连接,每个节点上都运行着一个或多个Instance,实例之间通过集群中间件的协助,共同操作一个数据库。所有的服务和程序通过操作系统都去访问一个共享存储,最终完成数据的读写。用户所看到的仅仅只有一个数据库。图2-1 RAC集群拓扑图2.1.2 集群网络结构在RAC集群环境中,有三个网络:Public网络,用于对外提供数据查询服务;Private网络,用于RAC心跳和Cache Fusion;第三个则是存储设备和与之配套的网络设备(生产环境中一般是光纤交换机和每个节点的HBA卡)。前二者用于传输网络数据,而第三个用于传输SCSI数据。目前常用的都是千兆级别的网络,但是随着技术的发展,已经出现了万兆传输的网络,以及使用Infiniband技术来实现高速传输网络。在11g R2版本中,Oracle开始允许有多个公共网络,每个网络有自己的一个SCAN名称对外接收连接请求。Oracle 11g RAC网络拓扑如图2-2所示:图2-2 RAC集群网络配置2.1.3 Oracle高可用解决方案如图2-3所示,Oracle提供了计划内和计划外两大类的高可用解决方案,主要包括系统故障、数据故障、系统变更、数据变更。其中解决系统故障和数据故障是本次设计主要研究的内容,RAC多节点能保障数据库系统有较高的容错能力,ASM存储技术为数据的存储和管理提供更好的安全性。图2-3 Oracle高可用解决方案随着计算机应用的不断深入,人们对计算机系统高可用性(HighAvailability)的要求越来越高,特别是企业基于数据库的关键业务系统,往往维系着企业的生命。人们不仅希望保障关键业务数据信息的完整,而且希望联机应用能够不问断或者在最短的时间内自动恢复,这就是所谓的计算机系统的可靠性、可用性问题。一般来说,数据库系统的高可用性主要是通过双机备份或者多机的集群来实现的。集群系统由一组通过高速网络互联的服务器和存储设备组成,集群中的每个服务器称为节点。这些节点协调工作,对外提供一个单一、完整、灵活的数据资源。采用数据库集群技术实现高可用性系统已经成为实现大型数据库系统的主流设计方案。图2-4 Oracle容灾方案Oracle Data Guard容灾方案是专为数据库备份而设计的,它提供了远程磁盘镜像技术所无法实现的功能,特别是在远程数据库备份过程中,Data Guard的优势更加明显。对于Oracle数据库远程异步备份而言,Data Guard则提供了更有效可行、成本更低的Oracle数据库灾备方案,而远程磁盘镜像技术却无法保证写操作顺序的一致性,导致数据坏块的可能性增大,甚至有可能使备份数据库无法打开。2.2 RAC技术特点Oracle中提供Rac技术来实现并行服务器。并行服务器方式是多个服务器构成的集群,集群里面的每一个服务器都有自己的CPU和实例内存,它们同时对一个数据库进行操作。并行服务器方式至少需要双机支持,支持平衡负载,对于大量用户访问环境,可以在多个服务器上同时处理用户的请求。在这种多机环境中如果尚有一台服务器正常运行,不会造成整个应用的停止。RAC技术的优点有高可用性和高可扩展性1)高可用性,是指除了提供所需性能和协调单个服务器工作外,同时提供容错功能以保证系统最大的正常工作时间。实现群集的完全冗余,让数据库在某个群集组件(服务器、交换机、磁盘、内部连接器等)失效的情况下能继续正常工作。它提供了真正的高可用性解决方案,关键的突破是在数据库恢复期间能提供完整的数据库访问。这使得Real Application Clusters成为系统应用所要求的24x7可用性的最佳平台。RAC高可用性在三个关键领域胜出。第一,提供了数据库恢复期间的数据块访问。第二,透明的失效转移,对最终用户屏蔽了系统失效。第三,N-1节点失效的容错能力,只要有一个数据库节点幸存,RAC就能够提供完全的数据库访问和相对不间断的操作。2)高可扩展性,是指支持活动群集。通过它,多台服务器可平行工作于共同的数据上,通过一个群集内部连接技术,共享数据库存储,使企业町以用低成本的小群集开始部署并随着需求的增大而不断加入节点。Oracle在集群中多个节点之间自动平衡用户负载,不同节点上的Real Application Clusters数据库实例预订所有数据库服务或者部分子集数据库服务。虽然每一个节点有一个不同的物理IP地址,但应用客户仍可以在一个逻辑数据库服务名的水平上进行连接。因此客户端对于不相关的事情如多服务器的多个地址可以毫不关心。2.3 RAC的基本原理RAC是一个具有共享缓存体系结构的集群数据库,本质上还是一个关系型数据库,克服了传统的共享磁盘方法的限制,为所有业务应用程序提供了一种可伸缩性和可用性的数据库解决方案,一般与Oracle Clusterware或第三方集群软件共同组成Oracle集群系统。2.3.1 RAC的原理核心RAC是一个具有共享缓存体系结构的集群数据库,本质上还是一个关系型数据库,克服了传统的共享磁盘方法的限制,为所有业务应用程序提供了一种可伸缩性和可用性的数据库解决方案,一般与Oracle Clusterware或第三方集群软件共同组成Oracle集群系统。作为数据库管理系统而非数据存储,最大的区别就是数据库系统提供了最大程度的并发访问-并发读取和并发修改。因RAC是运行于多台计算机的数据库,并发也从单机的多进程间并发发展到了多机上的多进程并发。对于这种并发问题,RAC通过分布式锁管理器(Distributed Lock Management,DLM)解决。DLM拥有仲裁的能力,记录哪个节点正在使用哪种方式操作哪种数据,并负责协调和解决节点间的竞争。RAC集群的最核心的功能Cache Fusion(内存融合)是Oracle 9i时引进的新技术,它将所有的SGA虚拟称为一个大的SGA区域,通过高速私有网络,进行实例间数据块传递(Cache Fusion前提,网络的速度比磁盘访问的速度快)。每当有不同的实例请求相同的数据块的时候,这个数据块就在实例间进行传递。Cache Fusion通过互联网络在集群内各节点的SGA之间进行块传递,避免先将块送到磁盘,再重新读入到其他实例的缓存中的低效方式。Cache Fusion体系结构如图2-5所示:图2-5 内存融合体系结构Cache Fusion把每个节点的内存逻辑看成一个大的SGA,然后通过网络来提供物理传输。当节点请求一个块时,不从磁盘中读取,而是向GCS服务发出请求Resouce Master(存放当前哪些实例持有哪些块的信息),Resource Master所在的实例请求当前持有块的实例向发出请求的实例传输块。当一个块被读入RAC环境中某个实例的缓存时,该块会被赋予一个锁资源,以确保其他实例知道该块正在被使用。若另一个实例请求该块的一个副本,而该块已经处于前一个实例的缓存内,那么该块会通过互联网络直接被传递到另一个实例的SGA。如果内存中的块已经被改变,但改变尚未提交,那么将会传递一个CRS副本。这意味着只要可能,数据块可在各实例的缓存之间无需写回磁盘的移动,避免了同步多实例的缓存所花费的额外I/O。不同的实例缓存的数据可以是不同的,也就是在一个实例要访问特定块之前,而它又从未访问过这个块,那么它要么从其他实例Cache Fusion,或者从磁盘中读入。可以看出,Cache Fusion资源实际上就是一个个的数据块的映射。对于Cache Fusion而言,每一个数据块都会被映射成一个Cache Fusion资源,这实际上是一个数据结构,资源名就是数据块的地址(DBA)。每个数据的请求动作时分布完成的。针对资源性质的不同,RAC将共享资源从性能上分成两类,Cache Fusion Resurce和Non-Cache Fusion Resource,对于不同的资源使用不同的锁机制。2.3.2 RAC集群环境中几个关键问题健忘症(Amnesia)。集群环境配置文件通常都不是集中存放,而是每个节点都有一个本地副本,在集群正常运行时,用户可以在任何节点更改集群的配置,并且这种更改会自动同步到其他节点。但也可能会出现这种情况:一个双节点集群,节点A因正常维护而关闭,然后再节点B上修改了某些配置文件,然后关闭节点B,并启动节点A,此时节点B的修改是无法同步到节点A上的,因此节点A使用的仍然是老的配置文件,这种情况下,修改的配置文件是丢失的,就是所谓的健忘症.脑裂(Split Brain)。在集群中,节点间都是通过心跳了解彼此的健康状态,以确保各节点协调工作。这里作一个假设,假设心跳出现问题各个节点还在正常运行。这时,每个节点都认为其他的节点宕机了,自己是整个集群环境中的“唯一存活者”,自己应该获得整个集群的控制权。在集群环境中,存储设备的共享也就意味着数据的不完整性,也即是数据灾难,这就是“脑裂”。脑裂的后果是很严重的:共享资源被瓜分,两边服务都宕掉;或双方服务都启动,但同时读写共享存储,导致数据损坏(如数据库轮询的联机日志出错)。对HA系统“裂脑”,通常使用投票算法(Quorum Algorithm)。原理如下:集群中各个节点以心跳机制通报彼此的健康状态,设每收到一个节点的“通报”代表一票。对3个节点的集群,A心跳出现问题后,B和C是一个partion,有2票,A只有1票。按照投票算法,B和C组成的集群获得控制权,A被剔除。那么就由节点B和节点C组成的新集群来继续对外提供服务;但如果只有2个节点,投票算法就失效了。此时,就引入了第三个设备:Quorum Device,它通常使用共享磁盘,也叫作Quorum disk。这个Quorum Disk也代表一票,当2个节点心跳出现问题时,各节点同时去争取Quorum Disk这一票,最早到达的请求被最先满足。故先获得Quorum Disk的节点就获得2票,余下节点就被剔除。除此之外大概有以下几种对策1)添加冗余的心跳线。尽量减少“裂脑”发生机会。2)启用磁盘锁。正在服务一方锁住共享磁盘,“裂脑”发生时,让对方完全抢不走共享磁盘资源。但如果占用共享盘的一方不主动解锁,另一方就永远得不到共享磁盘。若服务节点突然死机或崩溃,就不能执行解锁命令,后备节点也就接管不了共享资源和应用服务。于是有人在HA中设计了智能锁(正常节点只在发现心跳线全部断开时才启用磁盘锁);设置仲裁机制。如设置参考IP(如网关IP),当心跳线完全断开时,各节点都ping参考IP,不通则表明断点就出在本端,那就主动放弃竞争,让能够ping通的一端去启服务。更保险的作法,ping不通的一方自我重启,以释放可能还占用着的那些共享资源。3)IO隔离(IO Fencing)。当集群系统出现“脑裂”问题的时候,可以通过投票算法来解决谁获得集群控制权,谁应该被赶出集群。而且还必须保证被赶出去的结点不能操作共享数据。因为此时该节点很有可能还在运行当中,如果不加以限制,那么很可能会修改共享数据。这就是IO Fencing要解决的问题。IO Fencing的实现有硬件和软件2种方式:对支持SCSI Reserve/Release命令的存储设备,可以用SG命令来实现,正常的节点使用SCSI Reserve命令“锁住”存储设备,故障节点发现存储设备被锁住后,就知道自己被赶出了集群,也就是说自己出现了异常情况,就要自己进行重启,以恢复到正常状态,也叫Sicide(自杀)机制(即所谓的软件方式),Sun和Veritas使用的就是这种机制;而硬件方式STONITH(Shoot The Other Node in the Head)是直接操作电源开关,当一个节点发生故障时,如果另一节点能侦测到,就会通过串口发出命令,控制故障节点的电源开关,通过暂时断电再上电的方式使故障节点被重启动,当然,这需要硬件支持。CRS采用的是软件方式,直接重启故障节点。事实上,无论采取哪种方式,其目的都是相同的:保证故障节点不能再访问共享数据。2.4 RAC的组成结构2.4.1 RAC集群的逻辑结构Oracle术语中实例和数据库是两个不同的概念,实例是指由SGA和后台进程组成的实时运行环境,是动态概念;而数据库特指数据文件,控制文件和日志文件这些永久保存在存储设备上的文件,是静态概念。Oracle的实例和数据库是一对一或多对一关系,这个不容易区别 (Oracle的架构中都要区分,虽然许多时候二者可以互换)。存储层。虽然在RAC系统中有多个实例,但是只有一个数据库运行在共享磁盘上,数据文件,联机日志,控制文件等文件在集群中都只有一份(镜像不算)。所有的RAC节点平等使用这些文件。网络层。在RAC集群环境中,有三个网络:Public网络,用于对外提供数据查询服务;Private网络,用于RAC心跳和Cache Fusion;第三个则是存储设备和与之配套的网络设备(生产环境中一般是光纤交换机和每个节点的HBA卡)。前二者用于传输网络数据,而第三个用于传输SCSI数据.集群层。单机环境下,Oracle运行在OS内核之上,OS内核负责管理管理硬件设备,同时提供硬件访问接口。Oracle通过OS内核来实现对硬件的调用请求。在集群环境下,存储设备共享。因普通OS内核只能控制单机上多进程的访问,无法实现多主机间的协调工作。此时,就引入额外的控制机制,在RAC中,这个机制就是位于Oracle和OS内核之间的Cluseterware,Clusterware会在OS内核之前截获请求,然后和其它节点上Clusterware协商,最终完成上层的请求。图2-6 集群层位置示意图应用层。集群环境之所以能够提高可用性,是因为CRS对运行其上的应用进行监视,并在发生异常时进行重启、切换等进行操作。这些被CRS监控的对象就叫做CRS Resource,应用层由若干的CRS Resource组成。CRS Resource可以理解为一个进程或一组进程组成的一个完整服务。这些CRS Resource是在RAC安装时创建并注册到CRS中,以元数据(metadata)形式被记录在OCR磁盘上,这些元数据包括CRS Resource的名称、如何启动、停止、如何检查健康状况等配置信息。2.4.2 RAC集群的体系架构RAC集群与传统单实例架构相比,RAC Instance的SGA最显著的变化是多出了一个Global Resource Directory部分。逻辑结构上看,每一个参加集群的节点有一个独立的instance,这些instance访问同一个数据库。节点之间通过集群软件的通讯层(communication layer)来进行通讯。同时为了减少IO的消耗,存在了一个全局缓存服务,因此每一个数据库的instance,都保留了一份相同的数据库cache。图2-7 传统的单实例架构每个RAC实例都有和单实例数据库系统一样的后台进程,比如SMON、PMON、DBWn、LGWn、ARCn和CKPT。而每个RAC实例同样也有RAC特有的后台进程,比如LMON、LMSn、LMDn和DIAG等18。图2-8 Oracle RAC集群架构3 Oracle 11g RAC集群设计与实施案例由于PGIS应用系统的大数据量和高并发量特点,为满足PGIS项目的数据存储与应用需求,项目组决定采用Oracle 11g RAC技术。3.1 PGIS项目简介警用地理信息系统(Police Geographic Information System),公安部项目初始建设是始于2003年。主要完成的功能是:地址搜索、辅助处警功能,以实现公安指挥中心的数字化指挥。主要应用包括接警定位,定位方式包括地名地位、道路定位、交叉路口定位、路灯定位、门牌定位、移动电话定位等多种方式;处警过程中的GPS车辆呼叫、最短路径分析、GPS车辆搜索、绿波支持、视频浏览等功能。3.1.1 硬件环境安装Oracle RAC,环境的配置是最重要的。总的来说,RAC的硬件环境包括了主机、共享存储、互联网络设备。服务器型号:浪潮NF8560M2磁盘阵列型号:同友NetStor iSUM550-16R2FS21光纤交换机型号:浪潮FS58003.1.2 软件环境(1)操作系统RAC节点上的OS必须是相同的版本,无论是大小版本还是补丁包都必须一样。本项目集群采用Oracle Linux Release 5 Update 8 for x86_64操作系统。(2)集群组件集群件负责管理整个集群环境中的硬件资源,并为上层RAC集群提供基础的服务它和操作系统的关系类似于应用程序与操作系统的关系。本项目采用p10404530_112030_Linux-x86-64_3of7.zip集群组件。(3)集群文件系统RAC的大多数文件都需要存放在共享存储中,要保证所有节点都能访问到这些文件,因此就必须使用特殊的存储策略。本项目采用ASM裸设备存储策略。(4)数据库软件本项目采用linux.x64_11gR2_database_1/2of2.zip数据库软件。3.1.3 Oracle 11g RAC实施任务列表技术上来说,RAC搭建比较容易出错,因此有必要完成一份详细的任务清单。图3-1 RAC的任务列表3.2 Oracle 11g RAC实施规划1)安装并配置服务器操作系统;2)配置所需环境参数;3)安装grid集群软件;4)安装Oracle 11g数据库软件;5)DBCA建库;6)测试Oracle 11g RAC;3.2.1 网络规划pgiskz1:数据库服务器pgiskz2:数据库服务器表3-1 IP地址分配方案主机名网卡IP地址备注pgiskz1eth04公网IPpgiskz1N/A6虚拟IPpgiskz1eth14私有IPpgiskz2eth05公网IPpgiskz2N/A7虚拟IPpgiskz2eth15私有IPrac-scan8scan IP注:此处要注意公网IP、虚拟IP、scan IP要在同一网段,所以要申请虚拟IP和scan IP地址,以确保这些地址没有分配给其它公网IP。3.2.2 存储方案选型RAC和单实例在存储上的主要区别是:RAC所有的数据文件必须在共享设备(或者是raw设备或者是集群文件系统)必须在每个节点上创建至少两组日志,并且所有的日志文件被存储到共享设备来满足实例或者介质恢复。每个实例必须创建一个共享的undo表空间,每个实例的undo表空间必须能被其他的实例共享来完成恢复。如果使用集群文件系统,能够实现在任何时间任何节点访问这些归档日志文件,如果不使用集群文件系统,必须使其他的集群成员能够访问自己的归档日志,以便能够完成恢复,可以通过NFS实现归档日志在所有节点的共享,如果使用快速闪回区,快速闪回区必须是一个共享的目录。ASM是oracle10.1中开始引入的,它是Oracle的物理数据库结构上的一个支持集群的逻辑卷管理器。可以存储在ASM中的文件包括控制文件、数据库文件和在线重做日志(还有spfile和归档日志)。直到11g R2,都不能存储任何类型的操作系统文件。共享磁盘系统种类如图3-2所示。图3-2 RAC 共享磁盘系统3.3 Oracle 11g RAC系统环境配置Oracle 11g RAC环境搭建大体可分为三个部分:参数配置、软件安装、环境测试。3.3.1 配置主机解析文件和软件包(1)pgiskz1节点:vi /etc/hosts localhost.localdomain localhost4 pgiskz5 pgiskz24 pgiskz1-priv5 pgiskz2-priv6 pgiskz1-vip7 pgiskz2-vip8 rac-scan(2)pgiskz2节点:vi /etc/hosts localhost.localdomain localhost4 pgiskz5 pgiskz24 pgiskz1-priv5 pgiskz2-priv6 pgiskz1-vip7 pgiskz2-vip8 rac-scan修改完hosts文件以后,重起network服务service network restart(3)检查并安装所需软件包在每个节点上查看依赖的rpm包是否安装: rpm - qa | grep 包名需要安装的rpm包binutils-.6li

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论