具有 AlwaysOn 可用性组的 FILESTREAM 和 FileTable (SQL Server)

本主题包含有关在 SQL Server 2014 中使用具有 AlwaysOn 可用性组的 FILESTREAM 和 FileTable 功能的信息。

支持所有 FILESTREAM 功能。 故障转移后,FILESTREAM 数据在可读辅助副本和新的主副本上均可访问。

支持部分 FileTable 功能。 故障转移后,主副本上可访问 FileTable 数据,但在可读次要副本上无法访问 FileTable 数据。

在本主题中:

先决条件

  • 在将使用 FILESTREAM 的数据库(具有或不具有 FileTable)添加到某一可用性组之前,请确保在承载该可用性组的可用性副本的每个服务器实例上都启用 FILESTREAM。 有关详细信息,请参阅 Enable and Configure FILESTREAM

将虚拟网络名称(VNN)用于 FILESTREAM 和 FileTable 访问

当您在 SQL Server实例上启用 FILESTREAM 时,将创建实例级别共享以便提供对 FILESTREAM 数据的访问。 可通过按以下格式使用计算机名称来访问此共享:

\\<computer_name>\<filestream_share_name>

但是,在 AlwaysOn 高可用性组中,计算机的名称通过使用虚拟网络名称(VNN)实现虚拟化。 在该计算机是某一可用性组中的主副本,并且该可用性组中的数据库包含 FILESTREAM 数据时,还创建 VNN 范围的共享以便提供对 FILESTREAM 数据的访问。 这不会影响对 FILESTREAM 数据的 Transact-SQL 访问。 但是,使用文件系统 API 的应用程序必须使用 VNN 范围内的共享,其路径格式如下:

\\<VNN>\<filestream_share_name>

在发生以下事件之一时将创建 VNN 范围的共享。

  • 将包含 FILESTREAM 数据的数据库添加到主副本上的 AlwaysOn 可用性组。 在此情况下,共享 \\<computer_name>\<filestream_share_name> 已存在。 创建共享 \\<VNN>\<filestream_share_name>

  • 您对具有可用性组的主副本上的文件 i/o 流访问启用 FILESTREAM。 创建以下共享:

    1. \\<computer_name>\<filestream_share_name>

    2. 可用性组 1 的 \\<VNN1>\<filestream_share_name>

    3. 可用性组 2 的 \\<VNN2>\<filestream_share_name>

这些 VNN 范围的共享也传播到所有辅助副本。

当包含 FILESTREAM 或 FileTable 数据的数据库属于 AlwaysOn 可用性组时:

  • FILESTREAM 和 FileTable 函数接受或返回虚拟网络名称 (VNN),而非计算机名称。 有关这些函数的详细信息,请参阅 Filestream 和 FileTable 函数(Transact-SQL)。

  • 通过文件系统 API 对 FILESTREAM 或 FileTable 数据进行的所有访问都应该使用 VNN,而非计算机名称。

在该数据库是某一可用性组的一部分时,如果您的应用程序尝试使用格式为 \\<computer_name>\<filestream_share_name> 的计算机名称访问该共享,将会引发错误。

如果应用程序尝试在数据库不是可用性组的一部分时使用 VNN 范围的路径访问共享,则请求可能会成功。 在此情况下,虚拟网络名称将解析为计算机名称。 强烈建议不要使用这种用法,因为如果删除可用性组,VNN 范围内的路径将无法继续工作。

相关任务

相关内容

没有。

另请参阅

AlwaysOn 可用性组概述 (SQL Server)