Well, you know it is weekend, it is when more free time we have to play with Oracle Stuff plus the 12 hours at night that we have everyday; it was raining, there was coffee, and only Oracle was pending. So I decided to practice some topics for Oracle 18.104.22.168 but my laptop got full with a lot of virtual machines with 11g since many months ago when I was getting prepared for my OCM 11g, so I decided to delete all of them and start creating new ones, this time for 12c. But this time was different, I found problems. At the past I installed a couple of times Oracle 12c single instances and also 2 times Oracle Flex Clusters and I haven't seen before those problems. I came back since I thought maybe I was doing something wrong, like skipping a RPM package or mixing software for 32 bits with 64, etc... But after all the fun , it looks like the issue is with Oracle VirtualBox, that makes sense since last week I upgrated VirtualBox to the latest version (5). So let me show you what problems I found and how I resolved them, so that if you are having these problems you can go directly to the solution and avoid spending many cups of coffee like me as you know nowadays every cup of coffee is expensive :)
Basically I had 2 problems:
I will show you the first problem:
"ins_rdbms.mk" at while installing:
You know you found this problem when Oracle Universal Installer shows you the following image:
NOTE: When you get that image, don't do anything, just leave that session there and go to the solution section, since after the fix you have to come back and resume the installation.
... and you confirm by the log that the problem is because of a java library:
INFO: /u01/app/grid/product/12.1.0/grid/bin/orald -o /u01/app/grid/product/12.1.0/grid/rdbms/lib/oracle -m64 -z noexecstack -Wl,--disable-new-dtags -L/u01/app/grid/product/12.1.0/grid/rdbms/lib/ -L/u01/app/grid/product/12.1.0/grid/lib/ -L/u01/app/grid/product/12.1.0/grid/lib/stubs/ -Wl,-E /u01/app/grid/product/12.1.0/grid/rdbms/lib/opimai.o /u01/app/grid/product/12.1.0/grid/rdbms/lib/ssoraed.o /u01/app/grid/product/12.1.0/grid/rdbms/lib/ttcsoi.o -Wl,--whole-archive -lperfsrv12 -Wl,--no-whole-archive /u01/app/gINFO: rid/product/12.1.0/grid/lib/nautab.o /u01/app/grid/product/12.1.0/grid/lib/naeet.o /u01/app/grid/product/12.1.0/grid/lib/naect.o /u01/app/grid/product/12.1.0/grid/lib/naedhs.o /u01/app/grid/product/12.1.0/grid/rdbms/lib/config.o -lserver12 -lodm12 -lcell12 -lnnet12 -lskgxp12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 -lclient12 -lvsn12 -lcommon12 -lgeneric12 -lknlopt `if /usr/bin/ar tv /u01/app/grid/product/12.1.0/grid/INFO: rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap12" ; fi` -lskjcx12 -lslax12 -lpls12 -lrt -lplp12 -lserver12 -lclient12 -lvsn12 -lcommon12 -lgeneric12 `if [ -f /u01/app/grid/product/12.1.0/grid/lib/libavserver12.a ] ; then echo "-lavserver12" ; else echo "-lavstub12"; fi` `if [ -f /u01/app/grid/product/12.1.0/grid/lib/libavclient12.a ] ; then echo "-lavclient12" ; fi` -lknlopt -lslax12 -lpls12 -lrt -lplp12 -ljavavm12 -lserver12 -lwwg `cat /u01/app/grid/product/12.1.0/gridINFO: /lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /u01/app/grid/product/12.1.0/grid/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnnzst12 -lzt12 -lztkg12 -lmm -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 -lztkg12 `cat /u01/app/grid/product/12.1.0/grid/lib/ldflags` -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /u01/app/grid/product/12.1.0/grid/lib/ldflags` -lncrypt12 -lnsgr1INFO: 2 -lnzjs12 -ln12 -lnl12 -lnnzst12 -lzt12 -lztkg12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `if /usr/bin/ar tv /u01/app/grid/product/12.1.0/grid/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo12 -lserver12"; fi` -L/u01/app/grid/product/12.1.0/grid/ctx/lib/ -lctxc12 -lctx12 -lzx12 -lgx12 -lctx12 -lzx12 -lgx12 -lordimt12 -lclsra12 -ldbcfg12 -lhasgen12 -lskgxn2 -lnnzst12 -lztINFO: 12 -lxml12 -locr12 -locrb12 -locrutl12 -lhasgen12 -lskgxn2 -lnnzst12 -lzt12 -lxml12 -lgeneric12 -loraz -llzopro -lorabz2 -lipp_z -lipp_bz2 -lippdcemerged -lippsemerged -lippdcmerged -lippsmerged -lippcore -lippcpemerged -lippcpmerged -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 -lsnls12 -lunls12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnINFO: ls12 -lasmclnt12 -lcommon12 -lcore12 -laio -lons `cat /u01/app/grid/product/12.1.0/grid/lib/sysliblist` -Wl,-rpath,/u01/app/grid/product/12.1.0/grid/lib -lm `cat /u01/app/grid/product/12.1.0/grid/lib/sysliblist` -ldl -lm -L/u01/app/grid/product/12.1.0/grid/lib
INFO: /usr/bin/ld: cannot find -ljavavm12collect2: ld returned 1 exit status
INFO: make: *** [/u01/app/grid/product/12.1.0/grid/rdbms/lib/oracle] Error 1
INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'irman ioracle' of makefile '/u01/app/grid/product/12.1.0/grid/rdbms/lib/ins_rdbms.mk'. See '/u01/app/oraInventory/logs/installActions2015-11-22_09-41-37AM.log' for details.Exception Severity: 1[root@db12102 u01]#
Oracle binaries already have that jave library, all what you have to do is copy it from one directory to the other where Oracle Universal Installer will use it:
[root@db12102 u01]# cp $ORACLE_HOME/javavm/jdk/jdk7/lib/libjavavm12.a $ORACLE_HOME/lib[root@db12102 ~]# chown grid:oinstall $ORACLE_HOME/lib/libjavavm12.a
After that, came back to Oracle Universal Installer and just click on "Retry" button. The force will be with you.
IMPORTANT NOTE: I was installing GI standalone here, but I found the problem also when I was installing database software. if you are lucky enough you will have to fix this twice.
2. Error "Segmentation fault" when I was configuring ASM and Database
The second error was related to perl. I found this problem for the first time when I was executing "root.sh" to configure GI standalone. Immediately after execute "root.sh" I received the following:
Creating /etc/oratab file...Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed./u01/app/grid/product/12.1.0/grid/crs/config/rootconfig.sh: line 131: 6642 Segmentation fault (core dumped) $ROOTSCRIPT $ROOTSCRIPT_ARGSThe command '/u01/app/grid/product/12.1.0/grid/perl/bin/perl -I/u01/app/grid/product/12.1.0/grid/perl/lib -I/u01/app/grid/product/12.1.0/grid/crs/install /u01/app/grid/product/12.1.0/grid/crs/install/roothas.pl ' execution failed[root@db12102 ~]#
The solution was already found by Laurent Leturgez in this link (This was the first link I found with the issue)
The problem is related to perl binaries. Basically you have to download a new perl binaries and replace the oracle's one.
The second time I found this problem, was when I was creating a new database using "DBCA". "root.sh" for Oracle Database Software ran successfully, but DBCA had the problem. I had to execute the fix again at this time before use DBCA to create my database.
I recommend you the following:
Before to execute "root.sh" for GI, execute the following little test:
[root@db12102 bin]# cd $ORACLE_HOME/perl/bin[root@db12102 bin]# ./perl -vSegmentation fault
if you get that result "Segmentation fault" go directly to execute the fix.
If you get the following output (or an output alike), then just ignore this post and proceed with your configuration:
This is perl 5, version 14, subversion 1 (v5.14.1) built for x86_64-linux-thread-multi
Copyright 1987-2011, Larry Wall
Perl may be copied only under the terms of either the Artistic License or theGNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found onthis system using "man perl" or "perldoc perl". If you have access to theInternet, point your browser at http://www.perl.org/, the Perl Home Page.
Well, that was for GI.
I recommend you the same test, using ORACLE_HOME pointing to your oracle database software installation, before to create databases with DBCA. If you get the same "Segmentation Fault" for Oracle Database Perl, go directly to execute the fix.
If everything goes well you will see finally your database running:
[oracle@db12102 perl]$ ps -ef |grep pmonoracle 21660 1 0 16:47 ? 00:00:00 ora_pmon_cdb1oracle 22475 1267 0 17:03 pts/1 00:00:00 grep pmongrid 29278 1 0 16:26 ? 00:00:00 asm_pmon_+ASM[oracle@db12102 perl]$
[oracle@db12102 perl]$ sqlplus / as sysdba
SQL*Plus: Release 22.214.171.124.0 Production on Sun Nov 22 17:03:47 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:Oracle Database 12c Enterprise Edition Release 126.96.36.199.0 - 64bit ProductionWith the Partitioning, Automatic Storage Management, OLAP, Advanced Analyticsand Real Application Testing options
SQL> select name, open_mode from v$database;
NAME OPEN_MODE--------- --------------------CDB1 READ WRITE
NOTE: While writing this blog post, my friend Bobby Curtis already was aware of it, so it looks like this issue is more frequent than we think:)