ITPub博客

首页 > 数据库 > SQL Server > sqlserver遇到回滚事务的操作策略

sqlserver遇到回滚事务的操作策略

原创 SQL Server 作者:lusklusklusk 时间:2019-11-18 11:24:12 0 删除 编辑

参考https://blog.sqlauthority.com/2015/08/31/sql-server-spid-is-killedrollback-state-what-to-do-next/


select * from sys.sysprocesses where cmd='KILLED/ROLLBACK'可以查到回滚的信息


有时我们会使用“KILL”命令来结束处于挂起状态的进程。一旦发生这种情况,如果SQL知道如何回滚该工作,它将启动“真正的”回滚过程,并撤消所做的工作。有些情况下,SQL不知道并且无法控制已完成的工作,也无法回滚工作,在这些情况下,它将永远处于终止/回滚状态。


你如何决定采取什么行动?这完全取决于被杀死的SPID所采取的行动。你只能做几件事:
1、耐心等待回滚完成。一些大型操作可能需要很长时间才能回滚。这样的SPID在sys.sysprocesses会显示CPU、内存和IO列大小的变化。
2、如果SPID在CPU、内存和IO列中没有显示任何变化,那么它什么也不做,找到spid来自哪台客户端机器,进入这台客户端机器,在任务管理器里面结束这个进程。
3、如果这个客户端进程在客户端机器已经杀死了,但是数据库服务器还是显示这个进程信息,并且不执行任何操作,则只能重新启动SQL服务

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126024/viewspace-2664573/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Welcome to Lukes DB HOME。11G OCM, 8年以上DBA工作经验,博客仅记录自己的一个学习过程,不代表完全准确,如有需要,欢迎转载。

注册时间:2015-02-02

  • 博文量
    382
  • 访问量
    533084