在这篇文章里我们会对11gr2gi 的启动顺序进行介绍,并且对常见的gi启动时遇到的问题和对应的解决办法进行介绍。
11gr2 集群管理软件(gi) 启动顺序和诊断方法简介
在这篇文章里我们会对11gr2gi 的启动顺序进行介绍,,并且对常见的gi启动时遇到的问题和对应的解决办法进行介绍。
基本上我们可以把gi的启动过程分成3个阶段,ohasd阶段,构建集群阶段,启动资源阶段。
首先,ohasd阶段。
1. /etc/inittab文件中的脚本
h1:35:respawn:/etc/init.d/init.ohasd run
>/dev/null 2>&1 /null
被调用,产生下面的进程
root 4865 1 0 dec02 ? 00:01:01 /bin/sh /etc/init.d/init.ohasd
run
所以如果说你没有发现这个进程,那么说明
+init.ohasd 脚本可能没有被调用
+ os运行在不正确的级别
+ 一些s* ohasd脚本挂起, 例如s96ohasd
+ gi没有配置自动启动(crsctl enable crs)
之后,ohasd.bin 进程会被启动,这个时候olr会被访问,所以,如果ohasd.bin不能正常工作,就需要查看olr是否存在而且能够被正常访问。olr存放在$grid_home/cdata/${hostname}.olr
2. ohasd.bin进程会启动对应的agents(orarootagent,oraagent, cssdagnet 和 cssdmonitor) 来启动集群的初始化资源。如果说,您发现这些agent进程不能启动,很多时候都是由于路径$grid_home/bin 下的可执行文件存在问题,例如,文件权限设置有问题,文件corruption.
接下来,构建集群阶段。
1. mdnsd 进程透过多播(multicast)发现集群中的节点和所有的网卡信息。所以,一定要确定集群中的网卡支持多播。而且节点间的通信正常。
2. gpnpd 进程启动,发布构建集群所需要的bootstrap 信息,并且在集群的所有节点之间同步gpnp profile。当然,同步是透过mdnsd实现的。所以,如果是这个进程存在问题,您需要确认节点间的通信正常,而且gpnp
profile (/gpnp/profiles/peer/profile.xml)存在而且可以被访问。
3. gipcd 进程启动,这个进程负责管理集群中所有的私网(cluster
interconnect)网卡。当然,私网信息是通过gpnpd获得的,所以,如果这个进程存在问题,您需要确认gpnpd 进程正常运行。
4. ocssd.bin 进程启动。这个进程首先通过gpnp profile中的信息发现表决盘(voting disk),之后通过gpnpd 进程获得集群私网信息,和其他的节点建立连接。所以,如果ocssd.bin不能正常运行,您需要确认一下的信息
+ gpnp profile 存在而且可以被访问。
+ gpnpd 进程正常运行。
+ 表决盘所在的asm disk 或设备能够正常被访问。
+ 节点私网间的通信正常。
5. 启动其他的初始化进程:ora.ctssd, ora.asm, ora.cluster_interconnect.haip, ora.crf, ora.crsd
等。
注意:以上的过程是同时进行的。也就是说ocssd.bin, gpnpd.bin 和 gipcd.bin 同时启动,直到gpnpd.bin正常运行,ocssd.bin 和 gipcd.bin 才能获得相应的信息,在gpnpd.bin没有正常运行之前,ocssd.bin 和 gipcd.bin 中出现的无法访问gpnp profile错误是可以忽略掉的。
最后,资源启动阶段。在这个阶段,主要是通过crsd进程启动各个资源。
1. crsd进程启动。这个进程需要访问ocr,如果您的ocr是存放在asm上,需要确保
asm实例正常运行,并且ocr所在的asm磁盘组已经装载。如果ocr存放在裸设备上,那么需要确保对应的设备正常运行。
2. crsd 启动对应的agents(orarootagent,
oraagent_, oraagent_ )。如果agent不能启动,很多时候都是由于路径$grid_home/bin 下的可执行文件存在问题,例如,文件权限设置有问题,文件corruption.
3. 所有的资源启动。
ora.net1.network : 网络资源,这个资源负责管理集群的公网,scanvip, vip,
listener资源都依赖于这个资源。所以,如果这个资源存在问题,vip, scanvip 和listener 都会offline,您需要检查公网是否存在问题。
ora..vip:scan对应的vip资源,最多可以有3个。
ora..vip : 节点对应的vip 资源
ora..lsnr: 监听程序资源。在这里我们要注意,从11gr2开始,listener.ora文件会自动生成,不再需要手动修改。
ora.listener_scan.lsnr: scan 监听程序。
ora..dg: asm 磁盘组资源。这个资源会在磁盘组被mount时创建,dismount时删除。
ora..db: 数据库资源。在11gr2中实例资源已经不再存在了,新的数据库资源会管理rac 数据库的所有实例,而数据库包含哪些实例,是通过资源参数“usr_ora_inst_name@servername( )”来决定的。另外,如果您的数据库存储在asm磁盘上,那么数据库资源会依赖于对应的磁盘组资源,这个dependency是自动添加的。但是,如果数据库被转移到了其他的磁盘组之后,原有的dependancy不会被自动删除,需要手动删除(crsctl modify res ……)。
ora..svc:数据库服务资源。从11gr2 开始,这个资源只有一个了,不会像10gr2一样,每个数据库服务资源包含,srv 和cs 两个资源。
ora.cvu :这个资源从11.2.0.2被引入,定期对集群执行cluvfy操作,验证集群是否存在一些配置上的问题
ora.ons : ons资源,和之前版本的功能,基本相同。
另外,我们对诊断gi启动问题所需要查看的文件进行简单的介绍
$grid_home/log//ocssd ocssd.bin 日志
$grid_home/log//gpnpd $grid_home/log//gipcd $grid_home/log//agent/crsd $grid_home/log//agent/ohasd 日志
$grid_home/log//mdnsd $grid_home/log//client $grid_home/log//ctssd 日志
$grid_home/log//crsd $grid_home/log//cvu $grid_home/bin/diagcollection.sh
最后,集群的套接字文件(/var/tmp/.oracle
或 /tmp/.oracle),由于集群中很多进程之间的通信都是通过ipc实现的,所以,这些套接字文件一定要存在而且权限正确。
以上,我们对gi启动的顺序和基本的诊断方法进行了简单的介绍,希望能够为大家在诊断gi启动问题时能够提供一些帮助。
oracle 11g 在redhat linux 5.8_x64平台的安装手册
linux-6-64下安装oracle 12c笔记
在centos 6.4下安装oracle 11gr2(x64)
oracle 11gr2 在vmware虚拟机中安装步骤
debian 下 安装 oracle 11g xe r2
本文永久更新链接地址: