网络备份的替代方法


11

在我们的环境中,有些服务器位于“始终在线”可用性组中,有些则是独立的。

我们通常备份到网络共享,但是最近我们观察到,随着数据库的增大,花费的时间越来越长,这会使整个网络变慢。

Ola hallengren的脚本被用于压缩,并且还分割备份文件。我仅执行每日“完整”备份。备份将转到网络共享EMC isilon驱动器。

我从不满意EMC DD Boost。唯一的选择是执行本地备份,然后复制到相同的网络共享。

除了上述以外,还有其他有效的方法吗?


一旦数据库达到一定大小,备份数据的唯一可行方法就是通过复制。但是看来您的情况还不存在。尽管如此,现在对复制的研究没有危害
slebetman

Answers:


10

您提到的替代方法似乎是最佳选择。

您可以做一个两步过程:

  • 使用Ola的备份解决方案在本地进行压缩的本地sql服务器备份。
  • 使用Robocopy进行到网络共享的传输。这是分离的,可以作为Windows计划任务运行。

这样,您的备份是本地的,并且备份很快。您将需要更多的磁盘空间和明显的冗余(如果备份磁盘出现故障,您将不希望丢失所有备份)。

或者,按照Max Vernon的建议,将Robocopy作为备份作业中的一个步骤,以确保仅在成功完成备份后以及在备份完成后尽快进行robocopy。只要备份保持本地状态,备份与数据就有相同的风险。

另外,请定期测试您的还原,因为如果您无法还原备份,它将起到什么作用!

另外,请参阅我对SQL Backup调整大型数据库的回答


15

有一些方法可以通过与MAXTRANSFERSIZE或BUFFERCOUNT之类的不同旋钮弄混来调优备份,或者剥离文件(您已经注意到自己已经在做这件事)。

问题在于,触摸这些旋钮可能仍会导致网络和/或存储的限制,并且它们对备份时间没有任何实际影响。

您的第一项工作应该是使用Crystal Disk MarkDiskSpd对要备份的存储进行基准测试。这将使您对可以预期写入达到最佳状态的速度有一些了解。

接下来需要测试的是从要备份的驱动器中读取的内容。如果将备份运行到NUL,则可以计时仅读取备份部分所花费的时间,而不必将其写入磁盘。

牢记这两个数字,您就可以将其他旋钮弄乱,看看哪个旋钮使您离它们最近,无论您的备份目标是本地的还是联网的。


9

几个潜在的解决方案:

  1. 从仅完全备份到每周完整备份和每晚差异备份可能是一个简单的解决方案。
  2. 您可以在Ola的脚本中调整许多与性能相关的参数,您也许可以对这些参数进行调整以获得所需的性能:

    • BlockSize
      指定物理块大小(以字节为单位)。

      DatabaseBackup中的BlockSize选项使用BLOCKSIZESQL Server BACKUP命令中的选项。

    • BufferCount
      指定用于备份操作的I / O缓冲区的数量。

      DatabaseBackup中的BufferCount选项使用BUFFERCOUNTSQL Server BACKUP命令中的选项。

    • MaxTransferSize 指定在SQL Server和备份媒体之间使用的最大传输单位(以字节为单位)。

      DatabaseBackup中的MaxTransferSize选项使用MAXTRANSFERSIZESQL Server BACKUP命令中的选项。


5

有很多可能的选择,但是随着数据库的增大和完整备份所花费的时间更长,如果您还没有的话,您可能必须合并差异备份

与创建完整备份相比,创建差异备份可以非常快。差异备份仅记录自基于差异备份的完全备份以来更改过的数据。这有助于进行频繁的数据备份,从而降低了数据丢失的风险。

我的理解是,Ola的脚本甚至可以设置为使用ModificationLevel参数根据数据库中的更改量来决定是完全备份还是差异备份。

我们使用EMC DD Boost,欢迎您对此发表意见,但是由于使用了客户端重复数据删除方法,因此我们发现即使是多TB数据库的完整备份也可以非常快,到了我们不必担心SQL Server差异备份的地步。实际上,通过使用EMC DD,您正在执行差异备份,只是不在SQL Server中。即使在DDBoost上,使用多个目标文件也可以极大地提高速度。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.