SQL Server 2000/2005 killed session引起的killed/rollback问题解决

原创 2007年10月10日 12:11:00

现象说明:

 
在使用SQL Server 2005的过程中,最近经常有遇到一个现象:
用户进行一个分布式事务,有涉及到一台linked server 的一个表。
使用kill sessionid 来进行进程清除的时候,长时间该进程没有反应。
 
使用sp_who2,查询得到的状态为:killed /rollback
 
使用killed sessionid with stateonly
得到的结果为:rollback 100%   estinmated time 0
 
重新启动SQL Server,进行sp_who进行查询,发现该线程依然存在,并且现象依旧,在网络上进行查询,发现有很多同仁都有遇到该现象。而且该现象可以一直持续两周甚至更长时间。大家都只有重新启动服务器来解决问题。
 
 
最终解决方法:killed sessionid在进行终止SQL Server内部线程的同时,仅仅只是终止SQL中的内部事务,如果该事务有调用外部的命令或者事务,则外部事务需要手动停止,本例中由于是一个分布式事务,所以会调用MSDTC,所以在killled sessionid的同时,还需要把该事务在MSDTC Monitor中进行终止。这样才可以完全终止该数据库事务。
 
其他类似问题:
SQL Session调用了xp_cmdshell或者其他executable program等。在进行killed session的同时还需要终止该SQL线程所调用的外部进程。
有待解决的问题:出现该类问题需要手动处理,系统无法自动完成,所有有可能一个事务由于超时等原因导致系统自动回滚,而产生killed/rollback现象。导致了大批阻塞。严重影响性能。这个时候就需要手动处理,目前正在研究通过SCOM2007来监控SQL Server的该状况。有解决方法再与大家分享。

 

论坛中的问题:47(等待类型为MSSEARCH的进程被KILL之后,一直处于回滚状态)

求助:等待类型为MSSEARCH的进程被KILL之后,一直处于回滚状态 http://bbs.csdn.net/topics/391834154 等待类型 : MSSEARCH   SQL ...
  • yupeigu
  • yupeigu
  • 2016年01月14日 16:29
  • 1688

SQL Server扩充表字段长度,引发的意外KILLED/ROLLBACK

这一段时间,因为系统升级,新系统产生的数据长度,比原来的数据长度要长,所以说要扩充一下字段长度。 在执行的时候,有这样一个情况。 例如Student表的Name字段长度是nvarchar(50), ...
  • terry198608
  • terry198608
  • 2018年01月12日 11:02
  • 4

Oracle 回滚(ROLLBACK)和撤销(UNDO)

回滚和撤销是Oracle实现数据一致性与完整性的重要特性,下面讲述了Oracle中回滚(ROLLBACK)与撤销(UNDO)的差异,以及撤销表空间、撤销段的使用与管理。...
  • robinson_0612
  • robinson_0612
  • 2010年07月13日 10:56
  • 57943

Killing a SPID and Checking Rollback progress in SQL Server

Killing a SPID and Checking Rollback progress in SQL ServerWritten By: Armando Prato -- 4/9/2008 -- ...
  • grandtree
  • grandtree
  • 2009年04月20日 15:33
  • 725

oracle killed会话不释放的问题

一般情况下,在杀一个会话的时候,直接执行alter system kill session ‘sid,serial#’; Administrator's Guide说,当session是acti...
  • sxhong
  • sxhong
  • 2014年01月28日 10:03
  • 3497

越狱手机运行程序退出: Killed: 9

越狱手机运行程序退出: Killed: 9 这种情况一般是由于签名问题 解决方法1(不推荐): 不使用苹果证书,而是: 创建自己的代码签名证书修改XCODE环境修改工程属性添加Bu...
  • sendwave
  • sendwave
  • 2016年06月28日 18:36
  • 738

linux中的strace命令简介------定位core dump问题

在本文中, 我们来介绍一下strace命令的一些用法。strace命令主要是用来查系统调用, 它有很多参数, 功能很强大, 本文先不进行穷尽介绍, 只是介绍一下用strace来定位core dump问...
  • stpeace
  • stpeace
  • 2015年11月15日 21:05
  • 2792

dumpdecrypted对系统ios9.3.2以上的版本砸壳失败

dumpdecrypted砸壳报错:kill9 的解决方案
  • HK_5788
  • HK_5788
  • 2016年09月03日 21:28
  • 2714

Android 4.3 Monkey自动化测试工具被killed的原因分析

测试组使用Monkey在Android上想对APK进行自动化测试,但在启动Monkey测试工具时,一直无法正常启动, [plain] view plaincopyprint?...
  • andy_android_keeper
  • andy_android_keeper
  • 2014年07月09日 15:39
  • 525

锁_rac环境kill锁表会话后出现killed状态(解决)

原创作品,出自 “深蓝的blog” 博客,深蓝的blog: rac生产库杀掉锁表会话出现killed状态处理   环境: 操作系统:CentOS 6.4 64BIT 数据库:Oracle RAC 11...
  • huangyanlong
  • huangyanlong
  • 2015年07月14日 14:10
  • 1919
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: SQL Server 2000/2005 killed session引起的killed/rollback问题解决
举报原因:
原因补充:

(最多只允许输入30个字)