SQL Server的最佳实践磁盘使用情况

我一直在阅读,为了性能和安全,最好将以下内容放在不同的磁盘上:

  • tempdb中
  • 数据库文件
  • 日志文件
  • 备份文件

当您考虑使用多个磁盘的RAID时,这将成为大量使用的物理磁盘。

我理解日志文件受益于自己的物理磁盘,因为它们的顺序写入模式,但其他文件可以分为“逻辑”磁盘而不是物理磁盘?

首先select解决scheme时,应该知道数据库应该准备好的最大工作负载。

如果您正在安装某个产品,那么该产品将为不同的工作负载提供build议。

如果产品是内部devise的,那么对其进行基准testing,创build性能限制和成本。 逐步部署您的应用程序。 记得GMail邀请? 他们是为了在野外testing他们的应用程序而创build的,但是有一定数量的用户。

分离分区上的数据几乎是无用的。 唯一的好处是碎片将会更加本地化,​​但是DB请求大部分是随机访问。

不要使用RADI5。 使用RAID1或RAID10。 如果数据完整性至关重要,则可能是RAIDZ(iSCSI SAN上的ZFS)。

…其他文件可以分为“逻辑”磁盘而不是物理磁盘吗?

您可以将它们放在同一物理磁盘上的不同逻辑磁盘上。 这不会给你使用单独物理磁盘的所有优点,但如果稍后确定需要更多物理磁盘,则可以更轻松地将逻辑磁盘移动到新的物理磁盘。

你正在考虑三方面的权衡。

  • 速度
  • 风险
  • 成本

要获得最快的速度和最低的风险通常会花费你最多的。 根据我的经验,大多数首席执行官和首席财务官想要最大限度地提高速度并降低成 需要一段时间才能让他们认识到接受风险的成本,以最大限度地提高速度和降低成本。

另一方面,数据库pipe理员倾向于将风险降至最低。

如果将数据库及其备份存储在同一台服务器上,那么无论如何可能会破坏服务器也可能会破坏备份。 这通常不是一个可以接受的风险,但是依赖于应用程序。 销毁服务器需要一个相当大的事件。 我不认为我曾经见过一个被摧毁。

如果将数据库及其备份存储在同一个物理磁盘上,那么无论什么情况可能会损坏该磁盘都可能会破坏数据库和备份。 我已经看到了很多次被破坏的磁盘。 这几乎总是一个不可接受的风险。

一些速度问题可以通过固态硬盘来缓解,但是这些问题会带来不同的成本和一些新的风险。

就我个人而言,我不希望在与数据库相同的服务器上进行备份,但我可能愿意将备份写入同一台服务器(预计高速和低成本),并在稍后将其复制或移动到其他位置。

在多个磁盘上分配数据库文件有两个主要原因:性能和可用性。

可用性归结为:你只是不想同时丢失数据文件,日志文件和备份文件; 失去其中之一是可以接受的,失去其中的两个是一团糟,失去所有这些都是一场完全的灾难。 因此,你把它们放在不同的磁盘上,以尽量减less这种风险(你真的应该备份在另一台服务器或外部存储;有时服务器可以 并将被完全销毁)。 为了达到这个目的,关键是要使用不同的物理磁盘:当物理存储器死亡时,在同一个物理存储器上拥有多个逻辑卷并不能帮助你。

性能有点棘手,对于大型数据库来说,还需要两到三个地方来存储文件; 但这很大程度上取决于数据库的devise和工作量。 但是,在所有可能的情况下,只有在涉及不同的物理磁盘时,这仍然是有意义的:分割两个磁盘操作的用途是什么…如果它们最终由相同的磁盘执行, 磁盘仍然必须处理具有不同访问模式的并发请求,并作用于不同的扇区,就像在文件在同一卷中时所做的那样。

即使只使用单独的逻辑驱动器,也可以获得一点小小的好处,即如果单个组件中的任何一个耗尽空间,则并不一定意味着所有其他组件都同时耗尽了空间 – 略微更优雅的失败。