求一个oracle的sql

sunboy_yf 2010-12-29 11:44:59
程序非法的退出程序,例如,网络突然断掉,oracle中会有很多的死掉的会话,如何查找这些,因为网络的问题突然断掉的会话那。谢谢。
...全文
93 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
终端用户 2010-12-29
  • 打赏
  • 举报
回复

--要查出死锁是不是因为断网原因,不知道也
终端用户 2010-12-29
  • 打赏
  • 举报
回复

--你说的情况,应该是发生死锁了
--查村出发生死锁的信息
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)
Oraclefans_ 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 sunboy_yf 的回复:]
程序非法的退出程序,例如,网络突然断掉,oracle中会有很多的死掉的会话,如何查找这些,因为网络的问题突然断掉的会话那。谢谢。
[/Quote]
还要查询是网络原因?这个。。不过可以查连接方式。。。比如jdbc/plsql...
Oraclefans_ 2010-12-29
  • 打赏
  • 举报
回复
select sid,serial# from v$session where status in ('INACTIVE')

alter system kill session 'sid,serial#' ;
iqlife 2010-12-29
  • 打赏
  • 举报
回复
oracle有自己的会话管理机制,不活动的会话可能是因为对方断开连接后,要缓冲一段时间才清空的

用profile设置会话的连接时间限制
例如
CREATE PROFILE testprofile LIMIT
CONNECT_TIME
华夏小卒 2010-12-29
  • 打赏
  • 举报
回复
这些会话应该都rollback 了

你应该担心哪些数据丢失,哪些数据没有插入,哪些因为没有使用事务,而导致数据的不一致性
yuhongpingimu 2010-12-29
  • 打赏
  • 举报
回复
不知道。看回复,学习。
sunboy_yf 2010-12-29
  • 打赏
  • 举报
回复
这种情况下,会导致很多的死进程,用户在连接的时候会导致无法连接上数据库,包超出最大进程数,想查询这些数据后,手工删除一下。呵呵。

17,378

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧