I have started creating a new instance (SVRMGRL> startup nomount pfile=...../initORCL.ora)
on a machine (RedHat Linux/Oracle 8.1.6). It was taking long time to create the instance due to memorary problem. Hence, I killed the process and lowered the values in the PFILE (init.ora). Then when I say,
svrmgrl, it says:
ORA-03113: end-of-file on communication channel
At this point, when I re-start the machine, then svrmgrl works fine.
Can someone tell me what's happenning when I kill the process??? What do I have to do
to avoid re-booting and continue working ???
I think some of the background processes that started during the instance startup did not get killed.
So you can run the following command to see if any background process is still there or not:
ps -ef|grep -i ora
If some background process is there then you can kill them using the kill command and then you can try starting up again. However, I'm not sure about it, so you can recreate the scenario and see if this solution helps or not.
I found this in the Error Messages manual.
" Cause: ... this message could occur when ALTER SYSTEM KILL SESSION or ALTER SYSTEM DISCONNECT SESSION were issued with the IMMEDIATE qualifier because, in those cases, the client's connection to the database is terminated without waiting for the client to issue a request." In effect, by killing the process, you may be doing the same thing.
Under Action, the manual states:
"... If the message occurs after a connection is well established, and the error is not due to a physical failure, check if a trace file was generated on the server at failure time. Existence of a trace file may suggest an Oracle internal error that requires the assistance of customer support."
I don't know if this is relevant to your situation, since we know the cause of the problem (you're killing the process). Instead of killing your process, it might be better to kill the session from within Oracle by using the ALTER SYSTEM KILL SESSION command. This will allow Oracle to kill the connection correctly and clean up anything that was going on when you killed the session.
You can see the shared memory status by issuing the
command. I don't see any straight forward command to clear it. I think for that you have to write a small program. Please see the shared memory related functions like shmop
from the UNIX manual.