千家信息网

怎么理解Oracle RAC分布式资源管理

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"怎么理解Oracle RAC分布式资源管理",在日常操作中,相信很多人在怎么理解Oracle RAC分布式资源管理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2026年10月31日怎么理解Oracle RAC分布式资源管理

这篇文章主要介绍"怎么理解Oracle RAC分布式资源管理",在日常操作中,相信很多人在怎么理解Oracle RAC分布式资源管理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么理解Oracle RAC分布式资源管理"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

因为集群的分布式架构,通过进程间的通信完成资源的共享、分发、同步对分布式锁管理实现就变得尤为必要。 有了这种通信的存在,在与集群中的其他实例上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锁定:

- 停止任何死锁检测:kjdddei

- 锁定并重置:kjfzfcl

在锁定状态下,无法从DLM获取任何锁定或创建任何新资源。在重构期间锁定整个GRD,以便可以快速从节点故障中恢复。

• lock db解锁:

- 检测锁转换:kjcvscn。

- 死锁检测:kjddits / kjddscn。

- 清理恢复域:kjprsem。

- 更新统计信息:kjxstc。

- 发送流控制消息:kjctssb。

LMON进程:

由前面系列文章我们知道LMON进程主要负责整个数据库集群层面的一致性关系(CGS),监控整个集群的全局队列和资源。根据前面DLM缓存资源和锁定结构的介绍。当集群存在不再需要的资源时就会将他放置在一个空闲列表上。然后LMON调用kjrchc清除资源的DLM缓存。

LMON进程的使用的主要函数如下:

- LMON的主循环:kjfcln

- 侦听本地消息:kjcswmg

- 响应重构事件:kjfcrfg

- 清除GES缓存:kjrchc

LMS进程:

LMS是整个Cache Fusion体系最活跃和最忙碌的进程。它负责维护GRD中的数据块资源信息。

LMS进程数由_lm_lms确定默认值为max(#CPU/ 4,2)

1.扫描具有可授予转换锁的PCM资源。

2.处理降级转换队列由kclpbi处理。

3.如果消息正在排队并且超过_side_channel_batch_timeout参数设置的时间,则flush消息。

4.处理PCM锁的远程消息。

GES资源和锁

GES资源即non-PCM资源的初始分配数量可以通过查询隐含参数_lm_ress。如果用尽,则可以在shared_pool中申请分配更多资源。ges资源的初始分配,使用和限制信息可以通过v$resource_limit的ges_ress值获得(SELECT * FROM V$RESOURCE_LIMITWHERE RESOURCE_NAME LIKE 'ges%' ;)

默认情况下_lm_ress=1.1 * ( localres +(number_of_instance-1) * localres / number_of_instance )

localres = processes + dlm_locks + transactions+ enqueue_resources+ db_files+7+

parallel_max_servers *cluster_database_instance+ parallel_max_servers + cluster_database_instance+200

GES资源锁初始分配数量可以通过查询隐含参数_lm_locks。同样的如果用尽,则可以在shared_pool中申请分配更多锁资源。ges锁的初始分配,使用和限制信息可以通过v$resource_limit的ges_locks值获得(SELECT * FROM V$RESOURCE_LIMIT WHERE RESOURCE_NAME LIKE 'ges%' ;)

默认情况下_lm_locks=(localres+_enqueue_locks)+ (number_of_instance-1 * (localres+_enqueue_locks) / number_of_instance)

localres = processes + dlm_locks +transactions + enqueue_resources + db_files + 7 +

parallel_max_servers *cluster_database_instance+ parallel_max_servers + cluster_database_instance+200

GCS资源和锁

GCS资源即PCM资源的初始分配数量可以由隐含参数_gcs_resources 配置或默认max(1.1 * _db_block_buffers,2500)。如果耗尽,则从shared_pool分配的更多资源以1024为增量单位。gcs资源的初始分配,使用和限制信息可以通过v$resource_limit的gcs_resources值获得(SELECT * FROMV$RESOURCE_LIMIT WHERE RESOURCE_NAME LIKE 'gcs%' ;)

GCS资源锁即PCM资源锁的初始分配数量可以由隐含参数_pcm_shadow_locks配置或则默认max(1.1 * _db_block_buffers,2500)。如果耗尽,则从shared_pool分配的更多资源以1024为增量单位。gcs资源的初始分配使用和限制信息可以通过v$resource_limit的gcs_shadows值获得(SELECT * FROMV$RESOURCE_LIMIT WHERE RESOURCE_NAME LIKE 'gcs%' ;)

DLM进程

DLM进程数量初始分配数量可以通过设置隐含参数_lm_procs或max( ( 64 + 256 ) + ( number_of_instance-1 ), processes )如果耗尽,则从shared_pool分配更多资源。DLM进程的初始分配,使用和限制信息可以通过v$resource_limit的ges_locks值获得(SELECT * FROM V$RESOURCE_LIMIT WHERE RESOURCE_NAME LIKE 'ges%' ;)

到此,关于"怎么理解Oracle RAC分布式资源管理"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

资源 进程 分配 信息 可以通过 参数 更多 分布式 数量 消息 集群 处理 检测 管理 实例 缓存 死锁 限制 资源管理 队列 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云之行互联网科技 互联网科技工作委员会主任 互联网科技股票 互联网 视角下的科技创新 融贸通互联网科技 互联网前沿科技 互联网科技宣传片 太原新华互联网科技学校怎么样 互联网科技实习生岗位职责 佳云科技和互联网广告 崇明区互联网教育科技售后服务 成都互联网科技公司工作好不好 亳州好赞互联网科技有限公司 高科技互联网发展前景如何 中国互联网有什么科技 云南省自由互联网科技有限公司 产业互联网科技服务公司 互联网科技大佬云集 杭州科技互联网公司有哪些 广东猫王互联网科技有限公司电话 互联网科技行业发展 苏州互联网科技贷款公司 大白互联网科技 衡水科技产业互联网平台 蓝色互联网科技 苏州五指互联网络科技有限 互联网科技革命什么开始 玉溪新华互联网科技好不好 科技互联网的核心竞争力 互联网相关科技技术
0