Oracle RAC
常见启动失败故障分析
一:ohasd
启动失败
二:cssd
启动失败
三:crsd
启动失败
四:RAC
挂起分析
先看下集群启动顺序:
一:ohasd
启动失败
高可用
服务守护进程OHASD
是
11gR2
首次引入的新集群堆栈,用来管理和控制其他集群堆栈。主要职责包括管理
OLR
启动、停止和验证本地和远程节点集群健康情况。
常见问题:
CRS-4639:Could not contact Oracle High Availability Services
或者
CRS-4124:Oracle High Availability Services startup failed
CRS-4000:Command Start failed,or completed with errors
1
检查集群件的告警日志
alert.log($GRID_HOME/log/$hostname/ohasd)
2
检查
ohasd.log($GRID_HOME/log/hostname/ohasd/ohasd.log)
记录了root.sh
脚本出错、
ohasd
进程无法启动、
OLR
文件损坏等信息。
3
检查
/etc/init,/etc/inittab
,验证
ohasd
对应的启动是否存在
4
检查操作系统上
ohasd
守护进程是否存在
ps -ef|grep init.ohasd
可能出现的问题:
1
尝试手动启动OHASD
,可能是自动启动失效。
2
检查跟踪文件中任何与OLR
有关的问题。
如果OLR
文件损坏,使用下面命令还原:
ocrconfig -local -restore $backup_location/backup_filename.olr
3
使用操作系统命令检查网格架构目录权限
集群启动的套接字文件:
/var/tmp/.oracle
/usr/tmp/.oracle
/tmp/.oracle
二:cssd
启动失败
集群同步守护进程CSSD
主要功能包括节点监控、分组服务管理、锁服务、集群心跳等。
常见问题:
CRS-4530:Communications failure contacting Cluster Synchronization Services daemon:
1
检查集群件的告警日志
alert.log($GRID_HOME/log/$hostname)
告警日志记录了集群守护进程的启动信息还有出现异常情况发生节点驱逐的信息等。
2
检查
ocssd.log($GRID_HOME/log//cssd)
记录了所有重要事件和消息,是最繁忙的CRS
日志文件之一,会记录发生节点驱逐事件之前的信息。
3
检查操作系统中
CSSD
进程
ps -ef|grep cssd.bin
可能出现的问题:
确保该节点能否访问表决磁盘(VD):
crsctl query css votedisk
网络或者磁盘心跳故障。
验证私有互联网络以及节点上其他网络相关设置。
VD
存放在
ASM
中,确保
ASM
实例已经启动。
使用下面命令来验证ASM
、集群私有互联、
CSSD
和其他集群资源状态
:
crsctl stat res -init -t
如果发现ora.cluster_interconnect.haip
资源处于离线状态
(OFFLINE)
,此时需要验证互联连接,并检查该节点上的网络设置。
还可以尝试手动启动离线的资源:
$GRID_HOME/bin/crsctl start res ora.cluster_interconnect.haip -init
$GRID_HOME/bin/crsctl start res ora.cssd -init
三:crsd
启动失败
CRSD
主要功能包括资源监控、资源故障转移、
OCR
管理等
常见问题:
CRS-4335:Cannot communicat with CRS:
1
检查集群件的告警日志
alert.log($GRID_HOME/log/$hostname)
2
检查
crsd.log($GRID_HOME/log//crsd)
记录了启动和停止集群或非集群资源、故障转移操作、资源经过、消息或通信错误等。
3
检查操作系统中
CRSD
进程
ps -ef|grep crsd.bin
4
检查
OCR
能否正常访问
5 OCR
存放在
ASM
中,检查
ASM
实例是否已经启动,所有磁盘组是否全表加载。
查看crsd
进程是否联机
crsctl stat res -init -t
可以使用下面命令手动启动单个守护进程:
$GRID_HOME/bin/crsctl start res ora.cssd -init
6
检查$GRID_HOME
、
$ORACLE_HOME
磁盘空间是否充足。
7
检查系统资源
内存、CPU
、
I/O
负载情况。
单个启动任何离线的资源。
检查OCR
完整性
--
验证
OCR
的完整性和逻辑损坏
ocrcheck
--
列出
OCR
磁盘的位置和名称
ocrcheck -config
--
列出
OLR
的位置和名称
ocrcheck -local -config
--
从所有节点上验证
OCR
的完整性
cluvfy comp ocr -n all -verbose
--
从本地节点上验证
OCR
的完整性
cluvfy comp ocr -n rac1 -verbose
四:
RAC
数据库的挂起分析
当数据库运行缓慢或由于内部死锁或latch
导致数据库挂起等,这时候建议使用挂起分析。
SQL> oradebug setmypid
SQL> oradebug unlimit
SQL> oradebug setinst all ---
在集群范围内使用挂起分析
SQL> oradebug -g all hanganalyze 3 ---
通常使用的级别是
3
---
等待几分钟
SQL> oradebug -g all hanganalyze 3
参考---<<
深入理解
Oracle RAC 12C>>
欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!