Oracle RAC Cache Fusion 系列九:Oracle RAC 分布式资源管理(二)

本文深入探讨Oracle RAC的分布式资源管理(DLM),包括DLM如何协调实例间资源访问,保存锁清单,以及其在容错和死锁检测中的作用。重点介绍了LMD、LMON和LMS进程的功能和参数调整,同时讨论了GES、GCS资源和锁的管理。
摘要由CSDN通过智能技术生成

因为集群的分布式架构,通过进程间的通信完成资源的共享、分发、同步对分布式锁管理实现就变得尤为必要。 有了这种通信的存在,在与集群中的其他实例上LMD进程完成通信锁定一个资源后,无论有多少DLM实例发生故障,都不会丢失有关锁资源的重要信息。但是需要注意的一点是数据库的崩溃恢复(能够恢复在中止实例的缓冲区高速缓存中丢失的块)不是DLM的功能,块的全局高速缓存处理仍然使用相同的“写入前刷日志”规则来确保持久化。通过前面系列文章我们知道GRD或DLM是由GES组件和GCS组建组成,而这些功能的进程(LMON、LMS、LMD等)实现我们也有了大致的了解。现在我们来更进一步的了解这些进程的函数实现和参数调整。

DLM存在于群集的每个实例中。

 - 协调不同实例之间的请求和对共享资源的访问。

 - 保存集群中所有锁的清单。

 - 资源可用时授予和通知进程。

 - 当其他进程请求锁时通知锁的所有者。

容错:DLM可以承受n-1个节点故障。 

死锁检测:DLM检测并报告死锁。

LMD进程:

LMD0是DLM的核心,LMD0处理所有锁定操作和资源创建,检测死锁以及向其他LMD0发送消息。LMD0的处理统计信息可以通过两个视图V$DLM_CONVERT_LOCAL和V$DLM_CONVERT_REMOTE查看。统计信息由初始化参数timed_statistics控制,在11g版本默认为TRUE。

假设当前在转换队列上等待的锁定符合授权队列,则LMD会使用move-scan-convert流程进行定期检查。

LMD0的主循环:kjmdm

• lock db锁定:

 - 停止任何死锁检测:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值