zoukankan      html  css  js  c++  java
  • SQL Server备份属于I/O密集型操作

    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的速度。

  • 相关阅读:
    Mybatis多表查询
    (转)Java安全通信:HTTPS与SSL
    (转)RSA加密解密及数字签名Java实现
    (转)大型企业电话会议视频会议备份解决方案
    (转)虚拟IP原理
    虚拟IP---Linux下一个网卡配置多个IP
    C++ 点
    算法(8)Maximum Product Subarray
    算法(7)Majority Element II
    算法(6)3Sum Closest
  • 原文地址:https://www.cnblogs.com/Amaranthus/p/1987151.html
Copyright © 2011-2022 走看看