赞
踩
今天周五,想想可以过周末,心情大好。一周中最喜欢过的就是周五晚上,最不喜欢过的是周日晚上和周一,看来我不是个热爱劳动的人啊。趁着现在心情愉悦,赶紧坐下来继续写我的博客吧。
昨天的博客里,我介绍了什么是 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。