Usare FILESTREAM e FileTable con i gruppi di disponibilità Always On

Si applica a: SQL Server - Solo Windows

Questo articolo contiene informazioni su come usare le funzionalità FILESTREAM e FileTable con i gruppi di disponibilità AlwaysOn in SQL Server.

Tutte le funzionalità FILESTREAM sono supportate. Dopo un failover, i dati FILESTREAM sono accessibili sia nelle repliche secondarie leggibili sia nella nuova primaria.

La funzionalità FileTable è supportata parzialmente. Dopo un failover, i dati FileTable sono accessibili nella replica primaria, ma non nelle repliche secondarie leggibili.

Prerequisiti

Utilizzare nomi di rete virtuale per FILESTREAM e accesso a FileTable

Quando si abilita FILESTREAM su un'istanza di SQL Server, viene creata una condivisione del livello di istanza per fornire l'accesso ai dati FILESTREAM. Si accede a questa condivisione tramite il nome computer nel formato seguente:

  • \\<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. 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. Non influisce sull'accesso Transact-SQL ai dati FILESTREAM. 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:

  • \\<VNN>\<filestream_share_name>

Questa condivisione con ambito VNN viene creata quando si verifica uno degli eventi seguenti.

  • Quando si aggiunge un database che contiene dati FILESTREAM a un gruppo di disponibilità AlwaysOn sulla replica primaria. In questo caso, la condivisione \\<computer_name>\<filestream_share_name> già esiste. Viene creata la condivisione \\<VNN>\<filestream_share_name> .

  • Si abilita FILESTREAM per il file i/o o si trasmette l'accesso su una replica primaria che dispone di gruppi di disponibilità. Vengono create le seguenti condivisioni:

    1. \\<computer_name>\<filestream_share_name>.
    2. \\<VNN1>\<filestream_share_name> per il gruppo di disponibilità 1.
    3. \\<VNN2>\<filestream_share_name> per il gruppo di disponibilità 2.

Queste condivisioni con ambito VNN vengono propagate anche in tutte le repliche secondarie.

Quando il database che contiene dati FILESTREAM o FileTable appartiene a un gruppo di disponibilità AlwaysOn:

  • Le funzioni FILESTREAM e FileTable accettano o restituiscono nomi di rete virtuale anziché nomi computer. Per altre informazioni su queste funzioni, vedere Funzioni FileStream e FileTable (Transact-SQL).

  • Ogni accesso a dati FILESTREAM o FileTable tramite le API del file system deve utilizzare VNN anziché nomi computer.

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.

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. In questo caso, il nome della rete virtuale viene risolto nel nome computer. Questo utilizzo è tuttavia sconsigliato vivamente, poiché il percorso con ambito VNN smetterà di funzionare se viene rilasciato il gruppo di disponibilità.