RAC基本原理

什么是RAC?

  多个实例跑在多个服务器上

  一个数据库存放在共享的存储上,所有实例都可以访问

  实例之间通过内联网络交换数据和信息

  共享存储内容:数据文件、REDO、UNDO、控制文件

  参数文件可以共享也可以不共享

RAC架构:

RAC的特点:

  具有普通单节点的特点

  每个节点的实例都有自己的SGA

  每个节点的实例都有自己的后台进程

  每个节点的实例都有自己的REDO LOGS (存于共享上,所有实例都可以访问)

  每个节点的实例都有自己的UNDO表空间

RAC如何容错:

如果一个节点挂掉:

  其他节点读取失败节点的REDO中最后一次检查点之后的信息

  对最后一次REDO里面的所有信息都进行恢复(不管提交还是未提交)

  回滚未提交的事务

RAC后台进程

RAC环境下,实例多出来的进程

  LMS  全局缓存服务进程 gobal cache service process

  LMD 全局查询服务守护进程 global enqueue service daemon

  LMON 全局查询服务监视进程 global enqueue service monitor

  LCK0 实例查询进程 instance enqueue process

DIAG 诊断守护进程 diagnostic daaemon

LMON : (原名:lock monitor process)

  管理全局的锁和资源

  监控全局的锁资源,处理死锁和阻塞

  监控整个集群状态,维护GCS的内存结构

  处理非正常终止的进程和实例

  当实例离开或加入集群时,锁和资源的重新配置

  也被称为 global enqueue service monitor

LMSn : (相对LCK来讲,是全局的内存管理)

  主要用来管理集群内数据块的访问,并在不同实例的BUFFER CACHE 中传输镜像

  当在某个数据库块上发生一致性读时,LMS负责回滚该数据块,并将它COPY到请求的实例上。

  每个RAC节点至少有2个LMS进程

  也被称为GCS (global cache services ) prcoess

LCK (原名:lock process)(相对LMSn 来讲,是一个本地的)

  LCK 进程主要用来管理实例间资源请求和跨实例调用操作,调用操作包括数据字典等对象的访问;

  并处理非CACEH  FUSION 的chace 资源请求(本地的数据字典等)

  由于LMS进程负责主要的锁管理功能,所以每个实例只能一个LCK进程

LMD (lock monitor daemon process)

  LMD进程主要管理对全局队列和资源的访问,并更新相应队列的状态,处理来自于其他实例的资源请求。

  每一个全局队列的当前状态存储在相应的实例共享内存中,该状态表明该实例具有相应的权利使用该资源。

  (管理当你去访问另外一个实例的资源的时候,你需要得到它的授权)

DIAG

  例用对实例的健康进行监控,同时也监控是否挂起或者出现死锁

  收集实例和进程出错时的关键诊断信息

  这个进程会更新alert日志文件,写入一些重要告警信息

RAC本身的进程:

独立的服务CRS  (CRS层是实现RAC构架的具体实现方式)

  CRS 集群资源服务

  CSS 集群同步服务

  EVMD 事件管理服务

  ONS 事件的发布及订阅服务

CRS:cluster ready services

  管理集群内高可用操作的基本程序

  CRS管理的任何事物被称之为资源

    数据库、实例、监听、虚拟IP、应用进程等

  CRS是根据存储于OCR中的资源配置信息来管理这些资源。(OCR相关于注册表的功能)

  当一资源的状态改变时,CRS进程生成一个事件

CSS :cluster synchronization service

  管理集群节点的成员资格

  控制哪个结点为集群的成员,结点在加入或离开集群时通知集群成员来控制集群的配置信息

  此进程发生故障导致集群重启

EVM : event management

  事件管理守护进程

  发布CRS创建事件的后台进程

ONS :oracle notification service

  通信的快速应用通知事件的发布及订阅服务

VIP

  是一个虚拟IP,绑定在某个物理网卡上的。

  应用使用VIP进行连接

  如果RAC某个节点挂掉,它的VIP自动被配置到其他节点上

OCR :oracle cluster registry

  保存RAC集群的各种资源信息DB,instances(rdbms,asm),services ,onde applications(vip,ons,gsd),listener process

  类似Windows 注册表

  存储于共享磁盘上,所有实例共享

  默认有2个互备磁盘

表决磁盘 voting disk

  存储于共享磁盘上,所有实例共享

  用户确定各个实例的关系

  当有节点失效时,通过表决磁盘来决定驱走哪个实例

  默认有3个互备磁盘

时间: 2024-11-12 22:38:30

RAC基本原理的相关文章

Oracle 11G R2 RAC中的scan ip 的用途和基本原理【转】

Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个主机vip的一个连接串,如果cluster增加了一个节点,那么对于每个连接数据库的客户端都需要修改这个tnsnames.ora. 引入了scan以后,就方便了客户端连接的一个接口,顾名思义 single client access name ,简单客户端连接名,这是一个唯一的名称,在整个公司网络内部

Oracle Dataguard 基本原理

1.DATAGUARD原理 DATAGUARD是通过建立一个PRIMARY和STANDBY组来确立其参照关系. STANDBY一旦创建,DATAGUARD就会通过将主数据库(PRIMARY)的REDO传递给STANDBY数据库,然后在STANDBY中应用REDO实现数据库的同步. 有两种类型的STANDBY:物理STANDBY和逻辑STANDBY 物理STANDBY提供与主数据库完全一样的拷贝(块到块),数据库SCHEMA,包括索引都是一样的.它是直接应用REDO实现同步的. 逻辑STANDBY

oracle rac理论知识

oracle数据库高可靠性高性能的特性是很多企业需要的,这些年一直给各大政府企业做oracle咨询与规划,实施安装以及维护,回头看看,自己已经忘记大部分oracle rac的整体具体架构理论知识,现在回头再复习一次,感觉很清晰. 1.集群相关理论概述 一个集群(cluster)由2个或多个节点(nodes)组成.一般集群对外都会有统一的服务接口(集群地址),对内需要(集群内部通信)不断确定集群内部节点可用,一旦发生异常,可以通过(集群仲裁)驱逐问题Partition,使得集群能够不影响整体对外提

ORACLE11g R2【RAC+ASM→单实例FS】

ORACLE11g R2[RAC+ASM→单实例FS] 11g R2 RAC+ASMà单实例FS的DG,建议禁用OMF. 本演示案例所用环境:   primary standby OS Hostname node1,node2 std OS Version RHEL6.5 RHEL6.5 DB Version 11.2.0.4 11.2.0.4 db_name stephen stephen db_unique_name stephen standby service_names stephen

RAC 环境下修改归档模式

RAC环境下的归档模式切换与单实例稍有不同,主要是共享存储所产生的差异.在这种情况下,我们可以将RAC数据库切换到非集群状态下,仅仅在一个实例上来实施归档模式切换即可完成RAC数据库的归档模式转换问题.本文主要描述了由非归档模式切换到归档模式,而由非归档切换的归档步骤相同,不再赘述. [sql] view plain copy print? 1.主要步骤: 备份spfile,以防止参数修改失败导致数据库无法启动 修改集群参数cluster_database为false 启动单实例到mount状态

RAC 环境下的重要参数

Oracle 数据库启动时会根据参数文件中提供的相关参数启动Oracle实例.这些参数包括数据库名字.sga,pga的分配,控制文件的位置,undo,process等等.Oracle RAC数据库同样依赖于这些参数.除了所有单实例情形下的参数值外,RAC数据库还多出了一些重要的参数.本文主要描述RAC环境下的相关参数. 一.单实例下参数文件的重要参数  db_name  db_block_size  Control Files name and location  Initialization

【RAC】使用一条“ps”命令获取Linux环境下全部RAC集群进程信息

如何仅使用一条ps命令便能获取到所有与RAC集群进程相关的信息.  从所使用的命令角度上看很简单,仅需使用ps命令结合grep命令便能实现.问题关键是需要确定检索哪些关键字. 1.与RAC集群有关的进程1)常驻系统的通用进程ocssd.binevmd.binevmlogger.bincrsd.bin 这些通用进程需要在各种平台和数据库版本上都会启动. 2)特有进程oprocd: 在UNIX平台当第三方集群软件为运行时会启动该进程:在Linux平台上会在Oracle 10.2.0.4这个版本上启动

Oracle 11g RAC自动打GI PSU补丁(11.2.0.4.8)

一.准备工作 1,数据库环境 操作系统版本   : Redhat 6.5 x64   数据库版本     : Oracle 11.2.0.4 x64 RAC    Grid           : 11.2.0.4     Oracle database: 11.2.0.4 本文出自:http://koumm.blog.51cto.com/ 2,准备内容 GI PSU : p21523375_112040_Linux-x86-64.zip    OPatch : p6880880_112000_

RAC集群节点故障模拟测试

RAC节点故障模拟测试 重启单个RAC 节点模拟测试模拟操作步骤使用shutdown –Fr的方式重启节点,查看系统反应和数据库重新启动的时间.预期测试结果重启单个节点,vip将会切换到另外一个节点.系统重新启动之后,节点上的集群服务和数据库将会自动启动,重新加入集群.Vip也将切换回原始节点.测试过程记录使用shutdown 命令重启第三节点第三节点关闭之后查看crs服务状态RAC02:oracle:db2 > crs_stat -tName           Type