其中一个集群SAN上的控制器会定期重新启动。 显然它可以通过固件更新来解决,但是直到我们可以在几天内应用更新,我必须忍受这个问题。 问题是,如果其中一个失败,而DBCC CHECKDB正在运行(夜间维护期间),CHECKDB挂起。 我似乎无法杀死它….它表明,它永远等待在ASYNC_IO_COMPLETION。 我是否需要循环实例,还是有另一种杀死CHECKDB的方法?
SQL Server 2005 RTM和SP2实例。
好的 – 这是正确的行为。 发生了什么事是你已经杀死了DBCC CHECKDB,而它仍然在创build它所需要的数据库快照。 创build快照的一部分是在被检查的数据库上运行崩溃恢复,但运行在数据库快照的上下文中。 崩溃恢复不能停止,正在运行的spid不能被杀死。 所以 – 你唯一的select就是等待它完成,或者循环实例 – 这将放弃快照。 当我改变CHECKDB来使用数据库快照时,我们知道这将是一个潜在的问题,但没有其他select。
看看这个博客文章,我在这里解释一下: DBCC CHECKDB运行时做事务回滚?
干杯
当你说你似乎无法杀死它,你想取消这个工作吗? 还是你从活动监视器杀死SPID?