Recently I installed Oracle RAC 11gr2 (18.104.22.168) on Red Hat Enterprise Linux 7 and ran into a problem running the root.sh script towards the end of the installation.
According to Oracle support, Red Hat Enterprise Linux 7 is supported by Oracle for 11gr2 (22.214.171.124). However, I found out the hard way that it will not successfully install without manual intervention. Here is what I did to solve the problem:
The Oracle installation went well until the point of running the root.sh script. At that point it was unable to start the Oracle Clusterware Stack:
Performing root user operation for Oracle 11g
The following environment variables are set as:
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /app/11.2.0/grid/crs/install/crsconfig_params
OLR initialization - successful
root wallet cert
root cert export
profile reader wallet
peer wallet keys
pa wallet keys
peer cert request
pa cert request
peer root cert TP
profile reader root cert TP
pa root cert TP
peer pa cert TP
pa peer cert TP
profile reader pa cert TP
profile reader peer cert TP
peer user cert
pa user cert
2015/01/22 00:16:34 CLSRSC-330: Adding Clusterware entries to file '/etc/inittab'
2015/01/22 00:18:40 CLSRSC-214: Failed to start 'ohasd'
Failed to start the Clusterware. Last 20 lines of the alert log follow:
[client(8796)]CRS-2101:The OLR was formatted using version 4.
[client(9189)]CRS-2101:The OLR was formatted using version 4.
CRS-4133: Oracle High Availability Services has been stopped.
2015/01/22 00:31:53 CLSRSC-117: Failed to start Oracle Clusterware stack
Died at /app/11.2.0/grid/crs/install/crsutils.pm line 8813.
The command '/app/11.2.0/grid/perl/bin/perl -I/app/11.2.0/grid/perl/lib -I/app/11.2.0/grid/crs/install /app/11.2.0/grid/crs/install/rootcrs.pl ' execution failed
After some research I determined that there has been a major change in the way that Red Hat Enterprise Linux 7 handles initialization of services. You can find more details from Red Hat's site here. Essentially, RHEL 7 uses the systemd method of starting services, instead of inittab. The Oracle installation process had configured the inittab entries, but the inittab itself shows that it is no longer used:
# vi /etc/inittab
# inittab is no longer used when using systemd.
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
# Ctrl-Alt-Delete is handled by /etc/systemd/system/ctrl-alt-del.target
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
# To set a default target, run:
# ln -sf /lib/systemd/system/<target name>.target /etc/systemd/system/default.target
htfa:35:respawn:/etc/init.d/init.tfa run > /dev/null 2>&1 < /dev/null
h1:35:respawn:/etc/init.d/init.ohasd run > /dev/null 2>&1 < /dev/null
To fix this I created a system script for the High Availability service like so:
ExecStart=/etc/init.d/init.ohasd run > /dev/null 2>&;1
Then I reloaded the daemon:
# systemctl daemon-reload
..and started the High Availability service:
# systemctl enable ohasd.service
# systemctl start ohasd.service
Once this was done I was able to successfully run the root.sh script and the grid infrastructure installation completed normally.