问题现象:一套两节点的RAC集群,其中节点2集群无法启动,ohas进程已经启动但CRS、CSS进程未启动
1、首先查看
查看RAC中的alert日志,发现日志中一直在报如下报错:
file rotation terminated. log file: "/app/11.2.0.4/grid/log/uatdb02/client/olsnodes.log"
从日志中可以看到提示说olsnodes.l03的owner不是oracle
查看后发现确实用户属主有属组有问题
修改文件属主和属组
chown root:root olsnodes.l03
修改后olsnodes.log可以被正常切割,alert日志也不再报这个错。但报错也就停止。没有日志如何继续往下查?
2、检查RAC的一些配置情况,由于对于RAC也只限于能够根据文档搭建成功,没有太多问题处理经验只能一边查问题一边查文档和MOS。
先检查RAC的ASM配置情况
发现与以往搭建的RAC查看diskpath输出的内容不同,于是想到是使用asmlib搭建的RAC,
rpm -qa |grpe asm发现确实安装了相关包,说明推测方向正确
以前都是通过UDEV的方式配置RAC的ASM共享磁盘,asmlib的方式没有用过。于是从网上找了相关的帖子查看,并找到一些命令。
oracleasm scandisks
oracleasm listdisks
但是知道这些命令还是没有办法解决问题。
尝试执行上面的命令看看输出结果
发现在scandisks时出现permission deniedon OCR1的提示
于是感觉有了一个方向,是不是共享盘的权限访问导致的呢
找到共享盘的目录/dev/oracleasm/disks查看
节点2属主和属组都是root,如果是权限有问题,那正确的权限有又该是什么呢,好在节点1还在正常的跑着,查看节点1的共享磁盘
从上面的查看来看,正常结点的属主为grid,属组为asmadmin,是不是由于这个原因导致集群无法启动的呢?
尝试手动修改节点2的属主和属组
这里漏掉了对权限做修改。。。
修改后尝试重启节点2的集群
crsctl start crs
报错提示ohas已启动,crs启动失败
仔细阅读crsctlstart使用说明才发现start crs是启动OHAS的命令,start cluster才是启动CRS的命令。看来还是对RAC的了解不够深入呀。。。
再次尝试启动节点2集群
提示cssd启动失败,从alert日志中也可以看到如下报错
于是查看ocss.log
从ocss日志中输出的报错可以看出来是无法找到vote disk,集群自然是无法启动的。
但是为什么找不到磁盘,原因还不知道。于是救助于MOS,但查了十几篇有相关关键字的文档,与这里的问题又不太相似。也没有可用的解决办法。
于是问题限入了僵局。
下班时间到了,第二天接着搞。
第二天登录机器再次尝试crsctl start cluster(明知没有,但还是想试一下,侥幸心理。。)
果然没有辜负我,依然报错找不到vote disk。
查MOS文档查到一些相关命令
crsctl query css votedisk
在节点2中无输出内容,节点1有。
kfod status=TRUE asm_diskstring='/dev/oracleasm/disks/*' disks=ALL
节点1很快能返回
但节点2会hang住
而且可以看到节点2的共享盘,权限又变回root了,于是又再次手动修改,(心想也不能每次重启机器都手动修改这个吧)。
再次执行上面的命令
出现有报错。
突然想到是不是两个节点的asmlib的配置不同导致的,由于对asmlib不熟悉,从网上帖子上看到的都是配置asmlib的,不知道如何查看配置
尝试执行oracleasm configure,发现两个节点的配置确认不一致
ORACLEASM_UID和GID配置有问题
于是进行修改
查看状态
修改完成,在scandisks时没有提示permission denied,感觉应该没有问题了
再次尝试启动crs
crsctl start cluster
启动成功
至此集群问题解决。但从状态来看这套RAC集群还是存在很多的问题。
总结:加深对RAC的理解,各组件的作用。各命令的含义。