linux7 启动has服务报错:CRS-4124: Oracle High Availability Services startup failed

 (1)情况说明

        linux7 单机asm 11gR2, 服务器重启之后,发现asm服务没有自动启动

        手动start has 也报错了,靠贝了真是

[root@oomcserver ~]# crsctl start has
CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors. 

 (2)查看日志

        

        查看grid启动的日志,进入grid用户,查看文件

        $ORACLE_HOME/log/主机名/alert主机名.log

        因为启动依赖的是init.d,而redhat 7及以上版本默认为systemd,两者的差异较大。导致redhat 7及以上版本启动crs的ohasd服务时会卡住一段时间且最后无法启动成功

(3)解决方法(3选1即可)

        1.打补丁

        别想了,我自己的电脑搭建的环境,也没买oracle服务,没有补丁,得了吧

        2.手动执行命令

        手动的方法:在执行crsctl start has后马上再新开一个终端执行

/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1

        但这种方法只是临时的,重启后集群服务还是无法自动起来。

        永久的解决方法:

vi /etc/init.d/ohasd

       修改这个启动文件命令, 在文件中找到如这部分,在里面添加红字部分:

  if [ -r $AUTOSTARTFILE ]
  then
    case `$CAT $AUTOSTARTFILE` in
      enable*)
        $LOGERR "Oracle HA daemon is enabled for autostart." 
        /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1 &
        my_crsctl start has -nowait
        sleep 600
        ps -ef | grep dd| grep hasd|awk '{print $2}'|xargs kill -9

        ;;
      disable*)
        $LOGERR "Oracle HA daemon is disabled for autostart." 
        ;;
      *)
        $LOGERR "Oracle HA daemon is disabled by damaged install."
        $LOGERR "Unexpected settings found in $AUTOSTARTFILE."
        ;;
    esac
 

        3.ohas服务 enable

        之前我们自己配置的ohas.service服务(这里有2个ohas的服务,ohasd不是我们自己写的哦),这个服务也是启动ohasd的,把他设置成开机自启动就行

systemctl enable ohas.service

        这个文件在安装grid报错[client(5376)]CRS-2101:The OLR was formatted using version 3.时候配置的,当时没有配置自启动服务,所以再次启动就出现Oracle High Availability Services startup failed. 

linux7 启动has服务报错:CRS-4124: Oracle High Availability Services startup failed_第1张图片

        reboot重启,发现asm的服务都启动了,ok

linux7 启动has服务报错:CRS-4124: Oracle High Availability Services startup failed_第2张图片

你可能感兴趣的:(常见错误,Oracle,oracle,数据库)