查一查每个客户端产生的连接session有没有在断开后还存在,我怀疑你的session超过系统的最大值了

解决方案 »

  1.   

    1.停止响应是因为数据库instance这时已经崩了,这个代码只是说明数据库已经关了,没有实际意义。2.这时候应该启动audit功能,监控以下哪个时段有什么操作在执行。
    3.看看是否资源没有释放。
    4.检查操作系统是否有内存泄露问题(可用内存越来越少)。具体原因仅凭目前信息根本无法判断,需要用以上方法先行诊断一下。
      

  2.   

    我怎么没想到呢是有这个可能。最大会话数是默认的,170吧。理论上够用了,但是应用系统有个进程每隔10分钟就要连接一次数据库,如果它的连接会话不能正常释放的话,确实很恐怖的。
    这个数据库正常运行了半年左右,就是最近1周每天出现这个问题,而应用系统在最近一个月内也没做过改动。我查过数据访问程序,connection.close()基本都有。如果是会话不能正常释放,我该如何处理呢?
      

  3.   

    问题刚解决。这几天就忙这个了累个半死。也没顾上结贴。把原因留下来给大家参考吧。引起故障的原因是用户信息处的人最近做了一套全备份,在晚上备份时锁定了undolog,oracle在写日志的时候无法写入,引起系统级I/O错误。我让他们先把备份取消了。。不知道他们为什么没用rman