浅谈Oracle RAC --集群管理软件GI

本文介绍了Oracle RAC的基石——Grid Infrastructure(GI)的基本架构,包括核心组件OHASD、CSSD和CRSD的作用。OHASD管理着集群启动守护进程和代理进程,CSSD负责集群一致性,CRSD管理集群资源。文章通过GI的启动过程和相关进程,帮助读者理解GI的层次关系和工作原理。
摘要由CSDN通过智能技术生成

浅谈Oracle RAC --集群管理软件GI基本架构

今天周五,想想可以过周末,心情大好。一周中最喜欢过的就是周五晚上,最不喜欢过的是周日晚上和周一,看来我不是个热爱劳动的人啊。趁着现在心情愉悦,赶紧坐下来继续写我的博客吧。

昨天的博客里,我介绍了什么是 Oracle RAC。还没有看过的同学可以回过头去参考一下。我们说从实现技术上来说 Oracle RAC 是基于集群管理软件构建出的数据库。那么研究Oracle RAC 的基础则是要搞懂集群管理软件的原理。

昨天的博客里我们介绍了现在甲骨文早已不再依托第三方集群管理软件,而拥有了自己的,标准化的,强大集群管理软件 ---- Grid Infrastructure(GI)。

1.GI的基本架构

我们以19c为例先来看一下GI都是由哪些组件和资源构成。

在这里插入图片描述
看完上面的图,可能很多同学会被吓到,GI是不是太多组件和资源了。其实大可不必担心,但凡一些大的架构一定是层次分的比较清晰的。只要我们掌握了这些层次关系,这张图就变得简单了。

长话短说,我们先把GI的核心组件摘出来。

1.1 OHASD

OHASD是集群启动守护进程。从上图我们可以看到,OHASD启动了三个以agent结尾的进程,我们称之为代理进程。这些代理进程实际上就是用来启动/停止/监控所管辖的组件或者资源的。这就好像OHASD是个董事长,下面派了三个经理去分别负责管理不同部门的概念。
在OHASD的代理进程管理的众多组件和资源中,有几个核心组件,他们分别是CSSD,CRSD。

1.2 CSSD

这个组件是负责构建集群,并且维护集群的一致性的。集群之所以称之为集群,一定是通过某些机制将不同的计算机联系到一起的。CSSD 就是维护集群一致性的核心组件。
每个节点都有CSSD守护进程,这些进程间会通过私网进行通信,并且定期向其它节点发送网络心跳,以此来确认不同节点间的通信状态。同时各个节点的CSSD还会定期向共享磁盘发送磁盘心跳,以保证所有成员节点都可以IO读写共同的磁盘。

1.3 CRSD

这个组件主要负责管理集群中的资源。
我们看上面的那张图,CRSD 也会生成代理进程。这些代理进程会去管理很多以ora开头的资源。这里需要强调的是,并不是所有资源都是以ora开头的。一般说以ora开头的资源是Oracle自带的资源。而客户自定义的资源则不一定以ora开头。
我们仔细看一下CRSD管理的资源,是不是发现了ora.DB.db这个资源名。没错这个就是Oracle RAC 实例在集群中的表现形式。Oracle RAC 数据库实例是以资源的形式被 CRSD 组件所管理。这里面的DB 是你所创建的数据库的名。

把上面的三个核心组件抓出来之后,我们再来捋顺一下代理进程。

他们分别是:
1.1 OHASD 启动的 orarootagent, cssdagent 和 oraagent。
1.2 CRSD 启动的 orarootagent 和 oraagent。

从上面可以知道代理进程只能由OHASD和CRSD生成,其它的组件都不会生成代理进程。

把这三个重要组件摘出来,然后顺着代理进程下辖的组件或者资源再去理解这张图是不是就显得没有那么复杂了。

当然这里面的组件和资源都有其独特的作用,我们在以后会找时间扩展开来讲。

2.GI的启动

接下来让我们启动GI,然后查看一下启动的顺序如何。
GI的启动命令是 crsctl start crs。我在后面加了 -wait 是为了打印启动信息到屏幕上。如果不加 -wait 是没有任何信息输出的。crsctl的执行权限是root用户。

[root@node1 ~]#crsctl start crs -wait
CRS-4123: Starting Oracle High Availability Services-managed resources
CRS-2672: Attempting to start 'ora.mdnsd' on 'node1'
CRS-2672: Attempting to start 'ora.evmd' on 'node1'
CRS-2676: Start of 'ora.mdnsd' on 'node1' succeeded
CRS-2676: Start of 'ora.evmd' on 'node1' succeeded
CRS-2672: Attempting to start 'ora.gpnpd' on 'node1'
CRS-2676: Start of 'ora.gpnpd' on 'node1' succeeded
CRS-2672: Attempting to start 'ora.gipcd' on 'node1'
CRS-2676: Start of 'ora.gipcd' on 'node1' succeeded
CRS-2672: Attempting to start 'ora.crf' on 'node1'
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'node1'
CRS-2676: Start of 'ora.cssdmonitor' on 'node1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'node1'
CRS-2672: Attempting to start 'ora.diskmon' on 'node1'
CRS-2676: Start of 'ora.diskmon' on 'node1' succeeded
CRS-2676: Start of 'ora.crf' on 'node1' succeeded
CRS-2676: Start of 'ora.cssd' on 'node1' succeeded
CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'node1'
CRS-2672: Attempting to start 'ora.ctssd' on 'node1'
CRS-2676: Start of 'ora.ctssd' on 'node1' succeeded
CRS-2676: Start of 'ora.cluster_interconnect.haip' on 'node1' succeeded
CRS-2672: Attempting to start 'ora.asm' on 'node1'
CRS-2676: Start of 'ora.asm' on 'node1' succeeded
CRS-2672: Attempting to start 'ora.storage' on 'node1'
CRS-2676: Start of 'ora.storage' on 'node1' succeeded
CRS-2672: Attempting to start 'ora.crsd' on 'node1'
CRS-2676: Start of 'ora.crsd' on 'node1' succeeded
CRS-6023: Starting Oracle Cluster Ready Services-managed resources
CRS-6017: Processing resource auto-start for servers: node1
CRS-2672: Attempting to start 'ora.ons' on 'node1'
CRS-2672: Attempting to start 'ora.chad' on 'node1'
CRS-2676: Star
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值