首页 > 数据库技术 > 详细

sql server无法kill掉会话,会话一直处于killed/rollback

时间:2021-04-14 15:47:13      阅读:35      评论:0      收藏:0      [点我收藏+]

【1】问题

进程一直killed不掉

  技术分享图片

使用 kill 129之后,

可以使用 kill session_id/spid  with statusonly 查看回滚进度

  技术分享图片

 

【2】基本方案 使用 tcpview(推荐)

技术分享图片 下载TCPView (1.4 MB)

现在从Sysinternals Live运行。

运行于:

  • 客户端:Windows 8.1及更高版本。
  • 服务器:Windows Server 2012及更高版本。

找到对应的远程连接信息,然后杀死

但很明显有缺陷,要是一个IP有多个连接过来,你根本无法区分哪个是正常的 哪个是僵死的;

而且,本身如果是本地操作,也无法明确分析

  技术分享图片

 

 

【3】使用 process explorer(不要用,会出大问题)

【3.1】下载

Process Explorer详情页及下载地址请参考:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer

Process Explorer可以查看进程打开的文件、目录、加载的dll、线程信息等。上述页面有详细介绍。

【3.2】安装,使用

使用参考:https://www.cnblogs.com/alvingofast/p/ProcessMonitor.html

解压即用:

  技术分享图片

【3.3】结合mssql,解决无法杀死的进程

(1)准备工作,我用其他机器连过来,模拟了一个死循环

while 1=1
begin
print 1
end

(2)查看请求对应的 windows 线程

  技术分享图片

 

(3)使用 process explorer,找到sql server进程,然后双击,查看线程

如果有多个sql server进程,则从sscm中查看进程号

  技术分享图片

  技术分享图片

 

 (4)找到对应的线程后,kill

  技术分享图片

【3.4】杀死后故障问题

  技术分享图片

 解决:重启引擎实例,是因为我们终止了一个线程,导致查看系统表中的东西都查不到了;会报错;

【错误处理】缺少功能:winsta!WinStationConnectW

无法在此版本的Windows上运行:
缺少功能:winsta!WinStationConnectW

无法在此版本的Windows上运行:
缺少功能:winsta!WinStationShadow

无法在此版本的Windows上运行:
缺少功能:winsta!WinStationGetProcessSid

解决:

  安装一下:windows6.1-kb2533623

  下载参考:http://www.3h3.com/soft/119473.html

【参考文档】

潇湘隐者:https://www.cnblogs.com/kerrycode/p/5981763.html

sql server无法kill掉会话,会话一直处于killed/rollback

原文:https://www.cnblogs.com/gered/p/14657342.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!