ORA-03113: end-of-file on communication channel
看到有人建议:
1.shmmax=0.5*memory -->不要太大
  shemseg=10  -->不要太大
  semmsl=process+10  ---->只允许大些,小了,就不行
  semmns=semmsl+150 --->如果其他程序使用sem,还需要调大,直到ok
2.reboot
3.$./dbassist&我不太明白!能不能讲一下?

解决方案 »

  1.   

    这是针对oracle9iForLinux安装后,创建数据库时候的出现ORA-03113: end-of-file on communication channel 的问题的回答。
    shmmax和emmns是linux操作系统的几个核心参数。
    其中shmmax(共享内存大小)是必须调整的,其他的四个,我没有调整也没有问题。
      

  2.   

    To give administrators some tuning flexibility, Oracle provides a utility called
    ORASTACK that enables an administrator to lower the stack size for Oracle threads from
    1MB down to a smaller number. This allows for either higher connection counts or a
    larger SGA in those cases where Oracle is bumping up against the 3GB address space
    limit. If an application does very little highly recursive SQL or not much in the way of
    nested triggers or stored procedures, then turning the stack size down to 300K (for
    instance) is a safe procedure that will save on address space usage. If the stack space is
    decreased too much, typical behavior will be "ORA-03113: end-of-file on
    communication channel" errors returned to the client as its foreground thread terminates
    with a stack overflow error.
    To use ORASTACK, run the following commands on the server machine:
    C:\> orastack c:\oracle\ora81\bin\oracle.exe 300000
    C:\> orastack c:\oracle\ora81\bin\tnslsnr.exe 300000
    C:\> orastack c:\oracle\ora81\bin\svrmgrl.exe 300000
    The first command will cause the stack for background threads to be 300000 bytes as
    opposed to 1MB for all instances running on the machine. The second command will
    cause the stack for all foreground threads running on behalf of network clients to be
    300000 bytes. The third command causes the stack for all foreground threads running on
    behalf of Server Manager on the server machine to be 300000 bytes. If there are other
    executables that run on the server machine that connect to the database, ORASTACK can
    be run on those executables as well to modify the stack sizes of their corresponding
    foreground threads.
    Operationally, all that ORASTACK does is modify part of the executable header in the
    .exe file to reflect the new stack specified by the user.
    In general, ORASTACK is only called for in high-end installations where there are
    several hundred or more connections to the database or when the SGA is very large (over
    2GB in size). To determine how much of the 3GB address space is in use by Oracle, run
    Windows Performance Monitor by going to Start Programs Administrative Tools
    Performance Monitor. Once in Performance Monitor, choose Edit Add to Chart...
    and select the Virtual Bytes counter of the Process object for the Oracle instance. If this
    value displayed is close to 3GB, then the amount of available address space for Oracle is
    running low. When there is no more address space free for Oracle, typical errors
    encountered are out of memory errors or connection spawning errors. It is in these
    circumstances that ORASTACK can be useful.
      

  3.   

    请问,如果在Win 2000 Server 上出现这个问题,原因可能主要出在哪个方面,怎么解决,会不会是程序的问题
      

  4.   

    我是连接上数据库了,但是如果1分钟没有操作,SQL Plus就报如上的错误,如何解决啊,谢谢
      

  5.   

    而且,实际的连接数量并不多,就那么几个开发人员,只有一人会出现这种问题,发生在插入二进制数据时,该字段不允许为null,导出数据时,为0字节。
      

  6.   

    现在问题是解决了,可原因还是不确定!以前Oracle是单独的服务器,我把自己的XP当做Web服务器,开始是觉得这样方便,页面可以放到自己的机器上,把Web服务器和Oracle放一起就好了,不知是XP的问题,可能Oracle对做为客户的XP支持不太好。中间还曾怀疑是自己的编译系统出问题了,因为之前这么做过,行不通,很怪这次就行了,之所以第二次试验,是想让别人把我的代码编译一下,他的前几次访问也失败过,后来就稳定了。