如何kill掉oracle 正在连接 的session

简介:

Oracle中造成一些表被死锁或者会话异常退出,如执行了更新记录操作后,既没有commit也没有rollback,网络就断开了,也会造表或记录被锁住,待到超时后才会被解开,那样都会造成应用操作被阻塞。

可以以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














本文转自xiaocao1314051CTO博客,原文链接:http://blog.51cto.com/xiaocao13140/1932959,如需转载请自行联系原作者

相关文章
|
5月前
|
SQL Oracle 关系型数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
141 0
|
6月前
|
Oracle 关系型数据库 流计算
Flink CDC不支持直接连接到Oracle ADG备库进行数据同步
Flink CDC不支持直接连接到Oracle ADG备库进行数据同步
109 1
|
1月前
|
Oracle Java 关系型数据库
SpringBoot整合Mybatis连接Oracle数据库
SpringBoot整合Mybatis连接Oracle数据库
SpringBoot整合Mybatis连接Oracle数据库
|
1月前
|
Oracle 关系型数据库 MySQL
Flink CDC产品常见问题之使用cdc-Oracle连接器报错如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
Flink CDC产品常见问题之使用cdc-Oracle连接器报错如何解决
|
4月前
|
SQL Oracle 关系型数据库
[已解决]使用sqlplus连接oracle,提示ORA-01034和ORA-27101
[已解决]使用sqlplus连接oracle,提示ORA-01034和ORA-27101
55 0
|
4月前
|
Oracle 小程序 关系型数据库
laravel5.8(十四)连接oracle数据库
首先确定你的PHP已经支持oracle数据库的链接。PHP需要安装OCI8扩展。 确定PHP可以链接ORACLE数据库之后。我们使用composer安装laravel支持oracle链接的插件 yajra/laravel-oci8 欢迎访问个人博客 guanchao.site 欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的” 一:使用composer安装 yajra/laravel-oci8 1 :运行如下命令: bash 复制代码 composer require yajra/laravel-oci8 2 :安装过程中可能会报错,不要纠结那些报错,最简单的解决办法:
70 0
|
4月前
|
Oracle 关系型数据库 Python
python连接oracle12c
python连接oracle12c
34 0
|
5月前
|
Oracle 关系型数据库 数据库
Navicat连接Oracle报错:Oracle library is not loaded
Navicat连接Oracle报错:Oracle library is not loaded
106 0
|
5月前
|
Oracle 关系型数据库 数据库
Navicat连接Oracle数据库
Navicat连接Oracle数据库
|
5月前
|
Oracle 关系型数据库 Java
thin/oci两种方式连接Oracle数据库
thin/oci两种方式连接Oracle数据库
60 0

推荐镜像

更多