Sql服务器备份非常慢

我如何估算一个30GB数据库的完整备份时间?

在这一刻大约需要50分钟。 我们可以改善吗?

谢谢

添加一下并总结其他答案:

  • 使用压缩将加速备份(读取一些然后写入一些 – 减less“写入一些”,并加快速度),但以牺牲一些额外的CPU为代价。 您可以在2008年将备份压缩与资源调控器结合起来,以限制这一点。 使用压缩还可以加速恢复(读取一些然后再写入一些) – 这对于减less灾难恢复情况下的停机时间可能是非常好的。
  • 不使用相同的驱动器进行数据库文件和备份。 除了争用问题(取决于I / O子系统)之外,这是一场灾难。 我曾经看到的最糟糕的数据丢失情况是,第三方技术人员意外地格式化了具有数据库和唯一备份的驱动器
  • 使用条带化的备份集。 如果您可以将数据库备份到多个备份文件,那么I / O在备份文件中是循环的。 如果将备份文件放在单独的存储上,则可以获得巨大的性能提升。
  • 调整一些更高级的参数,如BLOCKSIZE,MAXTRANSFERSIZE,BUFFERCOUNT

我见过的最快速的备份是在维也纳我们的客户Bwin。 他们可以在36分钟内备份2TB。 在高端备份压缩数字上查看我的博客文章。

看看这个SQLCAT PDF ,具体来说:

  • 部分4,页面​​71:调整SQL Server 2008中的备份压缩性能
  • 第1节,第15页:调整备份压缩第2部分

希望这可以帮助!

你最近清理了你的MSDB吗? 布伦特·奥扎尔(Brent Ozar)写的关于你的数据库和备份有什么影响的文章

http://www.brentozar.com/archive/2009/05/brents-backup-bottleneck-msdb/

你正在运行什么版本的SQL服务器? 2008年可以做压缩备份,可以大大提高备份速度。 一旦我们在备份工作中开启了压缩function,我的一个客户备份就从一个小时到十分钟。

您的数据库物理文件(.MDF / .NDF)是否在备份的同一个磁盘上? 如果是这样,磁盘正在尝试读取数据库并同时写入备份。 备份到一个单独的独立磁盘应该有所帮助。

也可能是底层磁盘有问题 – 让存储工程师检查磁盘的完整性。

另一个要检查的是你的备份可能被另一个进程阻塞。 备份开始后执行命令SP_WHO2 ACTIVE并检查BlkBy列。 如果它包含一个数字 – 这是阻止备份的进程的进程ID,如果该列为空,则不会被阻止。

你的恢复速度有多快?

改进它的最好方法是使用第三方备份工具 – 例如Quest的LiteSpeed或Red Gate的SQLBackup。

也就是说,你多久运行一次完整的备份? 您是否实施了差异备份和传输日志备份?

对于30GB,50分钟似乎有点长,但是如果你的磁盘arrays处于压力之下,我可以看到这个过程需要很长时间。

不是我会推荐它,如果你closuresvalidation选项,它会大大减less时间。 我只会在复制到备用机器的备份上执行备份,并且还原到备份状态。

我肯定会去找Paul的Randal解决scheme。 但是我会检查msdb备份历史是否像SQLChicken那样大。 如果你在SQL 2008上,我会使用备份压缩,因为它是踢屁股。 我不知道即时文件初始化是否会对此有所帮助。 但也会尝试一下。 (testing使完美)

使用跟踪标志(3605,3213)将在错误日志中备份详细信息。

DBCC TRACEOFF(3605, –1) DBCC TRACEOFF(3213, –1) 

要估计和检查可以从数据库或文件组中读取数据的速度,可以使用以下特殊选项来备份: DISK = 'NUL'

使用1222,1204将在errorlog中保持logging死锁。