Iíve been doing some Enterprise Manager installs a bit more lately. At the same time, Iíve been working on Data Integration items such as GoldenGate and ODI. What these products have in common are that they require an Oracle Database for a repository. Needless to say Iíve been installing a lot of 12.1.0.2 databases in test and production environments. The one thing that has been consistent is the issue I keep seeing with PERL that is packaged with the Grid Infrastructure and/or Database.
Tip: This may not be happening to everyone and I may have a bad set of binaries. In discussing this with a co-worker, the md5sum sets were the same for my set of binaries as they were for his. So I couldnít say if this issue was bad binaries or something else.
As I was doing installs of Grid Infrastructure or Database on Oracle Enterprise Linux 6.6, I would get the following issue when trying to run the root.sh scripts from either the OUI or from the command line.
[[email protected] grid]./root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER=oracle
ORACLE_HOME=/u01/app/grid/12.1.0/grid
Copying dbhome to /usr/local/bin…
Copying oraenv to /usr/local/bin…
Copying coraenv to/usr/local/bin …
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.
/u01/app/grid/12.1.0/grid/crs/config/rootconfig.sh: line 131: 20862 Segmentation fault (core dumped) $ROOTSCRIPT $ROOTSCRIPT_ARGSThe command ‘/u01/app/grid/12.1.0/grid/perl/bin/perl -I/u01/app/grid/12.1.0/grid/perl/lib -I/u01/app/grid/12.1.0/grid/crs/install /u01/app/grid/12.1.0/grid/crs/install/rootcrs.pl ‘ execution failed You will notice that the execution failed with a ìSegmentation faultî. In looking at the command, I noticed that this is running perl from the $ORACLE_HOME/perl/bin directory. When I did a ìwhich perlî, the perl that the operating system is using is coming from /usr/bin/perl. This is not the correct one being used by the root.sh script. Also if I did a ìperl -vî from the command line it returns that the version of perl is 5.10. Now that it is established that the operating system installed perl is fine, I took a look at the perl in $ORACLE_HOME/perl/bin. When I navigated to the $ORACLE_HOME/perl/bin directory and executed ìperl -vî; I was met with the ìSegmentation faultî issue. Knowing that the problem is within the Oracle binaries; how can this be resolved? To resolve this ìSegmentation faultî issue, I had to recompile the perl binaries that Oracle uses in the $ORACLE_HOME path. To do this, I had to download and recompile the perl binaries in the $ORACLE_HOME directories.
$cd ~/Downloads
$wget http://www.cpan.org/src/5.0/perl-5.14.4.tar.gz
$tar -xzf perl-5.14.4.tar.gz
$cd perl-5.14.4
$./Configure -des -Dprefix=$GI_HOME/perl
$make
$make test
$make install
With the binaries recompiled, I was now able to run a ìperl -vî from the $ORACLE_HOME and get a successful result set.
[[email protected] ~] cd /u01/app/grid/12.1.0.2/grid
[[email protected] grid] cd perl/bin
[[email protected] bin]./perl -v
This is perl 5, version 14,subversion 4 (v5.14.4) built for x86_64-linux
Copyright 1987-2013,Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using “man perl” or “perldoc perl”. If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
This process can be done if the OUI is running and the step that hung can be retried. If you closed out the OUI, then the root.sh scripts will run successfully now from the $ORACLE_HOME directories.
Enjoy!