本主题包含有关在 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。 创建以下共享:
\\<computer_name>\<filestream_share_name>
可用性组 1 的
\\<VNN1>\<filestream_share_name>
。可用性组 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 范围内的路径将无法继续工作。
相关任务
相关内容
没有。