我在SQL Server 2012中创建了一个数据库,其中mdf和ldf指向连接到我的计算机的外部硬盘驱动器。我创建了表,存储过程,填充表等。 我在一天结束时卸下了硬盘。
今天,当我连接硬盘并尝试访问Management Studio中的数据库时,我看到了数据库的名称(恢复待定)。
这是什么意思?我在D盘中看到了mdf和ldf文件。
答案 0 :(得分:11)
对我来说有用的是让数据库脱机*,然后重新联机 - 在这种情况下不需要RESTORE DATABASE ,据我所知。
在SQL Server Management Studio中:
答案 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)
以下为我工作:
希望这有助于某人
答案 3 :(得分:1)
另一种有效的方法是"重新启动"数据库引擎。如果该服务器可行和/或实用,只要外部驱动器中有多个DB,它就会更快。
在SQL Server Management Studio中:
答案 4 :(得分:0)
如果 SQL Server 知道需要运行数据库恢复,但某些原因阻止它启动,则服务器会将数据库标记为“恢复待处理”状态。这与 SUSPECT 状态不同,因为不能说恢复会失败——只是还没有开始。
检查此线程:How to fix Recovery Pending State in SQL Server Database?