The cause can be 1. Oracle Server Errors 
If the failure occurs after a connection is established, a likely cause is a database server error. For example in my personal experiences all versions of Oracle server before 8.1.6 are pretty unstable under Windows NT 4.0 with Service Pack 6.0 and frequent internal errors cause the server to discontinue its operation. In such cases one should see the alert log and will usually have to refer to Oracle Support. In the case mentioned above you should downgrade to Service Pack 5. 
2. Net8 Server (Listener) Errors 
This is when the listener fails to respond to Net8 client. The causes for such a failure are numerous. Lack of memory on the server machine where the listener resides, or problems with the host operating system can cause the listener to fail. To make sure that the listener is working correctly one may use the Listener Control Utility (LSNRCTL.) More about Net8 server here www.orafaq.com/faqnet.htm One may also restart listener using the host operating system facilities LSNRCTL or to recover from temporary errors. 
3. The Network Connection Failure 
This is when the network connection through the network protocol is no longer available. For example when using the TCP, a TCP/IP route must be available between the client machine and the server. This may be tested using the ping utility. There are also situations when a specified protocol is disabled for a machine, say when conflicting IP addresses occur or a router device or software fails. In such cases it may be possible to reach the listener through other protocols like Named Pipes. In such cases you should call for the network administrator to fix the problem or you can change the protocol in use. To change the protocol, change the protocol entry and the parameters for the connection string in use, in TNSNAMES.ORA or for the method in use (Oracle Names or external naming services.) Say in the TNSNAMES.ORA one may start using conn_nmp (Named Pipes) after conn_tcp fails. More info on this here. However bear in mind that in this case the listener must support NMP too for a connection to be established. To have listener support a new protocol one may use Net8 Assistant, LSNRCTL or edit listener.ora manually and restart the listener using the host operating system facilities. 
4. Defunct processes are still running 
Check to see that there are no defunct processes running: 
ps -ef | grep oracle 
Since you are doing a startup, you can kill those defunct processed from the prompt (kill -12 ...) and then try to a startup. 

解决方案 »

  1.   

    ORA-03113 end-of-file on communication channelCause: An unexpected end-of-file was processed on the communication channel. The problem could not be handled by the Net8, two task, software. This message could occur if the shadow two-task process associated with a Net8 connect has terminated abnormally, or if there is a physical failure of the interprocess communication vehicle, that is, the network or server machine went down. In addition, 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.Action: If this message occurs during a connection attempt, check the setup files for the appropriate Net8 driver and confirm Net8 software is correctly installed on the server. 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.