作者:IT邦德
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程(Web\java\Python)工作,主要服务于生产制造
现拥有 Oracle 11g OCP/OCM、Mysql、Oceanbase(OBCA)认证
分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证
从业8年DBA工作,在数据库领域有丰富的经验
B站主播Oracle、Mysql、PG实战课程,请搜索:jeames007
微信:jem_db
QQ交流群:168797397
1. RAC 概念 (Real Application Clusters)
多个实例跑在多个服务器上
一个数据库存放在共享存储上,所有实例都可以访问
实例之间通过内联网络交换数据和信息
2. RAC的特点
除了具有普通的数据库特性外:
每一个节点的instance都有自己的SGA
每一个节点的instance都有自己的background process
每一个节点的instance都有自己的redo logs
每一个节点的instance都有自己的undo表空间
3.RAC后台进程
4.1 RAC相关的后台进程
LMS - Gobal Cache Service Process 全局缓存服务进程
LMD - Global Enqueue Service Daemon 全局查询服务守护进程
LMON - Global Enqueue Service Monitor全局查询服务监视进程
LCK0 - Instance Enqueue Process 实例查询进程
DIAG (Diagnostic Daemon) 诊断守护进程
4.1 RAC相关的后台进程
LMS - Gobal Cache Service Process 全局缓存服务进程
LMD - Global Enqueue Service Daemon 全局查询服务守护进程
LMON - Global Enqueue Service Monitor全局查询服务监视进程
LCK0 - Instance Enqueue Process 实例查询进程
DIAG (Diagnostic Daemon) 诊断守护进程
## LMON--Lock Monitor Processes
监控整个集群状况,维护GCS的内存结构。
处理非正常终止的进程和实例。
当实例离开和加入集群时,锁和资源的重新配置。
管理全局的锁和资源。
监控全局的锁资源,处理死锁和阻塞。
也被称为Global enqueue service monitor
## LMSn-- Lock Monitor Services
LMS进程主要用来管理集群内数据块的访问,并在不同实例的BUFFER CACHE 中传输块镜像。
当在某个数据块上发生一致性读时,LMS负责回滚该数据块,并将它copy到请求的实例上。
每个RAC节点至少有2个LMS进程。
也称作 GCS (Global Cache Services) processes
## LCK--Lock Process
LCK进程主要用来管理实例间资源请求和跨实例调用操作,调用操作包括数据字 典等对象的访问;
并处理非CACEH FUSION的CHACE资源请求(例如:DICTIONARY CACHE或 row cache的请求)
由于LMS进程负责主要的锁管理功能,所以每个实例只有一个LCK进程
## LMD--Lock Monitor Daemon Process
LMD进程主要管理对全局队列和资源的访问,并更新相应队列的状态,处理来 自于其他实例的资源请求。
每一个全局队列的当前状态存储在相应的实例共享内存中,该状态表明该实例具有相应的权利使用该资源。
一个实例(master)的共享内存中存在一个特殊的队列,该队列纪录来自其他远程实例的资源请求,当远程实例的LMD进程发出一个资源请求时,该请求指向
master实例的LMD,当master实例的LMD进程受到该请求后,在共享内存中的特殊队列中监测该资源是否无效,如果有效则LMD进程更新该资源对列的状态
,并通知请求资源的LMD进程该资源队列可以使用了,如果资源队列正在被其 他实例使用或者当前无效,则LMD进程通知正在使用中的实例的LMD进程应该
释放该资源,等资源释放变得有效时,MASTER实例的LMD进程更新该资源队 列的状态并通知请求资源实例的LMD进程该资源队列可以使用了。
## DIAG (Diagnostic Daemon)
Oracle10g新的后台进程。
例行对实例的健康情况进行监控,同时也监控实例是否挂起或者出现死锁。
收集实例和进程出错时的关键诊断信息。
这个进程会更新alert日志文件,写入一些重要告警信息
5. RAC的服务进程
独立的服务CRS
CRS- 集群资源服务
CSS - 集群同步服务
EVMD 事件管理服务
ONS--事件的发布及订阅服务
5.1 CRS--Cluster Ready Services
管理集群内高可用操作的基本程序。
CRS管理的任何事物被称之为资源:数据库、实例、监听、虚拟IP(VIP)地址、应用进程等等
CRS是根据存储于OCR中的资源配置信息来管理这些资源
当一资源的状态改变时,CRS进程生成一个事件
5.2 CSS--Cluster Synchronization Service
管理集群节点的成员资格,控制哪个结点为集群的成员、结点在加入或离开集群时通知集群成员来控制集群的配置信息,此进程发生故障导致集群重启
5.3 EVM--Event Management
事件管理守护进程。
发布CRS创建事件的后台进程
5.4 ONS--Oracle Notification Service
通信的快速应用通知事件的发布及订阅服务
6. RAC的其它组成部分
VIP - 虚拟IP地址(Virtual IP)
OCR - Oracle Cluster Registry (集群注册文件),记录每个节点的相关信息
Voting Disk - (表决磁盘) :仲裁机制用于仲裁多个节点向共享节点同时写的行,这样做是为了避免发生冲突
7.RAC架构图
本文如有错误或不完善的地方请大家多多指正,请关注公众号:IT邦德
留言微信:jem_db 或 QQ:2243967774 皆可,您的批评指正是我写作的最大动力!
大家多多点赞,转发,谢谢
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。