当将SQL Server数据库脱机时,出现极长的等待时间

300

我试图对我的开发数据库进行离线维护(从实时备份恢复),但是SQL Server Management Studio的“下线”命令速度极慢,目前已经超过30分钟。我快要崩溃了,似乎找不到任何在线参考来解决速度问题。

一些网站建议说,打开的数据库连接会导致此减速,但是使用此数据库的唯一应用程序是我的开发机器的IIS实例,并且服务已停止-没有更多的打开连接。

是什么原因导致这种减速,我该怎么做才能加快它?

18个回答

2

我尝试了下面所有的建议,但都没有成功。

  1. 执行 sp_who
  2. 终止 < SPID >

  3. 使用 Rollback Immediate 设置数据库为单用户模式:ALTER DATABASE SET SINGLE_USER WITH Rollback Immediate

    使用 ROLLBACK IMMEDIATE 将数据库设置为脱机状态:ALTER DATABASE SET OFFLINE WITH ROLLBACK IMMEDIATE

    结果:上述两个命令也卡住了。

4. 右键单击数据库 -> 属性 -> 选项 将数据库只读属性设置为 True 对于 SQL Server 关闭数据库连接的警告对话框,点击 'Yes'。

结果:窗口卡在执行中。

最后,我从配置管理器中重新启动了 SQL Server 服务,然后运行 ALTER DATABASE SET OFFLINE WITH ROLLBACK IMMEDIATE 命令。这次它奏效了。


2
为了解决这个问题,我停止了与数据库连接的网站在IIS中的运行,立即'冻结'的'take db offline'面板变得不再冻结。

1
在SSMS中,将数据库设置为只读,然后再设置回去。连接将被关闭,这将释放锁定。
在我的情况下,有一个网站与数据库保持着开放的连接。这种方法足够简单:
1.右键单击数据库->属性->选项 2.将“Database Read-Only”设置为True 3.在警告SQL Server将关闭到数据库的所有连接的对话框中单击“是”。 4.重新打开选项并将只读设置关闭 5.现在尝试重命名数据库或将其脱机。

0
下次,在“脱机”对话框中,记得勾选“放弃所有活动连接”复选框。我也在本地机器上使用SQL_EXPRESS,没有任何连接,但是除非我勾选了该复选框,否则我的速度会变慢。

0
在我的情况下,数据库与旧的Sharepoint安装相关。在服务器管理器中停止和禁用相关服务“解除挂起”了已运行40分钟的脱机操作,并立即完成。
您可能希望检查是否有任何服务正在使用该数据库。

1
运行 sp_who2 命令以查看正在使用数据库的进程,并使用 kill <PID> 命令停止它们。 - Eric Kigathi

0
对我来说,我只需要进入作业活动监视器并停止两个正在处理的任务。然后它立即下线了。但在我的情况下,我知道这两个进程是什么,并且可以安全地停止它们。

0

尤其是在远程从您自己的桌面运行,而不是直接在数据库服务器内运行时,SSMS可能是导致分离数据库延迟的原因。由于某种原因,SSMS可能无法断开与数据库的任何现有“连接”。

我们发现,当我们直接从数据库服务器本身执行操作时,该过程几乎是瞬间完成的。实际上,它终止了我自己桌面上的SSMS会话的尝试,并且“接管”并分离了数据库。

这里没有提出其他建议有效。

谢谢


-1

在我的情况下,我停止了Tomcat服务器。然后数据库立即离线了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接