Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> ORA-03113: end-of-file on communication channel on 8.1.7 :-(
Hello,
I would like to install oracle8i 8.1.6 or 8.17 on linux. The java universal installer runs fine and is able to create a script for creating my database.
When I try to run this database creation script, i get the following error: ORA-03113: end-of-file on communication channel
What can i do to solve this problem? I think it has something todo with the
use of shared memory. The database-creation-script first starts
/opt/oracle/product/8.1.6/svrmgrl. This program starts an 'oracle' process
which crashes. It produces a core file in dbs/core-<pidnumber>/core. The
backtrace of this file looks like:
#1 0x84691b6 in slcra ()
#2 0x846cd61 in ssexhd ()
#3 0x4048e329 in pthread_sighandler (signo=11, ctx={gs = 0, __gsh = 0,
fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 3221216472, esi = 3221216600, ebp = 3221216372, esp = 3221215500, ebx = 3221215532, edx = 0, ecx = 3221215532, eax = 0, trapno = 14, err = 4, eip = 138857842, cs = 35, __csh = 0, eflags = 66118, esp_at_signal = 3221215500, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 0, cr2 = 8}) at signals.c:97#5 0x846cd72 in ssexhd ()
#4 <signal handler called>
fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 3221217696, esi = 3221217824, ebp = 3221217596, esp = 3221216724, ebx = 3221216756, edx = 0, ecx = 3221216756, eax = 0, trapno = 14, err = 4, eip = 138857842, cs = 35, __csh = 0, eflags = 66199, esp_at_signal = 3221216724, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 0, cr2 = 8}) at signals.c:97#8 0x846cd72 in ssexhd ()
#7 <signal handler called>
fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 3221218920, esi = 3221219048, ebp = 3221218820, esp = 3221217948, ebx = 3221217980, edx = 0, ecx = 3221217980, eax = 0, trapno = 14, err = 4, eip = 138857842, cs = 35, __csh = 0, eflags = 66195, esp_at_signal = 3221217948, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 0, cr2 = 8}) at signals.c:97#11 0x846cd72 in ssexhd ()
#10 <signal handler called>
fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, __dsh = 0, edi = 153736352, esi = 3221221320, ebp = 3221219236, esp = 3221219176, ebx = 640, edx = 3221219188, ecx = 16244, eax = 502, trapno = 14, err = 6, eip = 145158876, cs = 35, __csh = 0, eflags = 66067, esp_at_signal = 3221219176, ss = 43, __ssh = 0, fpstate = 0xbfffe6e8, oldmask = 2147483648, cr2 = 16244}) at signals.c:97#14 0x8a6f2dc in sskgmstat ()
#13 <signal handler called>
It seems to me a lot of stuff about shared mems and threads.. An 'strace -f /opt/oracle/product/8.1.6/bin/svrmgrl' contains the following:
[pid 16324] shmget(2154533560, 0, 0) = 640 [pid 16324] shmctl(640, SHM_LOCK, 0) = -1 EPERM (Operation not permitted) [pid 16324] getuid32() = -1 ENOSYS (Function not implemented) [pid 16324] shmctl(640, IPC_STAT, 0xbfffe71c) = 0 [pid 16324] --- SIGSEGV (Segmentation fault) --- [pid 16324] rt_sigprocmask(SIG_SETMASK, [SEGV], NULL, 8) = 0 [pid 16324] --- SIGSEGV (Segmentation fault) --- [pid 16324] rt_sigprocmask(SIG_SETMASK, [SEGV], NULL, 8) = 0 [pid 16324] --- SIGSEGV (Segmentation fault) --- [pid 16324] rt_sigprocmask(SIG_SETMASK, [SEGV], NULL, 8) = 0 [pid 16324] --- SIGSEGV (Segmentation fault) --- [pid 16324] rt_sigprocmask(SIG_SETMASK, [SEGV], NULL, 8) = 0
I guess this means the child process gets some segv signals and dies. Pid 16328 is one of the oracle child processes: execve("/opt/oracle/product/8.1.6/bin/oracle", ["oracleORCL", "(DESCRIPTION =(LOCAL=YES)(ADDRESS"...], [/* 34 vars */]) = 0
I've checked the file $ORACLE_HOME/assistants/dbca/install and it's empty.
All oracle vars like ORACLE_SID and ORACLE_HOME are set like they should. I've defined all the variables that are defined by the database creation script. $LD_LIBRARY_PATH is also defined and the lib dir is also included in /etc/ld.so.conf. I'm using redhat 7.0 on an pentium II with 128 megs of ram. There is enough place on the harddisk. All X programs are exported to another computer so oracle can use all the ram it wants. I've defined 600megs of ram but only a few megs are used. The kernel is self compiled so i have reiserfs support. IPC support has been added to the kernel. The lsnrctl program is started.
Imho i think it has to do something with the shared mem stuff. 'ipcs -l'
shows the following limits:
------ Shared Memory Limits --------
max number of segments = 128
max seg size (kbytes) = 32768 max total shared memory (kbytes) = 16777216min seg size (bytes) = 1
'ipcs' tells me oracle uses 13918208 bytes shared memory before it crashes. I know that's very little but i lowered shared_pool_size to 2194304 and the block size to 4096 to get oracle working but it didn't help.
How can i calculate how much semaphores and shared mem the database will use? Is there somewhere a document that tells me this?
Are there any other things i should check? Does anybody know what i should to fix this problem? Is there any other info you might need? Any help is Received on Wed Jan 17 2001 - 17:44:34 CST