SQL*_*ert 11 sql-server backup compression sql-server-2014 ola-hallengren
在我们的环境中,我们有一些服务器在 Always On Availability Group 中,有些服务器是独立的。
我们通常备份到网络共享,但我们最近观察到随着数据库越来越大,花费的时间越来越长,这会减慢整个网络的速度。
Ola Hallengren 的脚本用于压缩和拆分备份文件。我只执行每日“完整”备份。备份将转到网络共享 EMC isilon 驱动器。
我对 EMC DD Boost 从不满意。唯一的选择是进行本地备份,然后复制到相同的网络共享。
除了上面的方法,还有其他有效的方法吗?
Eri*_*ing 15
有一些方法可以通过使用不同的旋钮(如MAXTRANSFERSIZE 或 BUFFERCOUNT)或条带化文件(您已经注意到您已经在做)来调整备份。
问题是触摸这些旋钮可能仍会导致达到网络和/或存储的限制,并且它们对备份时间没有任何实际影响。
您的第一份工作应该是使用Crystal Disk Mark或DiskSpd对要备份的存储进行基准测试。这将使您了解可以期望写入达到最佳状态的速度。
您需要测试的下一件事是从您正在备份的驱动器中读取数据。如果您运行备份到 NUL,您可以计算备份的读取部分所需的时间,而无需将其写入磁盘。
考虑到这两个数字,您可以开始弄乱其他旋钮以查看哪些旋钮让您最接近它们,无论您的备份目标是本地还是网络。
Kin*_*hah 10
您提到的替代方案似乎是最佳选择。
你可以做的是一个两步过程:
这样,您的备份是本地的,而且速度会很快。您将需要更多的磁盘空间和明显的冗余(如果备份磁盘出现故障 - 您不想丢失所有备份)。
或者,按照 Max Vernon 的建议,将 Robocopy 作为备份作业中的一个步骤执行,以确保仅在成功完成备份后才会执行 robocopy,并在备份完成后尽快执行。备份与数据的风险相同,只要它保持在本地。
此外,定期测试您的恢复,因为如果您无法恢复备份 - 它有什么用途!
另外,请参阅我对SQL 备份调优大型数据库的回答
几个潜在的解决方案:
您可以在 Ola 的脚本中调整许多与性能相关的参数,您可以调整这些参数以获得所需的性能:
BlockSize
以字节为单位指定物理块大小。
DatabaseBackup 中的 BlockSize 选项使用BLOCKSIZE
SQL Server BACKUP 命令中的选项。
BufferCount
指定用于备份操作的 I/O 缓冲区数。
DatabaseBackup 中的 BufferCount 选项使用BUFFERCOUNT
SQL ServerBACKUP
命令中的选项。
MaxTransferSize 指定要在 SQL Server 和备份媒体之间使用的最大传输单位(以字节为单位)。
DatabaseBackup 中的 MaxTransferSize 选项使用MAXTRANSFERSIZE
SQL ServerBACKUP
命令中的选项。
有很多可能的选择,但随着数据库越来越大,完整备份需要更长的时间,如果您还没有合并差异备份,您可能必须合并:
与创建完整备份相比,创建差异备份可以非常快。差异备份仅记录自基于差异备份的完整备份以来发生变化的数据。这有助于进行频繁的数据备份,从而降低数据丢失的风险。
我的理解是,Ola 的脚本甚至可以设置为使用 ModificationLevel 参数根据数据库中的更改量来决定是完整备份还是差异备份。
我们使用 EMC DD Boost,欢迎您发表自己的看法,但我们发现,由于它使用客户端重复数据删除方法,即使是多 TB 数据库的完整备份也可以非常快,以至于我们不必担心 SQL Server 差异备份。实际上,通过使用 EMC DD,您正在执行差异备份,而不是在 SQL Server 中。使用多个目标文件也大大提高了速度,即使在 DDBoost 上也是如此。
归档时间: |
|
查看次数: |
1644 次 |
最近记录: |