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杀死了它。 我读了一个地方,你也应该杀了身份证加一个好的措施,所以我们也跑了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 

他们都给我

Msg 5064,Level 16,State 1,Line 1
目前无法更改数据库“mydb”的状态或选项。 数据库处于单用户模式,并且当前正在连接一个用户。

我意识到我可以通过重新启动sql服务或者重新启动服务器来解决这个问题。 但是,这是一个生产服务器,所以我宁愿避免它。

有什么build议么?

快速浏览一下SPID

 USE master EXEC sp_who 

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

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

ALTER DATABASE'DB NAME'SET MULTI_USER WITH ROLLBACK IMMEDIATE