Oracle RAC学习笔记

70 篇文章 0 订阅
16 篇文章 0 订阅

Oracle RAC的基本介绍

RAC编辑

RAC,全称real application clusters,译为实时应用集群Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。

Oracle RAC

RAC提供的优缺点


优点

Oracle RAC主要支持Oracle9i10g11g版本,可以支持24 x 7 有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。

(1)节点负载均衡;

(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;

(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;

(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;

(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;

(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。


缺点

(1)相对单机,管理更复杂,要求更高;

(2)在系统规划设计较差时性能甚至不如单节点;

(3)可能会增加软件成本(如果使用高配置的pc服务器,Oracle一般按照CPU个数收费)

Oracle9i之前,RAC的名称是OPS (Oracle parallel Server)RAC OPS之间的一个较大区别是,RAC采用了Cache Fusion(高速缓存合并)技术。在 OPS 中,节点间的数据请求需要先将数据写入磁盘,然后发出请求的节点才可以读取该数据。使用Cache fusion时,RAC的各个节点的数据缓冲区通过高速、低延迟的内部网络进行数据块的传输。


2Oracle RAC组件编辑

在一个应用环境当中,所有的服务器使用和管理同一个数据库,目的是为了分散每一台服务器的工作量,硬件上至少需要两台以上的服务器,而且还需要一个共享存储设备。同时还需要两类软件,一个是集群软件,另外一个就是Oracle数据库中的RAC组件。同时所有服务器上的OS都应该是同一类OS,根据负载均衡的配置策略,当一个客户端发送请求到某一台服务的listener后,这台服务器根据我们的负载均衡策略,会把请求发送给本机的RAC组件处理也可能会发送给另外一台服务器的RAC组件处理,处理完请求后,RAC会通过集群软件来访问我们的共享存储设备.

逻辑结构上看,每一个参加集群的节点有一个独立的instance(数据库实例),这些instance访问同一个数据库。节点之间通过集群软件的通讯层(communicationlayer)来进行通讯。同时为了减少IO的消耗,存在了一个全局缓存服务,因此每一个数据库的instance,都保留了一份相同的数据库cacheI

RAC中的特点是:

每一个节点的instance都有自己的SGA

每一个节点的instance都有自己的backgroundprocess

每一个节点的instance都有自己的redo logs

每一个节点的instance都有自己的undo表空间

所有节点都共享一份datafilescontrolfiles


还提出了一个缓存融合的技术(Cache fusion)

目的有两个

01.保证缓存的一致性

02.减少共享磁盘IO的消耗

因此在RAC环境中多个节点保留了同一份的DB CACHE


缓存融合(Cache fusion)工作原理

****************************************

01.其中一个节点会从共享数据库中读取一个blockdb cache

02.这个节点会在所有的节点进行交叉db block copy

03.当任何一个节点缓存被修改的时候,就会在节点之间进行缓存修改

04.为了达到存储的一致最终修改的结果也会写到磁盘上


ClusterWare组件

*******************

四种Service

Crsd -集群资源服务

Cssd - 集群同步服务

Evmd - 事件管理服务

oprocd - 节点检测监控

 

三类Resource

VIP - 虚拟IP地址(Virtual IP)

OCR - OracleCluster Registry(集群注册文件),记录每个节点的相关信息

Voting Disk -Establishes quorum (表决磁盘),仲裁机制用于仲裁多个节点向共享节点同时写的行为,这样做是为了避免发生冲突。

 

RAC的组件

************

提供过了额外的进程,用来维护数据库

LMS - GobalCache Service Process 全局缓存服务进程

LMD - GlobalEnqueue Service Daemon 全局查询服务守护进程

LMON - GlobalEnqueue Service Monitor全局查询服务监视进程

LCK0 - InstanceEnqueue Process 实例队列进程

Oracle RAC一般也可构建于大型SMP主机,IBMAIX系列服务器往往是其中高端平台,Intel Linux往往作为其低端平台。当AIXUNIX用来运行Oracle RAC作为大型数据库系统平台时,其集群系统构建、实施、运维、高可用设置,有其平台特点。

 


   RAC Architecture and Concepts

    1、RAC软件原理

    在一个RAC Instance中,会见到一些普通Instance中不存在的后台进程,它们主要是用于维持Database在每个Instance中的一致性。管理全局资源,具体如下:

    *  LMON:全局队列服务监控进程——Global Enqueue Service Monitor
    *  LMD0:全局队列服务守护进程——Global Enqueue Service Daemon
    *  LMSx:全局缓冲服务进程,x可以从0到j——Global Cache Service Processes
    *  LCK0:锁进程——Lock process
    *  DIAG:诊断进程——Diagnosibility process

    在Cluster层,可以找到Cluster Ready Services软件的主要进程,它们在所有平台上提供标准的Cluster接口,并实现高可用性的操作。在每个Cluster node上都可以看到如下的进程:

    *  CRSD和RACGIMON:用于高可用性操作的引擎。
    *  OCSSD:提供成员节点和服务组的访问
    *  EVMD:事件检测进程,由oracle用户运行管理
    *  OPROCD:Cluster的监控进程

    此外还存在几个工具用于管理Cluster中全局层次上的各种资源。这些资源是ASM Instance、RAC Database、Services和CRS应用节点。本书中涉及的工具主要有Server Control(SRVCTL)、DBCA和Enterprise Manager。

    2、RAC软件存储原理

    Oracle10g的RAC安装分为两个阶段。第一阶段是安装CRS,其次是安装带有RAC组件的Database软件并创建Cluster数据库。CRS软件使用的Oracle home必须不同于RAC软件使用的home。尽管可以将Cluster中CRS和RAC软件通过使用Cluster文件系统共享存储,但是软件总是按一定规则安装在每个节点的本地文件系统中。这支持在线补丁的升级,并消除了单节点软件造成的失败。另外有两个必须存储在共享的存储设备中:

    *  voting file:其本质上是用于Cluster synchronization Services守护进程进行节点信息的监控。大小约为20MB。

    *  Oracle Cluster Registry(OCR)文件:也是CRS关键的组成部分。用于维护在Cluster中高可用性组件的信息。例如,Cluster节点列表,Cluster数据库Instance到节点的映射和CRS应用资源的列表(如Services、虚拟内部链接协议地址等)。此文件是通过SRVCTL类似的管理工具自动维护的。其大小约100MB。

    voting file和OCR file是不能被存储在ASM中的,因为它们必须在任何Oracle Instance启动前就可以被访问。并且,两者必须是在冗余的、可靠的存储设备中存放,如RAID。推荐最好的做法是将这些文件放在裸磁盘上。

    3、OCR的结构

    Cluster的配置信息是在OCR中维护的。OCR依赖分布式的共享缓存结构用于优化关于Cluster知识库的查询。在Cluster中的每个节点都通过OCR进程访问OCR缓存在其内存中维护着一个副本。事实上在Cluster中,只有一个OCR进程对共享存储中的OCR进行读写操作。此进程负责刷新(refresh)其自己拥有的本地缓存以及Cluster中其他节点的OCR cache。对于涉及到Cluster知识库的访问,OCR客户端直接访问本地OCR进程。当客户端需要更新OCR时,它们将通过本地OCR进程与那个扮演读写OCR文件的进程进行交互。

    OCR客户端应用有:Oracle通用安装器(OUI)、SRVCTL、企业管理器(EM)、DBCA、DBUA、NetCA和虚拟网络协议助理(VIPCA)。此外,OCR维护管理着CRS内部中定义的各种应用程序的资源的依赖和状态信息,特别是Database、Instance、Services和节点的应用程序。

    配置文件的名字是ocr.loc,并且配置文件变量是ocrconfig_loc。Cluster 知识库的位置是不受限于裸设备的。可以将OCR放置在由Cluster file system管理的共享存储设备上。

    note:OCR也可用于在ASM的单Instance中作为配置文件,每个节点有一个OCR。

    4、RAC Database存储原理

    与single-Instance Oracle的存储方式最主要的不同之处在于RAC存储必须将所有RAC中数据文件存放在共享设备中(裸设备或是Cluster文件系统)以便于访问相同Database的Instance能够共享。必须为每个Instance创建至少两个redo log组,并且所有的redo log组必须也存储在共享设备中,从而为了crash恢复的目的。每个Instance的在线redo log groups被称作一个Instance的在线redo 线程。

    此外,必须为每个Instance创建一个共享的undo表空间用于Oracle推荐的undo自动管理特点。每个undo表空间必须是对所有Instance共享的,主要用于恢复的目的。

    归档日志不能被存放在裸设备上,因为其命名是自动产生的,并且每个是不一致的。因此需要存储在一个文件系统中。如果使用Cluster file system(CFS),则可以在任何时间在任何node上访问这些归档文件。如果没有使用CFS,就不得不使其他Cluster成员在恢复时那些归档日志是可用的,例如通过网络文件系统(NFS)来实现。如果使用推荐的flash recovery area特性,则其必须被存储在共享目录下,以便于所有的Instance能够访问。(共享目录可以是一个ASM磁盘组,或是一个CFS)。

    5、RAC和共享存储技术

    存储是网格技术中的关键组成部分。传统上,存储都直接依附在每个Server(directly attached to each individual Server DAS)上。在过去的几年来,更灵活的存储出现并得到应用,主要是通过存储空间网络或是正规的以太网来实现访问。这些新的存储方式使得多个Servers访问相同的磁盘集合成为可能,在分布式环境中,可以获得简单的存取。

    storage area network(SAN)代表了数据存储技术在这一点的演进。传统上,C/S系统中,数据被存储在Server内部或是依附它的设备中。随后,进入了network attached storage(NAS)阶段,这使得存储设备与Server和直接连接它们的网络向分离。它在SAN遵循的原则进一步允许存储设备存在于各自的网络中,并直接通过高速的媒介进行交换。用户可以通过Server系统对存储设备的数据进行访问,Server 系统与本地网络(LAN)和SAN相互连接。

    文件系统的选择是RAC的关键。传统的文件系统不支持多系统的并行挂载。因此,必须将文件存储在没有任何文件系统的裸卷标或是支持多系统并发访问的文件系统中。

    因此,三个主要的方法用于RAC的共享存储有:

    *  裸卷标:既是一些直接附加的裸设备,需要用于存储,并以block模式进程操作。

    *  Cluster file system:也需要以block模式进程存取。一个或多个Cluster file 系统可以被用于存储所有的RAC文件。

    *  自动存储管理(ASM):对于Oracle Database files,ASM是一个轻便的、专用的、最佳化的Cluster file system。

    6、Oracle Cluster file system

    Oracle Cluster file system(OCFS)是一个共享文件系统,专门为Oracle RAC设计。OCFS排除了Oracle Database files被连接到逻辑磁盘上的需要,并使得所有的节点共享一个ORACLE Home,而不需每个node在本地有一个副本。OCFS卷标可以横跨一个或多共享disks,用于冗余和性能的增强。

    下面时可放入OCFS中的文件类表:
  
    *  Oracle software的安装文件:在10g中,此设置只在windows 2000中支持。说是后面的版本会提供在Linux中的支持,但我还没具体看。

    *  Oracle 文件(控制文件、数据文件、redo logs文件,bfiles等)

    *  共享配置文件(spfile)

    *  在Oracle运行期间,由Oracle创建的文件。

    *  voting和OCR文件

    Oracle Cluster file system对开发人员和用户时免费的。可从官方网站下载。

    7、自动存储管理(ASM)

    是10g的新特性。它提供了一个纵向的统一管理的文件系统和卷标管理器,专门用于建立Oracle Database 文件。ASM可以提供单个SMP机器的管理或是贯穿多个Oracle RAC的Cluster节点。

    ASM无需再手动调节I/O,会自动的分配 I/O 负载到所有的可用资源中,从而优化性能。通过允许增加Database大小而不需shutdown数据库来调节存储分配,来辅助DBA管理动态数据库环境。

    ASM可以维护数据的冗余备份,从而提高故障的容错。它也可以被安装到可靠的存储机制中。

    8、选择RAW或CFS

    *  CFS的优点:对于RAC的安装和管理非常简单;对RAC使用Oracle managed files(OMF);single Oracle软件安装;在Oracle data files上可以自动扩展;当物理节点失败时,对归档日志的统一访问。

    *  裸设备的使用:一般会用于CFS不可用或是不被Oracle支持的情况下;它提供了最好的性能,不需要在Oracle和磁盘之间的中间层;如果空间被耗尽,裸设备上的自动扩展将失败;ASM、逻辑存储管理器或是逻辑卷标管理其可以简化裸设备的工作,它们也允许加载空间到在线的裸设备上,可为裸设备创建名字,从而便于管理。



 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值