Uso de FILESTREAM y FileTable con grupos de disponibilidad Always On

Se aplica a:SQL Server: solo Windows

Este artículo contiene información sobre cómo usar las características FILESTREAM y FileTable con Grupos de disponibilidad AlwaysOn en SQL Server.

Se admite toda la funcionalidad de FILESTREAM. Después de una conmutación por error, los datos de FILESTREAM son accesibles tanto en las réplicas secundarias legibles como en la nueva réplica principal.

Se admite parcialmente la funcionalidad de FileTable. Después de una conmutación por error, es posible tener acceso a los datos de FileTable en la réplica principal, pero no en las réplicas secundarias legibles.

Prerrequisitos

Use nombres de red virtual (VNN) para el acceso de FILESTREAM y FileTable

Al habilitar FILESTREAM en una instancia de SQL Server, se crea un recurso compartido de nivel de instancia para proporcionar acceso a los datos de FILESTREAM. Puede obtener acceso a este recurso compartido mediante el nombre de equipo en el siguiente formato:

  • \\<computer_name>\<filestream_share_name>

Pero, en un grupo de disponibilidad AlwaysOn, el nombre del equipo está virtualizado con un nombre de red virtual (VNN). Si el equipo es la replicación primaria de un grupo de disponibilidad y las bases de datos del grupo de disponibilidad contienen datos de FILESTREAM, también se crea un recurso compartido de ámbito de VNN para proporcionar acceso a los datos de FILESTREAM. Esto no afecta al acceso de Transact-SQL a los datos de FILESTREAM. Sin embargo, las aplicaciones que usan las API del sistema de archivos tienen que utilizar el recurso compartido de ámbito de VNN, que tiene una ruta de acceso con el siguiente formato:

  • \\<VNN>\<filestream_share_name>

Se crea este recurso compartido de ámbito de VNN cuando tiene lugar uno de los siguientes eventos.

  • Agrega una base de datos que contiene datos de FILESTREAM a un grupo de disponibilidad AlwaysOn de la replicación principal. En este caso, el recurso compartido \\<computer_name>\<filestream_share_name> ya existe. Se crea el recurso compartido \\<VNN>\<filestream_share_name> .

  • Habilita FILESTREAM para el acceso de transmisión por secuencias de E/S de archivo en una replicación primaria que incluye grupos de disponibilidad. Se crean los siguientes recursos compartidos:

    1. \\<computer_name>\<filestream_share_name>.
    2. \\<VNN1>\<filestream_share_name> para el grupo de disponibilidad 1.
    3. \\<VNN2>\<filestream_share_name> para el grupo de disponibilidad 2.

Estos recursos compartidos de ámbito de VNN también se propagan a todas las réplicas secundarias.

Si la base de datos que contiene datos de FILESTREAM o FileTable pertenece a un grupo de disponibilidad AlwaysOn:

  • Las funciones FILESTREAM y FileTable aceptan o devuelven nombres de red virtual (VNN) en lugar de nombres de equipo. Para más información sobre estas funciones, consulte Funciones FILESTREAM y FileTable (Transact-SQL).

  • Todo acceso a los datos de FILESTREAM o FileTable a través de las API del sistema de archivos debe utilizar VNN en lugar de nombres de equipo.

Si la aplicación intenta tener acceso al recurso compartido mediante el nombre del equipo en formato \\<computer_name>\<filestream_share_name> cuando la base de datos forma parte de un grupo de disponibilidad, se genera un error.

Si la aplicación intenta tener acceso al recurso compartido con una ruta de acceso de ámbito de VNN cuando la base de datos no forma parte de un grupo de disponibilidad, la solicitud puede realizarse correctamente. En este caso, el nombre de red virtual se resuelve en el nombre de equipo. Sin embargo, este uso no se recomienda en absoluto, ya que la ruta de acceso de ámbito de VNN deja de funcionar si se quita el grupo de disponibilidad.