![sql server 2005 实例无响应且所有数据库都处于“恢复中”](https://linux22.com/image/514940/sql%20server%202005%20%E5%AE%9E%E4%BE%8B%E6%97%A0%E5%93%8D%E5%BA%94%E4%B8%94%E6%89%80%E6%9C%89%E6%95%B0%E6%8D%AE%E5%BA%93%E9%83%BD%E5%A4%84%E4%BA%8E%E2%80%9C%E6%81%A2%E5%A4%8D%E4%B8%AD%E2%80%9D.png)
我们有一个 sql server 2005 实例,我们的一个员工把它搞乱了,我相信他们终止了 sql server 服务并重新启动了计算机,当它恢复时,我们所有的数据库都处于“恢复中”,每次我们尝试连接到它时都会超时。在过去的 4 天里,每当我们尝试使用 SSMC 时,它都处于“恢复中”状态,无法连接到“msbd”(也在恢复中)。我不确定如何使用 DBCC CHECKDB 命令来检查数据库的完整性。我们有备份(我们无法从中恢复,因为它总是超时),而且它是一个测试服务器,所以生产中没有任何东西真正丢失。有没有办法让它退出恢复模式?我们有另一个运行良好的 sqlserver 实例,但这个实例总是超时。我一直看到的错误是
正在恢复数据库 msdb。请等待恢复完成
和
执行 transact-sql 语句或批处理时发生异常,超时已过期。
有什么想法吗?我们这里确实没有 DBA,也没有具有丰富 SQL 经验的人。
答案1
检查 SQL Server ERRORLOG 文件,看看是否提供了有关恢复过程的任何线索。通常,当“恢复”数据库时,它会定期将当前进度记录到日志文件中,并给出大致的预计剩余时间。
答案2
你可以停止然后删除数据库文件。然后您应该能够从备份中恢复数据库。恢复模式需要 4 天的时间是不正常的,至少根据我的经验是这样。
我不思考您可以运行 DBCC 直到恢复模式完成。
答案3
rmyates 的建议是正确的 – SQL 会将完成百分比以及需要多长时间写入 SQL 日志(和 NT 日志)。
当所有用户数据库都处于恢复状态时,我以前见过这种情况,即保存事务日志(或数据文件)的磁盘驱动器已在 SAN 上交换。检查所有文件的时间戳,以确保它们是合理的。
如果数据库永久处于恢复状态(您已重新启动以尝试这样做?)那么您需要查看 Paul Randal 的博客以获取明确的建议。