当plsql developer长时间执行脚本时会发现一个问题:就是会遇到ora-03113通信中断的问题,很是烦躁!
有人说是服务器端设置了连接超时时间,看下:
SQL> show parameters resource_limit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
resource_limit boolean FALSE
并没有设置资源限制,即使设置了资源限制,看下IDLE_TIME的定义:
指定会话允许连续不活动的总的时间,以分钟为单位,超过该时间,会话将断开。但是长时间运行查询和其他操作的不受此限制
SQL> select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME='IDLE_TIME';
PROFILE RESOURCE_NAME RESOURCE
------------------------------ -------------------------------- --------
LIMIT
----------------------------------------
DEFAULT IDLE_TIME KERNEL
UNLIMITED
可见这种断开的现象与服务器的设置无关。
我还发现一个现象,用sqlplus长时间跑脚本不会出现通信中断的问题,那是不是plsql developer本身有自动断开的机制呢?为了验证这个猜想,我做了测试,开了sqlplus和plsql developer窗口,都不动,放在那,耐心等待断开情况。。。。。
一个小时过去后,家里的plsql developer没有断开,公司的断开,生产环境的没有断开。我怀疑可能是网络设置造成的,因为家里的服务器网络我自己设置的,没有加任何限制,公司和生产环境的网络我不清楚,估计有防火墙之类的设置,超过一段时间不操作就会自动断开。
至于长时间执行脚本,我估计可能是空间不足造成的,这个还有待我去验证。。。。。
ora-03113这是个不管是开发人员还是DBA都比较头疼的一个问题,因为造成的原因有很多,从网络到硬件,从操作系统到oracle都有原因。
根据网络上反映的情况来看,错误原因大约有这些:
? Unix核心参数设置不当
? Oracle执行文件权限不正确/环境变量问题
? 客户端通信不能正确处理
? 数据库服务器崩溃/操作系统崩溃/进程被kill
? Oracle 内部错误
? 特定SQL、PL/SQL引起的错误
? 空间不够
? 防火墙的问题
? 其它原因
先记录下来,以后再慢慢研究