Oracle rac排查故障时不生成日志的情况排查(npohasd文件)
简介
在启动rac的过程中,目前碰到过2种不生成日志的情况,下边分别介绍。
情况1:软件目录权限被修改
例如,不小心将目录$GRID_HOME/log
的权限修改了,或删除了该文件夹,则在此情况下的修复可以参考:https://xmmup.com/ruguogrid_homehuogrid_basehuo-u01muluxiadesuoyouwenjianquanxianbeirenweiwucaozuoxiugailenaai.html
情况2:bug所致
情况1:11.2.0.1 在RHEL6上安装
启动has进程:
1[root@lhrdb2 ~]# /u01/app/11.2.0/grid/bin/crsctl start has
2......... 卡在这里
在启动has进程的时候,不生成日志,但在/var/log/messages文件中有如下输出:
1Apr 3 19:27:57 lhrdb1 root: exec /u01/app/11.2.0/grid/perl/bin/perl -I/u01/app/11.2.0/grid/perl/lib /u01/app/11.2.0/grid/bin/crswrapexece.pl /u01/app/11.2.0/grid/crs/install/s_crsconfig_lhrdb1_env.txt /u01/app/11.2.0/grid/bin/ohasd.bin "reboot"
2Apr 3 19:27:57 lhrdb1 /u01/app/11.2.0/grid/bin/crswrapexece.pl[24193]: executing "/u01/app/11.2.0/grid/bin/ohasd.bin reboot"
通过strace进行跟踪,看到在open /var/tmp/.oracle/npohasd文件:
1[root@lhrdb2 lhrdb4]# ll /var/tmp/.oracle/npohasd
2prw-r--r-- 1 root root 0 Nov 9 04:12 /var/tmp/.oracle/npohasd
3
4[root@lhrdb2 lhrdb4]# strace -p 13380
5Process 13380 attached
6open("/var/tmp/.oracle/npohasd", O_WRONLY
解决 :需要执行如下的dd命令
1dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
也可以尝试使用如下的命令:
1/etc/init.d/init.ohasd run
Oracle中的各种日志文件默认位置
参考:https://xmmup.com/oraclezhongdegezhongrizhiwenjianweizhi.html
总结
1、11.2.0.1在启库的时候,日志无输出,通过strace看到在open文件/var/tmp/.oracle/npohasd
,此时需要去执行dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
才可以正常启库。
2、若执行root.sh报错“ohasd failed to start at u01/app/11.2.0/grid/crs/install/roothas.pl line 377,line 73.”,则在执行root.sh脚本时出现“Adding Clusterware entries to inittab”的时候,在另一个窗口使用root立即执行以下命令:dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
才可以正常安装。
3、CentOS 7.6安装11.2.0.4的rac,在节点1执行root.sh卡住,,查看ohasd.log报错:“ [ default][3970635584] Created alert : (:OHAS00117:) : TIMED OUT WAITING FOR OHASD MONITOR”,这是Oracle 11g 的一个bug。解决办法也是在执行root.sh脚本时出现“Adding Clusterware entries to inittab”的时候,或者文件/var/tmp/.oracle/npohasd
已生成时,在另一个窗口使用root立即执行以下命令:dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
才可以正常安装。
4、类似还有如下的错误,解决办法也一样:
1CRS-4124: Oracle High Availability Services startup failed.
2CRS-4000: Command Start failed, or completed with errors.
3ohasd failed to start: Inappropriate ioctl for device
4ohasd failed to start: Inappropriate ioctl for device at /u01/app/11.2.0/grid/crs/install/roothas.pl line 296.
5
6
7CRS-4124: Oracle High Availability Services startup failed.
8CRS-4000: Command Start failed, or completed with errors.
9ohasd failed to start: Inappropriate ioctl for device
10ohasd failed to start at/u01/app/11.2.0/grid/crs/install/rootcrs.pl line 443.
5、/var/tmp/.oracle/npohasd
文件在Oracle Real Application Clusters (RAC) 环境中具有重要作用。它是Oracle Clusterware的一部分,与Oracle High Availability Services (OHASD) 相关。OHASD是RAC集群的核心组件,它负责管理集群的各种资源,包括数据库实例、应用服务器、VIP地址等,以实现高可用性和故障转移功能。npohasd 文件通常作为OHASD在启动时的一个临时管道文件或套接字文件,用于在集群节点间建立通信。npohasd
文件是用于与 ohasd 进行通信的命名管道(named pipe)。通过这个管道,ohasd 可以与其他集群节点上的 ohasd 进行通信,以协调集群资源的管理和状态同步。在某些情况下,当RAC集群中的某个节点在启动OHASD服务时出现问题,如文件权限问题、文件丢失或损坏,可能需要重新创建或刷新这个文件,以确保集群能正常启动和运行。有时,运维人员会通过执行类似于/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null这样的命令来刷新这个文件,以便于解决某些与文件相关的启动问题。总结起来,/var/tmp/.oracle/npohasd 文件在Oracle RAC中是OHASD服务的重要组成部分,用于节点间的通信和集群管理,对RAC集群的稳定性和可靠性起着关键作用。
参考
http://oracleblog.org/working-case/ohasd-can-not-auto-start-with-server-reboot/