降低备份的I / O优先级

我有一份工作,每晚都运行所有连接的数据库的备份,但是如果有人在这段时间内连接上,它可能会使服务器停止运行。 我有吨的CPU开销(我使用勉强在5%以上,总共8最高也许30%其余闲置),我的问题是我挂我的I / O。 查看资源监视器,我注意到在读取到mdf和.bak文件的资源监视器中的I / O优先级优先级为Normal

有没有办法让我的备份运行在Background优先?

您可以将数据库备份到UNCpath(手动或通过创build备份设备),以便尝试,但是您将交易networkingI / O的磁盘I / O。

这实际上并没有回答这个问题(如何调整备份操作的I / O优先级),但可能有助于显着加速备份并减less对其他活动的影响:

如果可以将备份写入没有保存数据库数据和日志文件的驱动器。 使用基于旋转磁盘的驱动器可以大大提高性能,因为备份操作并不总是导致磁头在保存实时数据的区域(读取页面)和写入备份区域(以存储这些页面)之间翻转。

这可能意味着要添加额外的物理驱动器(或多个驱动器,以便您可以使用RAID冗余)到机器进行备份,特别是如果您只有一个驱动器或arrays可容纳所有内容。 如果您的数据和日志文件位于不同的磁盘/arrays上,但没有第三个驱动器/arrays将备份写入并且无法添加备份,则使用日志将备份写入驱动器通常比写入更快到数据文件的驱动器(因为日志文件中的活动页面非常less,除非在不常见的情况下)。

不,没有支持将一个线程更改为不同优先级的方法。 您可以尝试使用类似LiteSpeed和/或HyperBac的东西来压缩备份,这将减less写入IO要求。

升级到SQL Server 2008 Enterprise或SQL Server 2008 R2 Standard或更高版本,使用本地备份压缩 – 并将这些CPU周期中的一部分进行交换,从而大大缩短备份时间。