数据库未在SSMS中显示

时间:2012-10-25 11:08:19

标签: sql-server

我正在使用SQL Server 2012而且我遇到了一个奇怪的问题。

我尝试将数据库快照还原到数据库。通常它不需要花费太多时间来恢复,但现在需要5分钟并且仍在恢复,所以我停止了查询执行。它试图阻止查询执行超过5分钟,所以我使用任务管理器关闭了SSMS。

然后我尝试使用KILL终止恢复过程。

enter image description here

现在我可以连接到该服务器,但数据库列表未打开。我的意思是:无论谁连接到这台服务器,他们都无法获得数据库。当我查看sysprocesses表时,它显示lastwaittypeLCK_M_S

我的所有用户都无法查看数据库。看起来我有点搞砸了。我无法重启SQL Server,因为其他人已连接到服务器。

我该如何解决这个问题?请帮忙。

修改 我尝试了this approach,当我用

检查时
select db_name(dbid), * from sysprocesses where blocked <> 0

我有两条记录,

enter image description here

你认为因为这两个过程的其余部分都被锁定了。

2 个答案:

答案 0 :(得分:1)

我猜测master数据库中的sysdatabases表上仍然存在一些隐藏锁。这很可能是由restore命令的KILL造成的。

这篇文章可能会对您有所帮助:

http://ellisweb.net/2012/02/clearing-out-a-mysterious-table-lock-lck_m_s-in-sql-server-2008/

它基本上建议您确定隐藏锁的来源,然后在该进程ID上发出KILL

答案 1 :(得分:1)

尝试重新启动实例。如果您的用户无论如何都看不到任何数据库,也不会受到伤害。