Chapter 38. Oracle Installation Errors

This chapter covers many common errors and pitfalls associated with installing an Oracle9i Database.
Log Files

Always check first the error logs for 9.2.0 in /tmp/OraInstall*, where "*" will be the date of the install, for example /tmp/OraInstall2002-07-04_09-50-19PM. When you problems with make, see also the $ORACLE_HOME/install/make.log file.

make Problems

First ensure that gcc is installed on your system by executing:

$ which gcc
/usr/bin/gcc
Here is the command to find the RPM package name for /usr/bin/gcc:
$ rpm -qf /usr/bin/gcc
gcc-2.96-98
Verify that your error is not one of the other error messages below. See Chapter 31, Verifying Required Packages(RPMs) for more information on whether you have the correct packages.
Error in invoking target install of makefile/u01/app/oracle/product/9.2.0/ctx/lib/ins_ctx.mk

You may see the following errors in $ORACLE_HOME/install/make.log:

/lib/libdl.so.2: undefined reference to `_dl_addr@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_open@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_close@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_sym@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_vsym@GLIBC_PRIVATE'
This error comes up when the following step is executed:
/usr/bin/make -f ins_ctx.mk install ORACLE_HOME=/u01/app/oracle/product/9.2.0
Edit the file $ORACLE_HOME/ctx/lib/env_ctx.mk, add "$(LDLIBFLAG)dl" to the "INSO_LINK =" line. The updated line should with the added "$(LDLIBFLAG)dl" flag, should look like this:
INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-rpath,$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)
After that hit Retry in the error pop-up.
If this did not fix the problem, try the following solution:
Edit the file $ORACLE_HOME/ctx/lib/env_ctx.mk again, go to "INSO_LINK =", remove the above entry you made and add "`cat $(LIBHOME)/sysliblist`" to the line and save it. This is what the updated line, with the added "`cat $(LIBHOME)/sysliblist`" string, look like:
INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m `cat $(LIBHOME)/sysliblist` $(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-rpath,$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)
After that hit Retry in the error pop-up.
ORA-27123: unable to attach to shared memory segment

This error, "ORA-27123: unable to attach to shared memory segment", message may came up when the Oracle Database Configuration Assistant was running. Execute the following command to temporarily increase the maximum shared memory size:

su - root
# cat /proc/sys/kernel/shmmax
33554432
# echo `expr 1024 \* 1024 \* 1024` > /proc/sys/kernel/shmmax
# cat /proc/sys/kernel/shmmax
1073741824
#
Then click Retry for the Oracle Database Configuration Assistant.
It is recommended to increase the shmmax setting permanently for Oracle9i. So if you want to increase the maximum shared memory size permanently, add the following line to the /etc/sysctl.conf file:
kernel.shmmax=1073741824
For more information on setting shared memory parameters for Oracle, see Chapter 7, Setting Shared Memory.
ORA-03113: end-of-file on communication channel

You may see this error, ORA-03113: end-of-file on communication channel, when you run the "Database Configuration Assistant" and "sqlplus". It can be caused by shmmax parameter being too small. Make sure to increase shmmax permanently. Read Chapter 7, Setting Shared Memory for information on how to increase the shmmax parameter.

Error in invoking target install of make file /u01/app/oracle/product/9.2.0/network/lib/ins_oemagent.mk

If you see the error, Error in invoking target install of make file /u01/app/oracle/product/9.2.0/network/lib/ins_oemagent.mk, on Red Hat Enterprise Linux 3, follow the guide lines at Chapter 35, Installing Oracle9i R2 (9.2.0.4.0) on Red Hat Enterprise Linux 3.

An error when executing "agentctl start"

The error below may have occurred when "agentctl start" is executed.

$ agentctl start
		
DBSNMP for Linux: Version 9.2.0.4.0 - Production on 07-JAN-2004 19:11:14

Copyright (c) 2003 Oracle Corporation. All rights reserved.

Starting Oracle Intelligent Agent.../u01/app/oracle/product/9.2.0/bin/dbsnmpwd:
line 156: 1855 Segmentation fault nohup $ORACLE_HOME/bin/dbsnmp $*
>>$DBSNMP_WDLOGFILE 2>&1
/u01/app/oracle/product/9.2.0/bin/dbsnmpwd: line 156: 1868 Segmentation fault
nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
/u01/app/oracle/product/9.2.0/bin/dbsnmpwd: line 156: 1880 Segmentation fault
nohup $ORACLE_HOME/bin/dbsnmp $* >>$DBSNMP_WDLOGFILE 2>&1
/u01/app/oracle/product/9.2.0/bin/dbsnmpwd: line 156: 1892
You are probably trying to start the agent on Red Hat Enterprise Linux 3. See Section 35.3, “Patching Oracle Intelligent Agent on Red Hat Enterprise Linux 3”for how to resolve it.
Errors in dbca

If you receive the error:

$ dbca
SIGSEGV   11*  segmentation violation
        stackbase=0x453da000, stackpointer=0x453d9d5c
Full thread dump:
    "AWT-EventQueue-0" (TID:0x411d1e20, sys_thread_t:0x453d9e0c,
state:R) prio=5 *current thread*
        java.lang.Object.wait(Object.java)
        java.awt.EventQueue.getNextEvent(EventQueue.java:126)
...
or
/u01/app/oracle/product/9.2.0/bin/dbca: line 124: 26649 Segmentation fault
$JRE_DIR/bin/jre -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath
$CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
If this happens, try the following:
$ su - root
touch /etc/rac_on
Now try to restart dbca.
Another option is to edit $ORACLE_HOME/bin/dbca and to put the following lines under comment except the line not preceded by a hash:
# if [ -f /etc/rac_on ]; then
# Run DBCA
$JRE_DIR/bin/jre -native -DORACLE_HOME=$OH ...
# else
# Run DBCA
# $JRE_DIR/bin/jre -DORACLE_HOME=$OH ...
# fi
Now try to restart dbca.
gcc errors in Red Hat Enterprise Linux 3

When installing or running Oracle on Red Hat Enterprise Linux 3 you may encounter this gcc error.

gcc -o /u01/app/oracle/product/9.2.0/rdbms/lib/oracle \
	-L/u01/app/oracle/product/9.2.0/rdbms/lib/ ...
...
/usr/bin/ld: /u01/app/oracle/product/9.2.0/rdbms/lib/oracle: hidden symbol `__fixunssfdi' in /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/libgcc.a(_fixunssfdi.oS) is referenced by DSO

collect2: ld returned 1 exit status 
make: *** [/u01/app/oracle/product/9.2.0/rdbms/lib/oracle] Error 1 
/usr/bin/make -f ins_rdbms.mk ioracle ORACLE_HOME=/u01/app/oracle/product/9.2.0
To fix the linking problem, execute the following commands:
# mv /usr/bin/gcc /usr/bin/gcc323
# mv /usr/bin/g++ /usr/bin/g++323 
# ln -s /usr/bin/gcc296 /usr/bin/gcc 
# ln -s /usr/bin/g++296 /usr/bin/g++
Now you should be able to relink the oracle binary again.
Once you are done, you may want to undo the changes you have performed above:
# mv /usr/bin/gcc323 /usr/bin/gcc
# mv /usr/bin/g++323 /usr/bin/g++
./runInstaller: line 58: ./runInstaller: cannot execute binary file

You are probably trying to run a 64 bit Oracle version on a 32 bit Linux system. Make sure you downloaded the right Oracle version for your Linux system.

To check if runInstaller is a 32 bit binary or a 64 bit binary, run the following command:
$ cd /mnt/cdrom
$ file install/linux/runInstaller
install/linux/runInstaller: ELF 32 bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped
To check if your Linux system is 32 bit system or a 64 bit system, run e.g. the following command:
$ file /sbin/init
/sbin/init: ELF 32 bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped
The Oracle installer runInstaller Hangs

The Oracle installer runInstaller hangs at:

Installing Java Runtime Environment... Link pending... Copying README...
You may encounter this problem on Red Hat Enterprise Linux 3. You probably forgot to set the environment variable LD_ASSUME_KERNEL to 2.4.1.
To rectify this problem, run the following command and then restart runInstaller:
oracle$ export LD_ASSUME_KERNEL=2.4.1
Recovery Manager(rman) Hangs

You are probably running the wrong rman binary from the XFree86-devel RPM:

$ which rman
/usr/X11R6/bin/rman
Can't find init file for Database "SID"

You may see this error when you start the database with dbstart.

Copy the init file for your SID (in this example “test”) from from /u01/app/oracle/admin/test/pfile to $ORACLE_HOME/dbs to get dbstart and dbshut working:
cp /u01/app/oracle/admin/test/pfile/inittest.ora.642002224936 $ORACLE_HOME/dbs/inittest.ora
Error in setting permissions of file/directory /u01/app/oracle/jre/1.1.8/bin/i686/native_threads/.extract_args

This may happen if the CD was not burned correctly. The solution is to check the image checksums and then burn the cd again or download the image again.

Various Oracle SID Errors

If you get the error ORA-01034: ORACLE not available, ORA-27101: shared memory realm does not exist, Linux Error: 2: No such file or directory or ORA-01034: ORACLE not available then check if ORACLE_SID is set correctly.

If ORACLE_SID is set correctly, then you probably have a trailing slash "/" on the ORACLE_HOME environment variable. Remove it by changing ORACLE_HOME=/u01/app/oracle/product/9.2.0/ to ORACLE_HOME=/u01/app/oracle/product/9.2.0 and try again to connect to sys. Remember the ORACLE_HOME parameter may be slightly different on your machine.
jre was not found in /tmp/OraInstall/jre/bin/i586/green_threads/jre

You are probably running runInstaller on a 586 machine, or your AMD CPU is falsely recognized as 586 (the case for a AMD K6-III-400). You can check your machine (hardware) type by executing "uname -m". If you are not running on a 586 or on a AMD machine, try to link jre to java and see if this solves your problem.

To rectify the problem with the 586 machine or with the AMD CPU, create a link for lib and bin from i586 to i686 and make the i686 directories read only. For example:
ln -s /tmp/OraInstall/jre/bin/i686 /tmp/OraInstall/jre/bin/i586
ln -s /tmp/OraInstall/jre/lib/i686 /tmp/OraInstall/jre/lib/i586
chmod u-w /tmp/OraInstall/jre/bin/i686/tmp/OraInstall/jre/lib/i686
Now restart runInstaller.
./jre/bin/i386/native_threads/java: error while loading shared libraries: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory

You probably forgot to install the compat-libstdc++ RPM, the package for "Standard C++ libraries for Red Hat Linux 6.2 backwards compatibility". To rectify this problem, install the compat-libstdc++ RPM. Read Chapter 31, Verifying Required Packages(RPMs) for more information.

/u01/app/oracle/jre/1.1.8/bin/../lib/i686/green_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so) Unable to initialize threads: cannot find class java/lang/Thread Could not create Java VM

You may experience this problem when running the Database Configuration Assistant dbca on Red Hat Enterprise Linux 3 but forgot to set the LD_ASSUME_KERNEL environment variable.

To rectify this problem, run the following command as the oracle user on Red Hat Enterprise Linux 3 and restart dbca:
oracle$ export LD_ASSUME_KERNEL=2.4.1
lsnrctl status or lsnrctl start Errors

When lsnrctl status or lsnrctl start are executed you may get the following output:

$ lsnrctl status (or lsnrctl start)
LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 14-OCT-2004 14:33:10
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC))) TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 2: No such file or directory
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
One of the possibilities are that the /var/tmp/.oracle directory does not exist. If that is the case, run the following commands:
su - root
# mkdir /var/tmp/.oracle
# chown oracle:dba /var/tmp/.oracle
Now try to run lsnrctl start as oracle again.
Java Cannot Connect to X11

First ensure you followed the instructions in Chapter 33, Starting runInstaller very closely.

If you get this error:
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'alpha:0.0' as the value of the DISPLAY variable.
        at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at sun.awt.X11GraphicsEnvironment.(X11GraphicsEnvironment.java:59)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:120)
        at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:58)
        at java.awt.Window.(Window.java:188)
        at java.awt.Frame.(Frame.java:315)
        at java.awt.Frame.(Frame.java:262)
        at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:593)

Note

If you use newer Red Hat Enterprise Linux versions as your desktop and you want to install the database on another machine, then you need to set the DisallowTCP entry in /etc/X11/gdm/gdm.conf for the GNOME Display Manager to read:
DisallowTCP=false
After that you need to restart your X server. You can do this runnning the init command as root:
# init 3# init 5
Other Errors

For other errors, issues and problems your best bet is to search the Oracle on Linux Discussion Forum.