【Oracle之RAC介绍】

RAC是real application clusters的缩写,译为“实时应用集群”, 是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。
数据库系统和其他数据管理很重要的一个区别就是 允许并发访问
 最大挑战是 数据不一致
 如何保证并发和数据一致是数据库系统的核心
 并发访问和数据一致性:
  数据不一致的情况
   1 脏读
   2 不可重复性
   3 幻影读
   4 数据一致性
 事务和隔离级别
  四种数据一致性级别:隔离级别
   read uncommited:不希望“写”阻塞“读”。
   read committed:允许“写”阻塞“读”
   repeatable: 目的是避免“不可重复读”和“丢失数据”
   seralizable: 保证用户以独占方式访问数据
 Oracle支持的隔离界别:read committed,seralizable,Read Only



 

为了便于学习和理解,将RAC环境分为 存储层、网络层、集群层、应用层 4层来分别学习。

存储层
由SAN组成的存储层,由于RAC架构是共享存储,常规场景下只需要有一个存储。
但如果预算充足,为了进一步提高可用性,我们完全可以在存储层考虑使用2个存储,在存储层构建一个存储层面的集群。比如使用EMC的vplex,HDS的GAD(Global-Active Device)等。
这种存储级别的集群,在extended RAC架构中很常见。这一块基本都偏向于底层存储层面的知识,与RAC本身关系不大,不再多说。

网络层
public IP:集群各节点真实IP地址,和其他应用服务器连接在一个交换机上。
10g RAC VIP:在Public IP所在网卡上绑定一个VIP。
优点是:VIP是浮动的,使用VIP,可以避开对TCP协议栈超时的依赖。
11g RAC SCAN IP:在 VIP 基础上 再引入的scan IP,也有对应的scan IP的监听。
优点是:使用scan IP配置客户端连接,以后集群内部添加删除节点,不需改动客户端的tns配置。

private IP:集群内部互联IP,大数据量、低延迟要求,预算低用G级以太网,预算高用infiniband。
网络心跳(Network Heartbeat)使用这个private IP网络。
缓存融合(Cache Fusion)也是通过这个private IP网络进行传输。

集群层
集群层是在OS kernel和应用之间的一层。用来统一协调集群内各节点正常调度有序工作。
10g RAC 通过Oracle Clusterware来实现这一层的功能。
11g RAC 改名clusterware为GI。
GI除了名字上的不同,还有很多改变,比如将ASM安装的集成到GI中,比如GI的安装一般建议单独用户(grid)安装,而之前clusterware一般都是和数据库在同一用户(oracle)安装的等等,可以简单认为GI比clusterware更加完善细化了。

应用层
应用层是指在集群件之上的具体应用和资源。
RAC 按照用途主要把应用层分为2大类:nodeapps(节点应用) 和 database-related resource(数据库资源)。
nodeapps:GSD、ONS、VIP、Listener等。
database-related:Database、Instance、Service等。



 

RAC中的特点是:

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

每一个节点的instance都有自己的background process

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

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

所有节点都共享一份datafiles和controlfiles

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

目的有两个

01.保证缓存的一致性

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

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

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

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

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

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

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

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

ClusterWare组件

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

四种Service

Crsd -集群资源服务

Cssd - 集群同步服务

Evmd - 事件管理服务

oprocd - 节点检测监控

三类Resource

VIP - 虚拟IP地址(Virtual IP)

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

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

RAC的组件

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

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

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

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

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

LCK0 - Instance Enqueue Process 实例队列进程



 

猜你喜欢

转载自gaojingsong.iteye.com/blog/2393308