SQL Server 2008 R2 数据库卡在单用户模式

SQL Server 2008 R2 数据库卡在单用户模式

我们尝试恢复数据库,但由于某种原因失败了。现在它卡在单用户模式。以下是我尝试的:

select d.name, d.dbid, spid, login_time, nt_domain, nt_username, loginame
from sysprocesses p inner join sysdatabases d on p.dbid = d.dbid
where d.name = 'mydb'

它返回了一个结果,我使用 终止了它kill 77。我从某处读到,您还应该终止 id 加一,以便更好地衡量,因此我们也运行了kill 78。此时,再次运行查询返回 0 个连接。

我已经尝试过所有这些:

exec sp_dboption 'mydb', 'single user', 'FALSE';

SET DEADLOCK_PRIORITY HIGH
exec sp_dboption 'mydb', 'single user', 'FALSE';

ALTER DATABASE [mydb] SET MULTI_USER WITH NO_WAIT

ALTER DATABASE [mydb] SET MULTI_USER WITH ROLLBACK IMMEDIATE

他们都给了我

消息 5064,级别 16,状态 1,第 1 行
此时无法更改数据库“mydb”的状态或选项。该数据库处于单用户模式,当前有用户连接到该数据库。

我意识到我可能可以通过重新启动 SQL 服务或重新启动服务器来解决问题。但是,这是一台生产服务器,所以我宁愿避免这样做。

有什么建议么?

答案1

快速查看 SPID

USE master 
EXEC sp_who

从那里找出数据库并杀死相应的锁。

从单用户模式切换到多用户模式

更改数据库'数据库名称'设置 MULTI_USER 并立即回滚

相关内容