我已经对此做了很多研究。
我正在尝试使用SQL Server 2014恢复数据库,并一直挂在100%。
很多人建议解决方案是确保您通过恢复选项还原。
我已经尝试过,它仍然以100%的速度悬挂。我已经通过SSMS还原对话框尝试了,并且尝试运行以下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:MSSQLDATAMyDB.mdf',
MOVE N'MyDB_Log' TO N'F:MSSQLDATAMyDB_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
从我的阅读中,这意味着还原正在等待备份完成,但是从我的查询中没有备份命令返回到sys.dm_exec_requests
edit :在再次尝试并运行上述查询以观察从一开始的还原进度之后,我可以看到"百分比_complete"值正在稳步增加,尽管事实是"状态"仍然为"暂停",而" wait_type"仍为" backupthread"。
因此,尽管它被"暂停",但实际上仍在执行还原。
所以我不知所措...
有人有任何想法在这里发生了什么或有关如何诊断问题的任何提示?
欢呼!
事实证明问题与环境相关,并且非常直接:
首先,我试图从原始数据库的非冲突备份版本中备份。
日志文件的大小实际上是一个已知问题,因此我们通常从数据库的缩减版本中备份。
因此,如果有人遇到类似问题,请先尝试缩小数据库,然后备份并从中恢复。
其次,我试图将数据库备份到USB3上的外部驱动器。
同样,有趣的是,我观看了工作恢复命令的进度,它也具有" wait_type" backupthread"的"暂停"状态 - 甚至在它仍在进行的同时(可以很明显地,完成的完成百分比增加了percon_complete)列!所以我仍然迷失了什么事...
,但至少我现在可以还原备份: - )
我遇到的问题是由于DB的大小。尽管备份显示了9 MB,但是当我右键单击SQL Server Management和Select属性中的DB时,显示的大小为25 GB!我所做的是,我将DB更改为"简单恢复",缩小日志文件,再次备份,现在可以还原。