1

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

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

然后我尝试使用KILL.

在此处输入图像描述

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

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

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

编辑: 我尝试了这种方法,当我检查时

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

我有两个记录,

在此处输入图像描述

您是否认为因为这两个过程的其余部分被锁定了。

4

2 回答 2

1

我猜sysdatabases主数据库中的表上仍然有一些隐藏的锁。这很可能是由KILLrestore 命令引起的。

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

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

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

于 2012-10-25T11:20:53.820 回答
1

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

于 2012-10-25T13:08:28.943 回答