外部硬盘驱动器上的MSSQL数据库显示Recovery Pending

时间:2014-09-15 18:25:43

标签: sql sql-server

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

今天,当我连接硬盘并尝试访问Management Studio中的数据库时,我看到了数据库的名称(恢复待定)。

这是什么意思?我在D盘中看到了mdf和ldf文件。

5 个答案:

答案 0 :(得分:11)

对我来说有用的是让数据库脱机*,然后重新联机 - 在这种情况下不需要RESTORE DATABASE ,据我所知。

在SQL Server Management Studio中:

  1. 右键单击数据库
  2. 选择任务/离线...深呼吸,交叉手指......
  3. 再次右键单击数据库
  4. 选择任务/上线

答案 1 :(得分:9)

删除驱动器后,强行将数据库与SQL Server服务断开连接。 SQL Server不喜欢这样。

默认情况下设计SQL Server,以便创建的任何数据库自动保持打开状态,直到计算机关闭或SQL Server服务停止。在移除驱动器之前,您应该有" Detached"数据库,或者停止了SQL Server服务。

你"可能"能够通过在查询窗口中执行以下命令来运行数据库:RESTORE DATABASE [xxx] WITH RECOVERY;

您可以,虽然我通常不建议这样做,但是在没有活动连接后,将数据库更改为自动关闭。

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

ALTER DATABASE [xxx] SET AUTO_CLOSE ON WITH NO_WAIT;

答案 2 :(得分:1)

以下为我工作:

  1. 以管理员身份运行SQL Management Studio(右键单击SQL     Management Studio图标,然后选择“运行方式”')
  2. 使数据库脱机
  3. 使用DROP选项
  4. 分离数据库
  5. 附加数据库
  6. 如果您使用此数据库与在IIS上运行的Web应用程序,则可能需要重新启动IIS服务器
  7. 希望这有助于某人

答案 3 :(得分:1)

另一种有效的方法是"重新启动"数据库引擎。如果该服务器可行和/或实用,只要外部驱动器中有多个DB,它就会更快。

在SQL Server Management Studio中:

  1. 连接外置硬盘
  2. 右键单击数据库引擎:服务器名称(SQL Server 12.0.2000 ......等)
  3. 选择"重新启动"
  4. 当系统询问您是否要继续时,请回答“是”

答案 4 :(得分:0)

如果 SQL Server 知道需要运行数据库恢复,但某些原因阻止它启动,则服务器会将数据库标记为“恢复待处理”状态。这与 SUSPECT 状态不同,因为不能说恢复会失败——只是还没有开始。

检查此线程:How to fix Recovery Pending State in SQL Server Database?