SQL Server中对网络数据库文件的支持说明

本文介绍对 SQL Server 中的网络数据库文件的支持,以及如何配置SQL Server以将数据库存储在网络服务器或 NAS 存储服务器上。

原始产品版本:SQL Server
原始 KB 编号: 304261

摘要

Microsoft 通常建议使用存储区域网络 (SAN) 或本地附加磁盘来存储 Microsoft SQL Server 数据库文件,因为此配置可优化SQL Server性能和可靠性。 默认情况下,不会为SQL Server启用网络服务器或网络附加存储 (NAS) 服务器上存储的网络数据库文件。

但是,可以将SQL Server配置为将数据库存储在网络服务器或 NAS 服务器上。 用于此目的的服务器必须满足数据写入排序和写通保证SQL Server要求。 详细信息部分详细介绍了这些内容。

以下条件描述了网络服务器或 NAS 服务器上存储的网络数据库文件的用法:

  • Microsoft SQL Server 2008 R2 及更高版本中默认启用此用法。

  • 这种使用需要 -T1807 启动跟踪标志才能在 Microsoft SQL Server 2008 及更早版本中工作。 从 SQL Server 2012 开始,不再需要跟踪标志。 有关如何启用启动跟踪标志的详细信息,请参阅 数据库引擎服务启动选项

Windows 硬件质量实验室 (WHQL) 合格设备

Microsoft Windows 服务器和网络服务器或符合 WHQL) 资格的 Windows 硬件质量实验室 (NAS 存储服务器自动满足支持SQL Server存储设备所需的数据写入排序和写通保证。 Microsoft 支持这些配置中的应用程序和存储相关问题。

注意

为受 SQL Server 支持,NAS 存储解决方案还应满足下载文档中列出的所有要求:SQL Server IO 可靠性计划要求

其他设备

如果将非 WHQL 限定的存储设备与支持本文所述的事务数据库使用的 I/O 保证SQL Server配合使用,Microsoft 将为基于SQL Server和基于SQL Server的应用程序提供完全支持。 但是,设备或其存储子系统的问题或由此引起的问题将提交给设备制造商。 如果使用非 WHQL 限定的存储设备,但不支持本文中所述的事务数据库使用 I/O 保证,则 Microsoft 无法为基于SQL Server或基于SQL Server的应用程序提供支持。 若要确定非 WHQL 限定的存储设备是否支持本文中所述或旨在用于数据库的事务数据库的 I/O 保证,请与设备供应商检查。 此外,请与设备供应商联系,验证是否已正确部署和配置设备以供事务数据库使用。

更多信息

默认情况下,在 SQL Server 2008 及更早版本中,无法在网络文件共享上创建SQL Server数据库。 任何尝试在映射或 UNC 网络位置上创建数据库文件都会生成以下错误消息之一:

  • 错误消息 1

    5105“设备激活错误”

  • 错误消息 2

    5110“文件'file_name'位于数据库文件不支持的网络设备上。”

此行为在意料之中。 跟踪标志 1807 绕过检查,并允许你使用基于网络的数据库文件配置SQL Server。 SQL Server和大多数其他企业数据库系统在系统故障或非托管关闭时使用事务日志和关联的恢复逻辑来维护事务数据库的一致性。 这些恢复协议依赖于直接写入磁盘媒体的功能,以便在操作系统输入/输出 (I/O) 写入请求返回到数据库管理器时,恢复系统可以确保写入完成或可以保证写入完成。 如果系统发生故障,任何软件或硬件组件因遵守此协议而出现故障,都可能导致部分或全部数据丢失或损坏。 有关 SQL Server 中日志记录和恢复协议的这些方面的详细信息,请参阅在 SQL Server 中扩展数据可靠性的日志记录和数据存储算法的说明

Microsoft 不支持在 NAS 或网络存储服务器上SQL Server不符合这些写入和写入顺序要求的联网数据库文件。

由于网络错误会危及数据库完整性的风险,以及使用网络文件共享存储数据库可能导致的性能影响,Microsoft 建议将数据库文件存储在本地磁盘子系统或存储区域网络上, (SAN) 。

网络附加存储 (NAS) 系统是基于文件的存储系统,客户端通过使用网络协议 ((例如 TCP/IP) )通过网络重定向程序附加到该系统。 默认情况下,如果访问磁盘资源需要映射共享,或者如果磁盘资源通过 UNC 路径 (显示为远程服务器,例如网络上的 \Servername\Sharename) ,则不支持将磁盘存储系统用作SQL Server数据库的位置。

性能问题

与其他企业数据库系统一样,SQL Server可能会对 I/O 子系统施加较大负载。 在大多数大型数据库应用程序中,物理 I/O 配置和优化对整个系统性能起着重要作用。 需要考虑三个主要的 I/O 性能因素:

  • I/O 带宽:聚合带宽,通常以每秒兆字节为单位,可维持到数据库设备。
  • I/O 延迟:数据库系统请求 I/O 与完成 I/O 请求的点之间的延迟,通常以毫秒为单位。
  • CPU 成本:数据库系统完成单个 I/O 的主机 CPU 成本(通常以 CPU 微秒为单位)。

这些 I/O 因素中的任何一个都可能成为瓶颈,在为数据库应用程序设计 I/O 系统时,必须考虑所有这些因素。

NAS 解决方案采用最简单的形式,使用标准网络重定向程序软件堆栈、标准网络接口卡 (NIC) 以及标准以太网组件。 此配置的缺点是,所有文件 I/O 都通过网络堆栈进行处理,并且受网络本身的带宽限制的约束。 这可能导致性能和数据可靠性问题,尤其是在需要高级别文件 I/O(例如SQL Server)的程序中。 在 Microsoft 测试的某些 NAS 配置中,I/O 吞吐量 (1/3) 同一服务器上直连存储解决方案的三分之一。 在此相同配置中,通过 NAS 设备完成 I/O 的 CPU 成本是本地 I/O 的两倍。 随着 NAS 设备和网络基础结构的发展,相对于直接连接存储或 SAN,这些比率也可能有所提高。 此外,如果应用程序数据主要缓存在数据库缓冲池中,并且未遇到任何概述的 I/O 瓶颈,则基于 NAS 的系统的性能可能足以满足应用程序的需求。

备份和还原注意事项

SQL Server提供用于备份的虚拟设备接口 (VDI) 。 VDI 为备份软件供应商提供了高性能、可缩放且可靠的方法,用于执行热备份和还原SQL Server数据库。

备份软件通过 VDI 对存储在 NAS 设备上的数据库文件运行,没有特定于 NAS 的特殊支持。 但是,这会导致在备份和还原期间产生大量额外的网络流量。 在通过 VDI 进行备份期间,SQL Server远程读取文件,并将数据传递给SQL Server计算机上运行的第三方备份软件。 还原操作类似。

为了避免额外的网络开销,备份供应商必须由备份供应商和 NAS 供应商提供特定于 NAS 的支持。 SQL Server VDI 允许备份软件利用硬件 (拆分镜像) 或软件 (写入时复制) 技术,快速复制 NAS 本地的数据库文件。 这些技术不仅避免了通过网络复制文件进行备份的开销,还可以将还原时间缩短几个数量级。

存储在 NAS 上的备份容易受到影响存储在 NAS 上的数据库文件的相同故障的影响。 应考虑通过将备份复制到备用介质来保护这些备份。

警告

如果在不使用 SQL Server VDI 支持的情况下使用 NAS 备份技术,则备份中可能会遇到数据库损坏的情况。 如果日志和数据文件存储在单独的设备上,则此类损坏包括页面损坏或不一致。 在还原数据库并访问损坏的数据之前,SQL Server可能无法检测到损坏的页面或不一致。 Microsoft 不支持使用未与 SQL Server 协调的 NAS 备份技术。

SQL Server VDI 的备份支持和 NAS 供应商支持各不相同。 有关 VDI 支持的详细信息,请咨询 NAS 和备份软件供应商。

Microsoft 敦促正在考虑为SQL Server数据库部署 NAS 解决方案的客户咨询其 NAS 供应商,以确保端到端解决方案设计适用于数据库。 许多 NAS 供应商都有适用于此用途的最佳做法指南和经过认证的配置。 Microsoft 还建议客户对其 I/O 性能进行基准测试,以确保前面提到的任何 I/O 因素都不会导致应用程序出现瓶颈。

以下列表介绍了对 SQL 故障转移群集上基于网络的文件的支持:

其他说明

在 NAS 产品中错误地使用数据库软件,或者对配置不正确的 NAS 产品使用数据库软件可能会导致数据丢失,包括总数据库丢失。 如果 NAS 设备或网络软件不完全遵守数据保证(例如写入排序或写通),则硬件、软件甚至电源故障可能会严重损害数据完整性。

References