FILESTREAM e FileTable con i gruppi di disponibilità AlwaysOn (SQL Server)FILESTREAM and FileTable with Always On Availability Groups (SQL Server)

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

In questo argomento sono contenute informazioni su come utilizzare le funzionalità FILESTREAM e FileTable con Gruppi di disponibilità Always OnAlways On availability groups in SQL Server 2017SQL Server 2017.This topic contains information about the using the FILESTREAM and FileTable features with Gruppi di disponibilità Always OnAlways On availability groups in SQL Server 2017SQL Server 2017.

Tutte le funzionalità FILESTREAM sono supportate.All FILESTREAM functionality is supported. Dopo un failover, i dati FILESTREAM sono accessibili sia nelle repliche secondarie leggibili sia nella nuova primaria.After a failover, FILESTREAM data is accessible on both readable secondary replicas and on the new primary.

La funzionalità FileTable è supportata parzialmente.FileTable functionality is partially supported. Dopo un failover, i dati FileTable sono accessibili nella replica primaria, ma non nelle repliche secondarie leggibili.After a failover, FileTable data is accessible on the primary replica, but FileTable data is not accessible on readable secondary replicas.

Contenuto dell'argomento:In this Topic:

PrerequisitiPrerequisites

  • Prima di aggiungere un database in cui è utilizzato FILESTREAM, con o senza FileTable, a un gruppo di disponibilità, verificare che FILESTREAM sia abilitato su ogni istanza del server in cui è ospitata una replica di disponibilità per il gruppo di disponibilità.Before adding a database that uses FILESTREAM, with or without FileTable, to an availability group, ensure that FILESTREAM is enabled on every server instance that hosts an availability replica for the availability group. Per altre informazioni, vedere Enable and Configure FILESTREAM.For more information, see Enable and Configure FILESTREAM.

Utilizzo di nomi di rete virtuale per FILESTREAM e accesso a FileTableUsing Virtual Network Names (VNNs) for FILESTREAM and FileTable Access

Quando si abilita FILESTREAM su un'istanza di SQL ServerSQL Server, viene creata una condivisione del livello di istanza per fornire l'accesso ai dati FILESTREAM.When you enable FILESTREAM on an instance of SQL ServerSQL Server, an instance-level share is created to provide access to the FILESTREAM data. Si accede a questa condivisione tramite il nome computer nel formato seguente:You access this share by using the computer name in the following format:

\\<computer_name>\<filestream_share_name>

In un gruppo di disponibilità AlwaysOn, tuttavia, il nome del computer è virtualizzato tramite un nome di rete virtuale o VNN.In an Always On availability group, however, the name of the computer is virtualized by using a Virtual Network Name, or VNN. Quando il computer è la replica primaria in un gruppo di disponibilità, e i database nel gruppo di disponibilità contengono dati FILESTREAM, allora viene creata anche una condivisione con ambito VNN per fornire l'accesso ai dati FILESTREAM.When the computer is the primary replica in an availability group, and databases in the availability group contain FILESTREAM data, then a VNN-scoped share is also created to provide access to the FILESTREAM data. Non influisce sull'accesso Transact-SQL ai dati FILESTREAM.This does not affect Transact-SQL access to FILESTREAM data. Nondimeno le applicazioni che utilizzano le API del file system devono utilizzare la condivisione con ambito VNN che ha un percorso con il formato seguente:However applications that use file system APIs have to use the VNN-scoped share, which has a path in the following format:

\\<VNN>\<filestream_share_name>

Questa condivisione con ambito VNN viene creata quando si verifica uno degli eventi seguenti.This VNN-scoped share is created when one of the following events occurs.

  • Quando si aggiunge un database che contiene dati FILESTREAM a un gruppo di disponibilità AlwaysOn sulla replica primaria.You add a database that contains FILESTREAM data to an Always On availability group on the primary replica. In questo caso, la condivisione \\<computer_name>\<filestream_share_name> già esiste.In this case, the share \\<computer_name>\<filestream_share_name> already exists. Viene creata la condivisione \\<VNN>\<filestream_share_name> .The share \\<VNN>\<filestream_share_name> is created.

  • Si abilita FILESTREAM per il file i/o o si trasmette l'accesso su una replica primaria che dispone di gruppi di disponibilità.You enable FILESTREAM for file i/o streaming access on a primary replica that has availability groups. Vengono create le seguenti condivisioni:The following shares are created:

    1. \\<computer_name>\<filestream_share_name>

    2. \\<VNN1>\<filestream_share_name> per il gruppo di disponibilità 1.\\<VNN1>\<filestream_share_name> for availability group 1.

    3. \\<VNN2>\<filestream_share_name> per il gruppo di disponibilità 2.\\<VNN2>\<filestream_share_name> for availability group 2.

    Queste condivisioni con ambito VNN vengono propagate anche in tutte le repliche secondarie.These VNN-scoped shares are also propagated to all secondary replicas.

    Quando il database che contiene dati FILESTREAM o FileTable appartiene a un gruppo di disponibilità AlwaysOn:When the database that contains FILESTREAM or FileTable data belongs to an Always On availability group:

  • Le funzioni FILESTREAM e FileTable accettano o restituiscono nomi di rete virtuale anziché nomi computer.The FILESTREAM and FileTable functions accept or return virtual network names (VNNs) instead of computer names. Per altre informazioni su queste funzioni, vedere Funzioni FileStream e FileTable (Transact-SQL).For more information about these functions, see Filestream and FileTable Functions (Transact-SQL).

  • Ogni accesso a dati FILESTREAM o FileTable tramite le API del file system deve utilizzare VNN anziché nomi computer.All access to FILESTREAM or FileTable data through the file system APIs should use VNNs instead of computer names.

    Se l'applicazione tenta di accedere alla condivisione tramite il nome computer in formato \\<computer_name>\<filestream_share_name> quando il database fa parte di un gruppo di disponibilità, allora viene generato un errore.If your application tries to access the share by using the computer name in the format \\<computer_name>\<filestream_share_name> when the database is part of an availability group, then an error is raised.

    Se l'applicazione tenta di accedere alla condivisione tramite un percorso con ambito VNN quando il database non fa parte di un gruppo di disponibilità, allora la richiesta potrebbe avere esito positivo.If your application tries to access the share by using a VNN-scoped path when the database is not part of an availability group, then the request may succeed. In questo caso, il nome della rete virtuale viene risolto nel nome computer.In this case, the virtual network name is resolved to the computer name. Questo utilizzo è tuttavia sconsigliato vivamente, poiché il percorso con ambito VNN smetterà di funzionare se viene rilasciato il gruppo di disponibilità.However this usage is strongly discouraged, since the VNN-scoped path will stop working if the availability group is dropped.

Attività correlateRelated Tasks

Contenuto correlatoRelated Content

nessuna.None.

Vedere ancheSee Also

Panoramica di Gruppi di disponibilità AlwaysOn (SQL Server)Overview of Always On Availability Groups (SQL Server)