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<HOSTNAME>.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<HOSTNAME>.log($GRID_HOME/log/$hostname)
告警日志记录了集群守护进程的启动信息还有出现异常情况发生节点驱逐的信息等。
2 检查ocssd.log($GRID_HOME/log/<hostname>/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<HOSTNAME>.log($GRID_HOME/log/$hostname)
2 检查crsd.log($GRID_HOME/log/<hostname>/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>>