Sunday, March 30, 2014

ggsci: error while loading shared libraries: libnnz11.so: wrong ELF class: ELFCLASS32

I know what some of you might be thinking, is this an Elf Class from Word of Warcraft? Not quite. Coincidentally, when you google imagines for “elf world of warcraft”, you get mostly female ones :)

Over the last couple of weeks, I spent a few hours across several sessions explaining and demonstrating a GoldenGate installation and configuration. The team had provided me two Enterprise Linux servers (source and target) where the oracle database software was already installed as well as database instances running.

The environment configuration was:

Source Server: OEL 4.9 32bit

Source Database: Oracle 11.2.0.4 32bit

GoldenGate Binaries: 11.2.1.0.X 32bit

Target: OEL 6.5 64bit

Target Database: Oracle 11.2.0.4 64bit (I assumed)

GoldenGate Binaries: 11.2.1.0.X 64bit

The GoldenGate (11.2.1.0.X) installation on the source was successful, however, on the target side after I unzipped the GoldenGate binaries and executed ggsci I received the nasty error message below:

-bash-4.1$ ./ggsci
./ggsci: error while loading shared libraries: libnnz11.so: wrong ELF class: ELFCLASS32

Interesting. I was used to received the “error while loading shared libraries” which means that 32bit library file location is not in the LD_LIBRARY_PATH. I was still unable to get GGSCI to work. After a lot of toiling around with .bash_profile settings and looking through various MOS notes, I decided to give it a rest until the next day.

Come the next day, it dawned on me that since I did not setup this target environment, is it possible that my assumption about the 64bit Oracle Database binaries was incorrect? The team I was mentoring had told me that this was a sandbox environment, so it was quite likely that someone installed 32bit Oracle Database binaries.

I checked the banner for the “bad” oracle home. 

-bash-4.1$ echo $ORACLE_HOME
/u01/11gr2/app/oracle/product/11.2.0/db_1
-bash-4.1$ echo $ORACLE_SID
test1
-bash-4.1$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Mar 26 20:30:10 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> 

Maybe there was something wrong with the installation to begin with, so I Installed a new Oracle 11.2.0.4. Home and checked it’s banner:

-bash-4.1$ echo $ORACLE_HOME
/u01/11gr2/app/oracle/product/11.2.0/db_2
-bash-4.1$ echo $ORACLE_SID
target01
-bash-4.1$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Mar 26 20:30:59 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>  

It wasn’t too surprising that it was exactly the problem. To verify, I started ggsci from the new home and presto it worked!

The point here is, do not take anything for granted. If I had simply gone through my checklist to validate the environment(s), then I could have saved myself a lot of time and effort. And of course, the reason why there were no moss notes directly related to the error message is likely because the support engineers assume that you’ve read the documentation and validated the environment before hand.

Hope this helps.

Cheers.

No comments :

Post a Comment