您好,欢迎访问一九零五行业门户网

ORA-03113错误分析与解决

每一个dba在进行数据库管理的过程中不可避免的要遇到形形色色的错误(ora-1547 ,ora-904,ora-1578 ......)。有些错误由于频繁出现
前言
每一个dba在进行数据库管理的过程中不可避免的要遇到形形色色的错误(ora-1547 ,ora-904,ora-1578 ......)。有些错误由于频繁出现、原因复杂而被 oracle dba 们戏称之为经典的错误。其中ora-3113 end of file on communication channel 就是这样的一个。
我们可以简单的把这个错误理解为oracle客户端进程和数据库后台进程连接中断。不过,导致这个错误的原因实际上有很多种:对数据库设置不当、任何能导致数据库后台进程崩溃的行为都可能产生这个错误。这个错误的出现还经常伴随着其它错误,比如说:
ora-1034 oracle not available
此外,该错误出现的场景复杂,可能出现在:
启动的oracle的时侯
试图创建数据库的时侯
试图对数据库进行连接的时侯
在客户端正在运行sql/pl/sql的时侯
备份/恢复数据库的时侯
其它一些情况下......
在论坛上也时常可以看到初级dba对这个问题的求救。在这里简单的对该问题进行一下整理。
错误原因种种
根据网络上大家反映的情况来看,错误原因大约有这些:
unix核心参数设置不当
oracle执行文件权限不正确/环境变量问题
客户端通信不能正确处理
数据库服务器崩溃/操作系统崩溃/进程被kill
oracle 内部错误
特定sql、pl/sql引起的错误
空间不够
防火墙的问题
其它原因
在开始解决问题之前,作如下几件事情:
回忆一下在出现错误之前你都做了什么操作,越详细越好;
查看 background_dump_dest 目录中的 alertsid.log 文件也是你必须要的事情;
用google.com 搜索一下,在互联网上有很多信息等着你去发现,不要什么都问别人。
当然, 如果你找到了一些对你更有帮助的东西--这篇文档就不用看了 :-)
错误原因情景分析
unix核心参数设置不当 / init参数设置不当
如果数据库在安装过程中没有设定正确的操作系统核心变量,,可能在安装数据库文件的时侯没甚么问题,在创建数据库的时侯常常会出现03113错误。和此有关的另一个原因是init.ora 参数文件中的processes参数指定了不合理的值,启动数据库导致错误出现(当然这个归根到底也是核心参数的问题)。
这个错误信息一般如下:
ora-03113: end-of-file on communication channel
ora-01034: oracle not available
ora-27101: shared memory realm does not exist
解决办法有两个:
1、修改核心参数,加大相应核心参数的值(推荐);
2、减小init.ora参数的processes的值。
需要注意的是:
semmsl必须设定为至少要10 + '进程数的最大值';
semmns 也依赖于每个数据库上的进程参数值。
注:
这个错误类型只在unix平台上出现。在windows上如果processes的值过大,则会出现类似如下的错误:
ora-00068: invalid value 24200001 for parameter max_rollback_segments,
must be between 2 and 65535
/* 此时指定的参数值超过了65535 */
或者
ora-27102: out of memory 
/* 小于65535的一个大参数值 */ 软件环境:
windows 2000 version 5.0 service pack 3, cpu type 586
oracle rdbms version: 8.1.7.0.0
在特定平台上更改核心参数可能会有差别,请参考oracle technet() 上的安装文档。对特定unix平台的安装文档也有对核心参数意义的解释。 init.ora中的参数如果设置不当,会产生该错误。有经验表明:shared_pool_size设置 过小会出现错误,此外timed_statistics=true的设置也会带来问题。
oracle执行文件权限不正确/环境变量问题
这个问题只出现在unix平台上。常见情况是有的时侯管理员为了方便而使用unix的tar命令 处理过的压缩包进行的安装,或者是系统管理员指定了额外的os用户也可以管理数据库却没 有指定正确的环境变量。
oracle执行文件在$oracle_home/bin目录下,如果出现问题,应该用如下unix类似命令来纠正 :
#chmod 7755 $oracle_home/bin/oracle
有的时侯要对oracle进行relink操作。
在unix上通过cp拷贝安装的时候,常常会出现环境变量的问题,和个别执行程序连接问题。 ld_library_path如果设置的不正确会导致问题,在这种情况下,需要对oracle进行relink。 如果可执行文件oralcle被破坏,也要对其relink。 如果安装了并行服务器选项而distributed lock manager没有安装或正确运行也会导致错误。
客户端通信不能正确处理
1.sql*net驱动器的问题:
如果使用的版本比较低的驱动器,请更换到新版本的驱动。 sql*net 的驱动没有连接到oracle可执行文件会导致错误。
2.检查tcp/ip网络是否通畅;
3.windows平台的常见网络问题:
在windows平台创建数据库的时侯,如果出现该问题可以考虑用如下的方法:
其它类似信息

推荐信息