创建备份时,SQL Server 会猜测(?)初始备份文件的大小。稍后,当它附加日志时,可能会重新调整大小,有时会多次调整,直到达到最终大小。差异越大,备份所需的时间就越长。(与另一个备份相比,它的大小稍后没有调整那么多)。示例:Database1(大小 500GB,使用 70GB 日志)以压缩方式备份。创建的 .bak 文件大小为 85 GB,一段时间后 CPU 使用率上升,我可以看到 .bak 文件重新调整为 136 GB,这种情况再次发生,直到备份的最终大小为 178GB到达。
当这些重新计算发生时,与同一台机器上的其他备份相比,以 MB/s 为单位的平均备份速度会降低。唯一来自附加和清除日志吗?还是因为数据库中使用的数据类型不同?这意味着它们以不同的压缩率压缩,还是什么?
我来到这个话题,因为我知道我的备份大约需要 30 分钟,但现在即使数据库没有增长到其大小的 300%,也需要 1.5 小时。它只增长了30%。
使用等待统计信息,我可以看到除了 BackupIO 之外,我还在某个时候等待 CPU (SOS_SCHEDULER_YIELD)。
Machine Details:
VMWare 6.0
32 GB of Memory (Max memory 28GB given to SQL Server)
2 logical CPU
Max Degree of Parallelism (1, it's a Sharepoint 2013)
SQL Server 2014
Windows Server 2012 R2
running on an SSD Raid (5)
当然,我为运行备份的用户启用了即时文件初始化。
来自 BOL:
您应该遵循 -备份和还原 SharePoint 2013 中的最佳做法。
另外,对我来说,你的虚拟机有 2 个 CPU 似乎不足以运行 70GB 的数据库(不确定是只有一个数据库还是多个数据库)。