SQL Server还原新库后原库卡在‘Restoring...’,如何恢复原库?
问题解答
1. 当前状态是否正常?
这种情况不正常。正常将备份还原到新数据库(WeatherTempo)的操作,完全不会影响原数据库(Weather)的状态,原库不应出现Restoring...且无法访问的情况。大概率是SSMS生成的还原脚本存在误操作,比如错误将备份还原到了原库,或者脚本中包含了导致原库进入还原状态的参数。
2. 如何让原数据库恢复在线?
步骤1:排查还原脚本问题
先检查你执行的还原脚本,重点看RESTORE DATABASE语句:
- 确认目标数据库名称是否为
WeatherTempo,而非Weather; - 检查是否带有
WITH NORECOVERY参数——如果还原时指定了这个参数,数据库会一直停留在Restoring状态,等待后续日志备份的还原。
步骤2:强制原库恢复在线
如果原库确实处于Restoring状态,执行以下SQL命令让其完成还原并上线:
RESTORE DATABASE Weather WITH RECOVERY;
这个命令会让SQL Server完成当前的还原进程,将数据库切换到在线状态。
步骤3:极端情况处理
如果执行上述命令无效,或者不确定问题原因,可以尝试重启SQL Server服务(注意:重启会中断所有正在运行的数据库连接,需提前协调业务时间)。重启后若原库仍处于Restoring状态,再次执行RESTORE DATABASE Weather WITH RECOVERY;命令。
3. 关于新库还原时间的说明
6GB的MDF文件,正常还原到新库的时间通常不会超过1小时,若耗时过久,建议检查:
- 磁盘IO性能:备份文件所在磁盘、新库数据文件/日志文件所在磁盘的读写速度是否过低;
- SQL Server错误日志:查看日志中是否有还原过程的报错或卡顿信息,排查是否存在备份文件损坏等问题。
内容的提问来源于stack exchange,提问作者sinDizzy
相关产品推荐
相关产品推荐

