首页 > 数据库 > SQL Server > 正文

加快SQL Server备份和重新存储的速度

2024-08-31 01:05:34
字体:
来源:转载
供稿:网友
每个SQL Server上面执行的最重要的任务之一都是运行备份和恢复。备份将你的数据库拷贝一份,当问题发生在你的产品数据库的时候,备份通过给你一份完全的拷贝来恢复而提供安全措施。在大多数情况下,恢复过程都是以非产品关键的方式完成的,例如净化开发/测试环境或者净化报告报告环境。但是在大多数的关键模式下,你都需要通过恢复这些备份拷贝来修正产品环境。

  基于创建备份的重要性,以及恢复备份来纠正产品问题的关键需求,时间就是根本。备份是在线操作,但是他们确实使用了系统资源。然而,恢复需要对数据库进行额外的访问,所以在错误状态中,这甚至是个更加关键的任务。

  考虑到完成这些任务的时间因素,还有一些事情需要在备份端和恢复端完成,以改善这些操作的速度。

  硬件

  备份和恢复时间是被你的硬件,以及这些硬件上的配置影响的。从硬件的角度来说,这里有一些你需要考虑用来提高性能的事情。

  分散磁盘I/O。通过使用尽量多的驱动,你可以确保磁盘I/O不成为瓶颈。还要确保你没有同时使用同一块硬盘进行读写操作。

  采用最新的硬件技术使用最快的RAID配置:RAID 0, RAID1, RAID10 然后是 RAID 5.

  使用最快的驱动

  使用最快的控制器,并且将磁盘活动分散到不同的控制器或者不同的通道上去。

  使用本地添加的磁盘,不要通过网络进行备份。

  备份到磁盘上,然后存档到磁带上。

  对快照和分割镜像备份使用SAN技术。

  如果你需要备份另一台机器,那么尽可能地使用最快的网卡和交换机。还有,如果你能够将这些网络流量与正常的网络流量区分开,那么你就可以降低网络I/O瓶颈的可能性。

  本地备份

  另一个可能会影响完成备份所费时间的领域就是何时,以及如何运行备份。

  在服务器利用时间较低的时候执行

  不要在同一时间运行你所有的备份。

  不要在大型备份的同一时间运行批处理程序。

  使用备份选项来写入到多个文件中。这将会将你的I/O分散,同时增加线程数量。

  同时使用几种备份技术:完全、区分的和日志。

  本地恢复

  从恢复的角度来说,上面提到的大部分时间都是用在了恢复上面。这里是一些额外的技巧:

  不同阶段使用不同的领域,这样备份就被部分地恢复了,而不需要在同一时间恢复所有备份。

  使用恢复过程,例如Log Shipping,达到与先前某个点类似的一些东西。

  使用除了备份和从数据恢复中重新存储之外的其它技术,例如聚簇、复制、CDP等。

  第三方软件

  一个关键的节省时间的方法就是使用备份压缩工具构建特别针对SQL Server的备份。在市场上有一些这样的工具,使用它们可以在最小努力的情况下获得最大的收益。

  Idera的 SQLsafe

  Quest的 SQL LiteSpeed

  Red-Gate的 SQL Backup

  基于使用Idera和各种各样硬件的供应商们进行的测试,Idera可以达到每小时4.5TB的备份速率,通过使用SQL safe的重新存储的速率可以达到每小时2.3TB。通过以下链接察看有关设置新的性能记录的额外信息。这几乎是大多数SQL环境的极限值,不论是从配置硬件的成本,到每小时4.5TB备份数据库的需求。但是现实情况是通过同时配置关于硬件和软件的完整解决方案,是可能达到的。

  小结

  正如你看到的,要提高你的备份和重新存储过程的吞吐量,有一些不同的事情可以完成。其中的一些是非常简单的修正,而另外一些则需要配置你的硬件,购买新的硬件或者购买可以帮助提高速度的工具。

  基于Idera测试得到的每小时4.5TB的速度,使用第三方备份压缩工具看起来是最简单的,和最轻松的方式。我不认为有很多数据库会达到这样程度的数据库规模,所以基于测试,大多数的完全备份都可以在一小时之内完成。这里是一份关于最大型的数据库的报告,正如你看到的,还没有很多的数据库达到超越TB的规模。从这份报告来看,这个数字大概2年就会翻3倍,我确信这个数量级不到两年就会达到3倍。

  但是使用所有这些选项的综合,你将会达到更快的备份和重新存储的速度,但是即使是以上所有的方法,也总是会有某些类型的限制。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表