程序非法的退出程序,例如,网络突然断掉,oracle中会有很多的死掉的会话,如何查找这些,因为网络的问题突然断掉的会话那。谢谢。

解决方案 »

  1.   

    这些会话应该都rollback 了你应该担心哪些数据丢失,哪些数据没有插入,哪些因为没有使用事务,而导致数据的不一致性
      

  2.   

    oracle有自己的会话管理机制,不活动的会话可能是因为对方断开连接后,要缓冲一段时间才清空的用profile设置会话的连接时间限制 
    例如 
    CREATE   PROFILE   testprofile   LIMIT   
                CONNECT_TIME             
      

  3.   

    select sid,serial# from v$session where status in ('INACTIVE')alter system kill session 'sid,serial#' ;
      

  4.   

    还要查询是网络原因?这个。。不过可以查连接方式比如jdbc/plsql...
      

  5.   


    --你说的情况,应该是发生死锁了
    --查村出发生死锁的信息
    select username,lockwait,status,machine,program from v$session where sid in
    (select session_id from v$locked_object)--提交或杀掉该死锁
    alter system kill session ‘sid,serial#’; (其中sid=l.session_id)