“将数据库脱机”过程失败后,数据库无法访问。

12

当我尝试分离数据库时,出现了一个错误提示:当前正在使用该数据库。因此,我试图将我的数据库脱机,但是它失败了,并出现以下错误信息:

'an exception occured while executing a transact SQL statement or batch 

-> ALTER DATABASE failed because a lock could not be placed on database 'myDB'. Try again later.
    ALTER DATABASE statement failed. (Microsoft SQL Server, Error: 5061)'

现在,如果我尝试访问数据库,则会显示无法访问。我应该怎么做才能使我的数据库再次可访问?

我的目标是分离数据库,将其辅助数据库文件移动到新驱动器上并重新附加它(仅因为空间问题)。

2个回答

14

请尝试以下步骤:

  1. 使用services.msc控制台重启SQL服务器服务。
  2. 现在使用SQL Server Management Studio连接到您的服务器。
  3. 在查询分析器中运行以下命令:

      ALTER DATABASE `YOURDATABASE_NAME`  
      SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
    
  4. 现在右键点击数据库名称,指向任务,然后点击分离。出现“分离数据库”对话框

或者 5. 运行你的命令来重新定位次要数据库。

  1. 将数据库模式再次设置为多用户模式

  2. ALTER DATABASE `YOURDATABASE_NAME` SET MULTI_USER 
    

希望这能帮到你。


12
作为 Furqan 回答中第一步的替代方案,您可能不需要重启 SQL Server 实例,只需重启用于启动“离线”任务的 SQL Server Management Studio 实例即可。

谢谢这个 - 这意味着我们不必将整个 SQL Server 下线! - KaraokeStu
2
我可以确认这是真的。管理工具似乎一直保持着连接。 - Phil Hannent
抱歉,无法登录到该实例。 - Mohammedsalim Shivani
我还必须停止连接到数据库的IIS网站。从https://dba.stackexchange.com/a/138031/55073中看来,需要让所有用户下线,因此有时需要重启,有时只需退出SSMS,在我的情况下还需要停止IIS。 - goodeye

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