我们看到一个简单的4mb文件.Restore需要超过25分钟才能恢复到100%,但是它不会从那里更新任何状态。
当签入错误日志时,我们可以看到下面的错误.
进程0: 0 :0 (0x12c8)工作人员0x0000CB5481A160在Scheduler 0上似乎不屈服。线程创建时间: 13223894899341。大约使用线程CPU :内核0 ms,用户0 ms。工艺利用率为2%。系统延迟92%。间隔时间: 70083 ms。
我们能够将工作地址与还原会话id匹配,如下面的屏幕截图所示

此外,我们可以看到恢复的spid的等待类型是'PREEMPTIVE_OS_CREATEFILE‘。
下面是更多的细节
版本:
Microsoft 2014 (SP3-CU4) (KB4500181) - 12.0.6329.1 (X64) 2019年7月20日21:42:29版权(c)微软公司企业版:基于核心的授权(64位)在Windows 6.3 (Build 9600:)
windows详细信息:
windows 2012 R2标准
此mdf、ndf、ldf的实际文件大小为0.5、0.4,1GB respectively.backup文件为4MB。
恢复过程中的文件速度低于50 MS.。
对造成这种行为的原因有什么想法吗?
发布于 2020-02-11 12:02:43
备份文件的大小仅部分相关。还原过程首先必须创建数据库文件(正如我喜欢的那样是“容器”),并且它们需要与生成备份时相同的大小。
因此,您有一个只有少量信息的数据库,但它位于大型数据库文件中。
即时文件初始化在某种程度上可以有所帮助,但仅适用于数据库文件。也就是说,不适用于事务日志文件。有关更多信息,请参见即时这。
如果您想知道要创建的文件的大小,可以使用RESTORE FILELISTONLY:
RESTORE FILELISTONLY
FROM DISK = 'R:\mybackup.bak'如果文件中有多个备份(就像正在运行的RESTORE命令一样),您可能需要一个文件选项。
发布于 2020-02-12 05:23:40
我也有同样的问题,这是由于数据库的大小。虽然备份显示9 MB,但当我在SQL server管理中右键单击DB并选择属性时,显示的大小为25 GB!我所做的是将DB更改为“简单恢复”,缩小日志文件,再次备份,现在就可以恢复。
https://dba.stackexchange.com/questions/259392
复制相似问题