且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ORACLE10G如何用alter system kill session 清除死锁进程

更新时间:2022-08-20 09:19:02

TITLEORACLE10G如何用alter system kill session 清除死锁进程

 

问题描述:用户反馈数据交换终止,查询发现大量的死锁信息

        

  

SID

SERIAL#

USERNAME

LOGON_TIME

1

1296

56221

sample

2010-6-20 11:25:09

……

 

 

解决步骤:

1、  用下面的语句组装生成清除死锁进程的脚本
--
杀锁死进程

select Distinct 'alter system kill session '||chr(39)||b.sid||','||b.serial#||chr(39)||';'As 组装语句在RAC执行时区分节点,b.username,b.logon_time

from v$locked_object a,v$session b

where a.session_id=b.sid

order by b.logon_time

    执行结果格式如下:

  

组装语句在RAC执行时区分节点

USERNAME

LOGON_TIME

1

alter system kill session '1296,56215';

sample

2010-8-20 11:20:39

……

 

2、以sysdba权限登录SQLPLUS 后执行上一步生成的脚本

[root@oracle2 ~]# su - oracle

[oradba@oracle2 ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.4.0 - Production on 星期五 6 20 11:07:47 2010

 

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, OLAP, Data Mining

and Real Application Testing options

 

SQL> alter system kill session '989,2173';

alter system kill session '1001,26211';

alter system kill session '917,44267';

alter system kill session '929,38284';

……

 

SQL>

 

System altered.

 

SQL>

System altered.

 

SQL>

System altered.

 

别忘记最后敲一个回车,否则最后一条语句可能没有执行。



本文转自zylhsy 51CTO博客,原文链接:http://blog.51cto.com/yunlongzheng/380532,如需转载请自行联系原作者