我们有一个SQL Server 2005的实例,我们的一个人搞砸了,我相信他们杀了SQL服务器服务,并重新启动计算机,当它回来时,我们所有的数据库都“恢复”,每次超时我们尝试连接到它。 在过去的四天中,每当我们尝试使用SSMC时,它都处于“恢复”状态,无法连接到“msbd”(也在恢复中)。 我不确定如何使用DBCC CHECKDB命令来检查数据库的完整性。 我们有备份(我们无法恢复,因为它保持超时),它是一个testing服务器,所以没有什么生产是真的丢失。 有没有办法让它退出恢复模式? 我们有另一个sqlserver实例运行,这很好,但是这个实例保持超时。 我看到的错误是
数据库msdb正在恢复。 等到恢复完成
和
执行transact-sql语句或批处理超时过期时发生exception。
有什么想法吗? 我们在这里没有真正的DBA,也没有任何有丰富sql经验的人。
检查SQL Server ERRORLOG文件以查看是否提供了有关恢复过程的任何线索。 通常,当“恢复”数据库时,它会定期将当前进度logging到日志文件中,并保留一个粗略的ETA。
您可以停止服务,然后删除数据库文件。 您应该能够从备份恢复您的数据库。 至less在我的经验中,恢复模式需要4天是不正常的。
我不认为你可以运行DBCC直到恢复模式完成。
rmyates的build议是健全的 – SQL将写入SQL日志(和NT日志)完成的百分比,以及要走多久。
当所有的用户数据库一直处于恢复状态时,我已经看到了这个情况,当时光盘驱动器持有交易日志(或数据文件)已经在SAN上交换。 检查所有文件的时间戳,以确保它们是合理的。
如果数据库永久保持恢复状态(您已经重新启动以尝试恢复),那么您需要查看Paul Randal的博客以获得明确的build议。