外部硬盘上的MSSQL数据库显示恢复挂起

外部硬盘上的MSSQL数据库显示恢复挂起,sql,sql-server,Sql,Sql Server,我在SQL Server 2012中创建了一个数据库,mdf和ldf指向连接到我的机器的外部硬盘驱动器。我创建了表、存储过程、填充表等。 我在一天结束时卸下了硬盘 今天,当我连接硬盘并尝试在ManagementStudio中访问DB时,我看到数据库的名称为(恢复待定) 这是什么意思?我在D驱动器中看到mdf和ldf文件。当您卸下该驱动器时,您强制断开了数据库与SQL Server服务的连接。SQLServer不喜欢这样 默认情况下,SQL Server的设计使创建的任何数据库自动保持打开状态,直

我在SQL Server 2012中创建了一个数据库,mdf和ldf指向连接到我的机器的外部硬盘驱动器。我创建了表、存储过程、填充表等。 我在一天结束时卸下了硬盘

今天,当我连接硬盘并尝试在ManagementStudio中访问DB时,我看到数据库的名称为(恢复待定)


这是什么意思?我在D驱动器中看到mdf和ldf文件。

当您卸下该驱动器时,您强制断开了数据库与SQL Server服务的连接。SQLServer不喜欢这样

默认情况下,SQL Server的设计使创建的任何数据库自动保持打开状态,直到计算机关闭或SQL Server服务停止。在卸下驱动器之前,您应该“分离”数据库,或停止SQL Server服务

您“可能”能够通过在查询窗口中执行以下命令来运行数据库:
RESTORE database[xxx]WITH RECOVERY

尽管我通常不建议这样做,但您可以更改数据库,使其在没有活动连接后自动关闭

要完成此操作,请执行以下查询:

ALTER DATABASE [xxx] SET AUTO_CLOSE ON WITH NO_WAIT;

对我来说,有效的方法是使数据库离线*,然后重新联机-据我所知,在这种情况下不需要恢复数据库

在SQL Server Management Studio中:

  • 右键单击数据库
  • 选择任务/脱机。。。深呼吸,交叉手指
  • 再次右键单击数据库
  • 选择任务/联机拍摄
  • 下面是我的工作:

  • 以管理员身份运行SQL Management Studio(右键单击SQL Management Studio图标并选择“运行方式”)
  • 使数据库脱机
  • 使用DROP选项分离数据库
  • 附加数据库
  • 如果使用此数据库时有一个在IIS上运行的Web应用,则可能需要重新启动IIS服务器

  • 希望这对某人有所帮助

    另一种有效的方法是“重新启动”数据库引擎。如果此服务器可行和/或实用,则当外部驱动器中有多个DB时,速度可能会更快

    在SQL Server Management Studio中:

  • 连接外部驱动器
  • 右键单击数据库引擎:服务器名称(SQL Server 12.0.2000…等)
  • 选择“重新启动”
  • 当被问及是否要继续时,回答“是”

  • 如果SQL Server知道需要运行数据库恢复,但有什么东西阻止它启动,则服务器会将数据库标记为“恢复挂起”状态。这与可疑状态不同,因为不能说复苏会失败——它只是还没有开始


    检查此线程:

    SQL Server未被访问。断开数据和日志文件是一件“坏事”,即使您是数据库中唯一的一个让我猜猜,在断开驱动器之前,您没有单击“删除硬件”通知图标吗?如果你这样做了,当它说“无法删除设备,因为它正在使用”时,你只是简单地删除了它,对吗?@MaxVernon这是正确的。SQL Server 2012。。。现在使用即插即用数据库@蓝食人鱼这是一件坏事。你不应该做这样的坏事。这个答案对我来说很好!!不过,对我来说,我必须关闭并重新打开SSMS afterwords,才能重新填充数据库对象。