oracle如何中断会话 oracle未提交会话中断

如何杀掉Oracle中的会话

可以以Oralce管理员权限用户登录Oracle数据,查询到被锁的对象,然后杀除指定的会话。

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的融安网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

用下面的语句查询被锁的对象,可以带上更多约束条件,如schemaname等更精确的匹配。

SELECT  a.object_id, a.session_id, b.object_name, c.*   

FROM  v$locked_object a, dba_objects b, v$session c  

WHERE  a.object_id = b.object_id  

AND  a.SESSION_ID = c.sid(+)

杀Seesion的SQL语句语法如下:

alter system kill session 'sid, serial#'

如上面查出来的一条记录的sid是53, serial#为663,就执行以下的语句

alter system kill session '53,663'

如果要一次性杀死多个会话,一个一个填写sid和serial#十分的繁琐,应该在查询被锁对象的同时拼凑出多条的杀会话语句,以分号分隔,一起复制下来,然后就可以批量的执行了。

拼凑kill语句的方式如下,下面加了一个过滤条件和一个排序,杀除真正关心的表,并且着重注意超时时间过长的会话。

SELECT 'alter system kill session ''' || c.sid || '' || ',' || c.serial# ||''';',

a.object_id, a.session_id, b.object_name, c.*

FROM v$locked_object a, dba_objects b, v$session c

WHERE a.object_id = b.object_id

AND a.SESSION_ID = c.sid(+)

AND schemaname = 'Unmi'

ORDER BY logon_time

Oracle如何断开用户连接

所有用户的会话都可以在字典v$session里查到,断开连接的意思应该是杀死会话吧,杀一个会话用alter

system

kill

session命令,需要知道sid和serial#,这都可以从字典里查到

执行下机的sql

select

'alter

system

kill

session

'''||sid||','||serial#||''';'

from

v$session;

把结果复制、粘贴再执行就可以断开所有连接了

注意:有些系统可能设置了自动重新连接

oracle 怎样强行中断调试啊?

如果你是在操作系统级别的中断。可以用kill -9 ora*****或者是kill -9 ****** 你想要停掉的那个进程的进程号。这样就可以直接挺掉数据库的调试了。

如果数据库里面,你查出这那个session执行的这个操作。之后在数据库中直接中断这个session的连接也可以挺掉调试。

如果你用软件的话,PLSQL Developer 这样的软件,就更容易了。这个就不用我交你了吧。都是按钮方式的。点一下就停了。或者直接就把窗口关掉。只要强行推出就号了。


名称栏目:oracle如何中断会话 oracle未提交会话中断
本文路径:http://pwwzsj.com/article/hhhdpj.html