Oracle RAC--基本概念

来源:互联网 发布:飞利浦剃须刀淘宝店 编辑:程序博客网 时间:2024/06/06 11:37


转自:http://elliptic.blog.163.com/blog/static/34344822201011795950565/


1、什么是cluster

    一个cluster是由两个或是多个独立的、通过网络连接的servers组成的。几个硬件供应商多年以来提供了Cluster性能的各种需求。一些Clusters仅仅为了提供高可用性的,在当前活动的node发生故障时转移到次节点node。另一些是为了提供分布式的连接、工作的可扩展性。另一个Cluster的共同特点是,对于一个应用程序,它可以看做是一个单独的server。同样,管理几个servers应该尽可能像管理一个server一样简单。Cluster管理器软件提供了这种功能。

    如果是single server的nodes,文件必须存储在其各自node能访问的位置。存在有几个不同拓扑结构来解决数据访问的问题,这主要依赖于Cluster设计的主要目标。

    相互连接时一个物理的网络连接,作为每个Cluster节点直接的交互通信

    简而言之,一个Cluster就是一组独立的servers,它们共同协作,组成一个single system。

    2、什么是Oracle real Application Cluster(RAC)

    RAC是一个软件可以使你通过运行多个依赖相同Database的Instance,使用Cluster硬件。数据库files被存放在物理或是逻辑上连接每个节点的磁盘上。以便于每个活动的Instance都可以对files进行读写操作。

    RAC软件管理着数据的访问。所以更改操作在Instances之间是被相互协调的,并且每个Instance看到的信息和数据镜像都是一致的。

    通过RAC结构,可以获得冗余,从而使得即使在一个系统crash或是不可访问时,应用程序也可通过其他Instance访问Database。

    3、为啥使用RAC

    RAC可以高度利用标准的Cluster,降低模块servers成本。

    RAC自动的提供了服务的工作量管理。应用程序的服务可以被分组或分类,组成商业组件完成应用工作任务。RAC中的服务可以是持续的、不间断的Database操作,并为多Instance上的多个服务提供支持。可以设计services到一个或多个Instance上运行,并且交替Instances可以用于备份Instances。如果主Instance失败,Oracle会将services从失败的Instance节点移动到活动的可替代的Instance上。Oracle也会自动的通过连接进行数据装载的平衡。

    RAC利用多个廉价的computers共同提供Database的服务,就像一个大的computer一样,服务于只有大规模SMP才能提供的各种应用。

    RAC是基于共享磁盘结构的,在需求上可以增加或缩减,而不需要人为的在Cluster中进行数据的分隔。并且RAC可以简单的增加、移出Cluster中的servers。

    4、Clusters和可扩展性

Oracle RAC--基本概念 - elliptic - 心中有事

    如果使用对称多处理(symmetric multiprocessing SMP)机制能够对应用程序提供透明的服务,则应该使用RAC也可以得到同样的效果,而不需要进行应用程序代码的任何改动。

    当一个节点发生失败,RAC可以排除该Database Instance和node本身,从而保证Database的完整。

    下面是一些可扩展性的例子:

    * 允许更多并发的批处理。

    * 允许更大程度的并发执行。

    * 在OLTP系统中可以是连接的用户大增。

    1)可扩展性的层次:主要有四个层次

    * hardware 的可扩展性:相互连接性是它的关键,这一般依赖于较高的带宽和较低的延迟。

    * OS的可扩展性:在OS中,同步方法可以决定系统的可扩展性。在一些情况下,硬件的潜在可扩展性会因为OS无力并发维持请求的多个资源而被丢失。

    * Database管理系统的可扩展性:在并发结构中的一个关键因素是并发是由内部影响的还是外部进程影响的。此问题的答案影响了同步的机制。

    * 应用层次上的可扩展性:应用程序必须被明确的设计为可扩展的。当系统中如果多数情况下,每个session都在更新相同的data,则可能产生瓶颈。这不仅是指RAC,对于single-instance系统也是一样。

    需要明确的是,如果任何一个层次没有达到可扩展性,不管其他层次可扩展性多强,并发的Cluster进程都可能失败。可扩展性不足的典型原因是共享资源的访问。这使得并发的操作在此瓶颈上序列化执行。这不仅仅是RAC中的局限,而是所有结构中的局限性。

    2)scaleup和speedup

Oracle RAC--基本概念 - elliptic - 心中有事

    * scaleup是工作量和资源都成比例增加时能维持相同性能水平的能力(相应时间)

    Scaleup=(volume parallel)/(volume original)–time for ipc

    * speedup是指通过增加资源的数量完成固定的工作量,获得执行时间成比例的缩减的效果。

    Speedup=(time original)/(time parallel)–time for ipc 

    其中,ipc是进程间通信的简写——interprocess communication

Oracle RAC--基本概念 - elliptic - 心中有事




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 0
原创粉丝点击