Recently I installed Oracle RAC 11gr2 (11.2.0.4) 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 (11.2.0.4). 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:
# /app/11.2.0/grid/root.sh Performing root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= grid ORACLE_HOME= /app/11.2.0/grid/root.sh 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 root wallet cert root cert export peer wallet profile reader wallet pa wallet peer wallet keys pa wallet keys peer cert request pa cert request peer cert pa cert 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: 2014-02-28 00:13:19.635: [client(8796)]CRS-2101:The OLR was formatted using version 4. 2014-02-28 00:15:11.647: [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 failedAfter 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/To fix this I created a system script for the High Availability service like so:.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
# vi /etc/systemd/system/ohasd.service [Unit] Description=ohasd daemon [Service] ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1Then 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.