暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

CRS-4124 CRS-4000 Oracle HAS startup failed after reboot server (RHEL6)

原创 Anbob 2014-02-13
1757
Today, someone in the QQ group asked this question ,hi configured Oracle Grid Infrastructure for a Standalone Server(11.2.0.1) on RHEL 6.4,Restarting the server Oracle-HAS not starts and shows the next OHAs error:
# crsctl start has
CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.
# crsctl check has
CRS-4639: Could not contact Oracle High Availability Services
Cause
======================================
The root cause is because the Oracle Grid infrastructure 11.2.0.1 does not support REL 6,we can use the REL 6 compatible version 11.2.0.3 and higher
Solution
======================================
[grid@myrac1 ~]$ ps -ef | grep init.ohasd
grid 8203 3000 0 18:47 pts/0 00:00:00 grep init.ohasd
init.ohasd is used to control ohasd (which runs as a binary 'ohasd.bin').If init.ohasd is not running ohasd won't be able to start.
cat /etc/inittab|grep init.ohasd
[grid@myrac1 has]$ cat /etc/inittab|grep init.ohasd
h1:35:respawn:/etc/init.d/init.ohasd run >/dev/null 2>&1
Manually start init.ohasd
#/etc/init.d/init.ohasd start
or
#/sbin/init q
# crsctl check has
CRS-4638: Oracle High Availability Services is online
Other ways:
In RHEL 6 inittab is no longer supported, it uses upstart insted.
See more info in page:http://searchenterpriselinux.techtarget.com/tip/RHEL-6-ditches-System-V-init-for-Upstart-What-Linux-admins-need-to-know
To solve the issue do the following:
Create the file:/etc/init/init-oracle.conf
*#start oracle*
start on runlevel [0123456]
stop on runlevel [016]
respawn
exec /etc/init.d/init.ohasd run > /dev/null 2>&1
复制

After the file is created, reboot and Oracle should start normaly
or
Problem is indeed because of upstart/init incompatibility. Here is the working way:
1) Proceed with the installation as usual until root.sh invocation.
2) Before root.sh edit $GRID_HOME/crs/install/s_crsconfig_lib.pm, go to line 1173 (you should find a code like: if ($srv eq "ohasd") { # Start OHASD).
3) Insert a following snippet before starting OHASD part (line 1173)
my $UPSTART_OHASD_SERVICE = "oracle-ohasd";
my $INITCTL = "/sbin/initctl";
($status, @output) = system_cmd_capture ("$INITCTL start $UPSTART_OHASD_SERVICE");
if (0 != $status)
{
error ("Failed to start $UPSTART_OHASD_SERVICE, error: $!");
return $FAILED;
}
复制

4) Create a file /etc/init/oracle-ohasd.conf with the following content inside
# Oracle OHASD startup
start on runlevel [35]
stop on runlevel [!35]
respawn
exec /etc/init.d/init.ohasd run >/dev/null 2>&1
复制

5) Invoke root.sh
6) Finish the installation.
If you previously ran root.sh (not successfully), simply roll it back:
$GRID_HOME/crs/install/roothas.pl -deconfig -force -verbose
Make changes above and continue.
Unsupported: 11.2.0.1/11.2.0.2 GI root.sh Fails on OL6/RHEL6 with ohasd failed to start: Inappropriate ioctl for device (Doc ID 1557677.1)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论