ORA-3113 is a generic error message that oracle sends out. The cause of the problems could be at various levels. The troubleshoot differed from level to level. Do a search on this site under search forums and you will sure find a trubleshooting list on one of the posts.
When you connect to Oracle, a new server process is created on the server. The client (svrmgrl) communicates with the server process. When you get an ORA-3113 it means that the server process crashed hard.
When this happens, check the alert log file in the bdump directory. There will probably also be a process log file in the udump directory. These will describe why the error happened.
A1) Errors connecting as SYSDBA / Internal OR on startup nomount
There is something fundamental wrong with the software / environment
if you cannot connect to Server Manager as a DBA user.
The steps here cover errors such as ORA-3113, ORA-12547: TNS:lost contact
or similar errors connecting to Oracle or starting the instance NOMOUNT.
Check the following items:
A1.1) If possible reboot the server disabling any automatic
startup of Oracle before you do so. This may seem drastic
but helps make sure you are working from a consistent
A1.2) Check your environment points at the expected ORACLE_HOME
and ORACLE_SID and that TWO_TASK is not set (Unix) or
LOCAL is not set (NT registry).
Check the USER_DUMP_DEST and BACKGROUND_DUMP_DEST and default
trace directories under this environment for any user trace
files or alert log entries generated. These may help indicate
the cause of the problem.
Eg: ORA-600[SKGMINVALID] may indicate a problem with the
shared memory Unix parameters on Unix systems.
Try to show that any trace file / alert log entry you
find is truely related to the "CONNECT" command by re-issuing
the "connect" and checking for a new trace file / alert entry
at the time of the error.
A1.3) Unix only:
Some Unix platforms need LD_LIBRARY_PATH to be set
correctly to resolve any dynamically linked libraries.
As the user with the problem:
% script /tmp/ldd.out
% cd $ORACLE_HOME/bin
% ldd oracle
If the 'ldd' command does not exist go to the next step below.
Check that all lines listed show a full library file. If there
are any 'not found' lines reported contact Oracle support
with the output of /tmp/ldd.out .
A1.4) Unix only:
Your 'oracle' executable may be corrupt. Relink it thus:
Log in as the 'oracle' user.
% script /tmp/relink.out
% cd $ORACLE_HOME/rdbms/lib
% mv $ORACLE_HOME/bin/oracle $ORACLE_HOME/bin/oracle.dd.mon.yy
% rm -f ./oracle
% make -f ins_rdbms.mk ioracle
Prior to Oracle7.3 the relink command was:
make -f oracle.mk ioracle
If this reports any errors Oracle support will need to see
the contents of the file /tmp/relink.out .
A1.5) Have you installed the Parallel Server Option ?
ORA-3113 can occur if you have installed the Parallel
Server Option but do NOT have a Distributed Lock Manager
installed or running correctly.
If the Parallel Server Option was installed by accident
then it can be de-installed by relinking.
Shut down any Oracle instances
% script /tmp/relink.out
% cd $ORACLE_HOME/rdbms/lib
# 'oracle' should not exist so delete it if it present
% rm -f oracle
% make -f ins_rdbms.mk no_parropt ioracle
NB: Do NOT deinstall the Parallel Server Option if the
database is using Parallel Server unless both nodes
are shut down otherwise database corruption could occur.
A1.6) If the error is on STARTUP NOMOUNT:
Check the init.ora file used to start the database.
This provides the configuration details used
configure the instance. To help isolate the problem
it may be useful use a very basic init.ora file
when starting the instance. If this works then
parameters can be increased / introduced one at a
time to see if there is a problem with a particular
A1.7) Check for server side trace files which may give more
indication what the underlying problem is.
See section C for details on how to check
for server trace files.
A1.8) Ensure there is free disk space in:
a. Your USER_DUMP_DEST and BACKGROUND_DUMP_DEST locations
b. Your AUDIT destination (Unix)
The default is $ORACLE_HOME/rdbms/audit
c. Your Oracle Trace directory if Oracle Trace is enabled
A2) Errors Mounting the database
Check all the items in A1 first.
If an error occurs when mounting the database there may be problems
with the control-files or data files, or with resources required to
open these files.
A2.1) The location of the control files are specified in the
init.ora file. Try mounting using each controlfile in
eg: "Shutdown abort",
edit the init.ora to refer to ONE of the controlfiles only,
"alter database mount"
Repeat for each controlfile to see if any controlfile works.
A2.2) It is possible to re-create the controlfiles if you know the
location of all datafiles and online logs, or to restore an old
backup controlfile. Always back up the current controlfiles before
restoring any backup copies or issuing a CREATE CONTROLFILE
The steps for this are not documented here.
Some unix platforms have a 'truss' command (or 'tusc').
If available this can be used to help trace how far Oracle
gets before the error occurs.
% truss -o /tmp/truss.out -f svrmgrl
Keep the file /tmp/truss.out safe - Oracle Support MAY need to see it.