ORA-03113: end-of-file on communication channel 错误分析


转载时请务必以超链接形式标明文章 原始出处和作者信息及本版权声明
链接:http://www.dbasky.net/archives/2009/08/ora-03113-end-of-file-on-communication-channel.html
    遇到了一个开发数据库在不正常的关机的情况下重新启动数据库的时候报了"ORA-03113: end-of-file on communication channel",其实这个错误经常会遇到的,被很多DBA们认为是"经典的错误".
    导致这个错误的原因有很多种(大约):
  •  系统的核心参数设置不恰当
  •  oracle环境变量和权限
  •  SQL,PL/SQL引起的错误
  •  磁盘空间满
  •  防火墙问题
  •  其它因素
  
   根据上面的几种情况,在寻问了开发人员在出现错误之前都做了什么操作(越详细越好),在看下alert.log里面的错误信息发现了,数据库没办法往磁盘写入数据.
第一的判断可能就是磁盘满了(因为这台开发库用的是ASM).
 
db1-> sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Aug 17 10:21:41 2009

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> select * from v$asm_diskgroup;                     #发现可用的空间为10M.

看来这个是导致这个错误的最终原因,于是清除了归档日志.重新启动数据库,问题解决.

总结:
   任何时侯都要确保数据库系统有足够的空间.如果 USER_DUMP_DEST和BACKGROUND_DUMP_DEST没有剩余空间的话,会导致此问题.此外,如果打开了审计,AUDIT目录要由足够的空间.如果激活了Trace的话,Trace目录要由足够的空间. Dave Wotton的文档 (Local Copy) 表明,在对表进行插入数据的时侯,如果文件超过了2G (而文件系统有2G限制),会导致该问题. 

发表评论

Close