我对此做了很多研究。
我正在尝试使用SQL Server 2014恢复数据库,并且它一直保持在100%。
很多人建议解决方法是确保使用RECOVERY选项进行恢复。
我已经尝试过,它仍然以100%挂起。我已尝试通过SSMS Restore对话框,我尝试运行以下SQL语句:
USE [master]
RESTORE DATABASE [MyDB]
FROM DISK = N'C:\MyDB_backup_2015_05_05_010004_1506557.bak'
WITH
FILE = 1,
MOVE N'MyDB_Data' TO N'F:\MSSQL\DATA\MyDB.mdf',
MOVE N'MyDB_Log' TO N'F:\MSSQL\DATA\MyDB_1.ldf',
NOUNLOAD,
REPLACE,
RECOVERY,
STATS = 2
GO
当我通过以下方式检查命令的状态时:
SELECT r.status, r.command, r.wait_type, r.percent_complete
FROM sys.dm_exec_requests r
WHERE r.command like '%restore%' or r.command like '%backup%'
我明白了:
status: suspended
command: RESTORE DATABASE
wait_type: BACKUPTHREAD
percent_complete: 100
在我的阅读中暗示RESTORE正在等待BACKUP完成,但是没有从我的查询返回到sys.dm_exec_requests的BACKUP命令
编辑:再次尝试并运行上述查询以从头开始查看RESTORE的进度后,我可以看到' percent_complete'尽管事实上的价值正在稳步上升,但价值却在稳步上升。仍然被暂停'和#wait_type'仍然是' BACKUPTHREAD'。
尽管它已被暂停'它实际上仍在执行RESTORE。
所以我不知所措......
任何人都有任何想法在这里发生了什么或有关如何诊断问题的任何提示?
干杯!
答案 0 :(得分:4)
事实证明这个问题与环境有关并且非常直接:
首先,我试图从原始数据库的非缩小备份版本备份。
日志文件的大小实际上是一个已知问题,因此我们通常会从数据库的缩小版本备份。
因此,如果有人遇到类似的问题,请先尝试缩小数据库,然后进行备份并从中恢复。
其次,我试图通过USB3将数据库备份到外部驱动器。
另外,有趣的是,我观察了工作恢复命令的进展情况,并且它的状态为“暂停”,并且“wait_type”为“BACKUPTHREAD” - 即使它仍在进行中(完成百分比增加) percent_complete)列!所以我仍然对于那些有关......的事情感到很遗憾。
但至少我现在可以恢复我的备份: - )
答案 1 :(得分:1)
由于数据库的大小,我遇到了同样的问题。 虽然备份显示9 MB,但当我右键单击SQL Server管理中的数据库并选择属性时,显示的大小为25 GB! 我做的是我将数据库更改为“简单恢复”,缩小了日志文件,再次备份,我现在可以恢复。