sql server 2005 实例无响应且所有数据库都处于“恢复中”

sql server 2005 实例无响应且所有数据库都处于“恢复中”

我们有一个 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 的博客以获取明确的建议。

相关内容