还原 SQL Server 资料库常见的问题 - 心得分享

DBABootcamp

在处理资料库还原的时候,常常会出现 (the database is in use) 错误讯息。

http://img2.58codes.com/2024/201350388bOqI9WQJ2.jpg

顾名思义,就是因为还有人或者是应用程式还正在连结使用这个资料库, 所以 SQL Server 拒绝让任何人还原这个资料库。解决办法很简单,就是用 sp_who2 找出连线的 SPID ( Server Process ID), 然后用 kill 指令杀掉这个 SPID. 就可以继续进行资料库还原的动作了。

http://img2.58codes.com/2024/201350387tP6Af7k6C.jpg

http://img2.58codes.com/2024/201350383qHSBveTIN.jpg

如果只有一两个 SPIDs 要 kill, 可以慢慢用 kill 指令来处理,但若有几十个或几百个 SPIDs 要 kill, 就必须要用比较科学的方法解决。可以使用这个 T-SQL 一次搞定 kill 所有的 SPIDs.

http://img2.58codes.com/2024/20135038VD4LPDnUS7.jpg

但是,如果遇到一些侵略性很高很黏的连结设定就有点麻烦。当这个连结的 SPID 被 killed 后,马上又迅速的自动产生新的连结。根本就没办法完全杀乾净。这个时候,可以拿出杀手锏,就是找出这个侵略性很高的 login,然后停用 (disable) 这个 login. 让它没有办法在连上资料库。等到资料库还原完成后,再启用 (enable) 这个 login.

http://img2.58codes.com/2024/20135038MNiXpcttih.jpg


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章