Oracle RAC 分布式数据库系统简介

Oracle RAC是一个分布式数据库系统,采用DLM协调实例间资源访问,通过本地锁和全局锁实现并发控制。全局锁分为cache fusion和non-cache fusion,其中cache fusion主要通过LMSn进程实现数据块在实例间的传递。LMD进程提供GES服务,确保数据访问一致性。LMON进程监控节点健康,负责故障恢复。RAC的SCN、undo tablespace、redo logs和archive logs各有独立实例配置,而SPFILE位于共享存储。高速的private interconnect实现cache fusion,是RAC的核心机制。
摘要由CSDN通过智能技术生成

RAC本质还是一个数据库,采用了分布式锁管理器。DLM作用是协调实例间对资源的竞争访问,而实例内部的竞争和单实例一样。在RAC数据库中一个节点想要修改数据,都需要想DLM发送请求,通过DLM控制授权节点实例间的数据访问,RAC间实例访问粒度是数据块。DLM协调资源使用的功能叫做同步,所有的资源访问都是需要同步。RAC 将锁分为本地锁和全局锁,本地锁用于本地进程间的并发控制,也就是单实例中的锁机制。全局锁用于集群间的并发控制。
全局锁分为cache fusion和non-cache fusion
non-cache susion资源有限主要是row cache存放对象定义,library cache存放SQL代码,执行计划等,这些都是有限的,同时这些资源修改的频率也很小,所以oracle采用了类似广播的机制,每个节点的变化都要通告给其他节点,任何节点对对象的修改,所有其他节点上的对象都会失效。每个引用对象都会被LCK0进程多加上一个shared-mode的IV instance lock,由LMD进程负责LCK之间的广播通信。
cache fusions:主要是buufer cache数据块多,修改密集,不太适合每个修改都需要节点实例间广播,其首要解决的问题就是数据拷贝在集群间的 状态分布图。
在 RAC中GRD(Global Resource Directory)是一个位于SGA中,记录每个数据块在集群间的分布图的内部数据块,每个实例都是部分GRD,所有实例的GRD汇总在一起才是一个完整的GRD。RAC根据资源名称在集群中选择一个节点为master node,其GRD中记录该资源在所有的节点使用信息;而其他节点作为shadow node的GRD只是记录资源在该节点的使用信息。

RAC的后台进程:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值