且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SQL Server备份属于I/O密集型操作

更新时间:2022-06-18 08:58:45

SQL Server备份属于I/O密集型操作。简单来说,你需要首先进行读操作,然后再写整个数据库的内容。下面是几个可以改善I/O吞吐量的步骤:

  向尽可能多的磁盘做写操作

  使用尽可能多的磁盘驱动器来分离负载量,可以是由许多块盘组成的RAID阵列或者是多个RAID阵列。

  从尽可能多块磁盘做读操作

  如果你的数据库跨多块磁盘分布,你可以降低I/O瓶颈。

  利用分离磁盘做读操作和写操作

  对不同的磁盘组做读操作和写操作有助于增加I/O吞吐量。

  RAID配置

  对读操作和写操作尽可能使用速度最快的RAID配置。例如,RAID 5比较慢,因为它需要对磁盘有额外的写操作。RAID 0对写操作来说是最快的,但是它不提供冗余。可以考虑使用RAID 1+0:1和0代表镜像式(1)和条带式(0),因此你可以有一个数据集镜像,而且你可以条带式跨多个镜像组合来获取额外的I/O吞吐量。既然备份首先要从数据库读,然后向备份文件写,那么写操作的优势在存储备份文件的磁盘上是显而易见的。

  控制器

  利用不同的控制器和(或者)通道来增加I/O吞吐量。另外,要使用你能买得起的***的控制器。在购买控制器时,你应该查看端口数量,支持的最大驱动器数量,缓冲大小,电池备份和SCSI协议支持情况。要跨多个控制器或通道分离读操作和写操作活动。

  在本地写数据

  要写本地磁盘,而不要向网络连接的存储做写操作。如果数据被写到直接连接的存储设备,你可以排除掉服务器外部可能引起使备份变慢时间变长的其它因素。

  写多个设备

  除了读写多块磁盘,可以利用尽可能多的线程来增加吞吐量。这一点可以通过利用企业管理器并选择多个输出文件或者通过利用T-SQL并在备份命令中包含多个文件来做到。你还可以通过写不同磁盘子系统来进一步增加吞吐量。

  压缩备份

  利用第三方工具压缩你的备份输出。这样一来,你可以降低备份文件整个大小的90%,并将备份时间减半。因为大部分数据在数据库中是文本数据,因此它是高度可压缩的。

  把备份写到磁盘

  永远要把备份写到磁盘上,不要直接写到其他类型的介质上;在直接写到内存之后,磁盘备份是下一个最快的选择。

  快速磁盘驱动器

  使用你能得到的最快的磁盘驱动器。SCSI驱动器还是要比IDE更快,能达到高达15k RPM的速度。