无法将数据库从SINGLE_USER模式切换回MULTI_USER模式(Error 5064)
Posted opencoder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将数据库从SINGLE_USER模式切换回MULTI_USER模式(Error 5064)相关的知识,希望对你有一定的参考价值。
今天公司SQL Server数据库无意间变为SINGLE_USER模式了,而且使用如下语句切换回MULTI_USER失败:
ALTER DATABASE [MyDB] SET MULTI_USER WITH ROLLBACK IMMEDIATE
报错:
Msg 5064, Level 16, State 1, Line 1 Changes to the state or options of database ‘MyDB‘ cannot be made at this time. The database is in single-user mode, and a user is currently connected to it. Msg 5069, Level 16, State 1, Line 1 ALTER DATABASE statement failed.
该错误提示是有其它用户在使用数据库,没办法只好排查是谁:
1)通过sys.sysprocesses或者sys.dm_exec_sessions,或者存储过程sp_who,然后用KILL命令把会话切断
select * from sys.sysprocesses where spid > 50 And dbid=DB_ID (‘MyDB‘)
SELECT * FROM sys.dm_exec_sessions WHERE database_id = DB_ID (‘MyDB‘)
2)如果上面还是行不通,再检查sys.dm_tran_locks,然后用KILL命令把会话切断
select * from sys.dm_tran_locks where resource_database_id= DB_ID (‘MyDB‘)
kill 148
以上是关于无法将数据库从SINGLE_USER模式切换回MULTI_USER模式(Error 5064)的主要内容,如果未能解决你的问题,请参考以下文章
MPMoviePlayerController:无法从全屏切换到嵌入式
SQLServer 数据库状态中限制访问设置从SINGLE_USER转换成MULTI_USER一直显示“正在还原”解决办法