我有一个被错误地停止/关闭的 SQL DB 实例,并且 msdb 系统数据库以及常规数据库已经“处于恢复中”超过 2 周了。有时重新启动后,实例中的一个数据库会工作一段时间,而所有其他数据库仍然显示“正在恢复”,但在另一次重新启动之后,似乎不同的数据库都处于“正在恢复”状态,其中一些以前是可以工作的。
我可以将 MDF 和 LDF 文件恢复到不同的 SQL 实例并恢复任何数据吗?当 msdb 处于“恢复”状态时,我无法停止或脱机任何数据库,也无法找到修复数据库实例的方法。此时,我正在寻找解决方法或在新实例中修复它的方法。
想法?
答案1
如果您的 mssql 服务器正在恢复 msdb 系统数据库,也许(我不确定)您可以将 MDF 和 LDF 文件复制到另一个位置(网络或外部驱动器),然后您可以将复制的数据库附加(和恢复)到另一个 mssql 服务器。
答案2
根据定义,数据库在启动时始终处于恢复状态。所有数据库都是如此。有些数据库恢复得很快,有些数据库恢复得较慢。一周的恢复时间肯定是可能的,我见过不止一次这样的情况。您需要调查恢复时间为何这么长。您的错误日志可能包含恢复时间为何这么长的迹象。通常的罪魁祸首是日志文件非常大,这些文件以蜗牛般的速度自动增长,并包含异常数量的 VLF。硬件问题可以解释一些症状,但不一定是唯一的解释。最好的方法是调查并找出恢复操作耗时的真正原因。
必读内容: