Installare SQL Server con l'archiviazione su condivisione file SMB

Si applica a: SQL Server - solo Windows

A partire da SQL Server 2012 (11.x) i database di sistema (master, model, msdb e tempdb) e i database utente del motore di database possono essere installati con il file server SMB (Server Message Block) come opzione di archiviazione. Si applica sia all'installazione autonoma di SQL Server che all'installazione del cluster di failover di SQL Server.

Nota

Filestream non è attualmente supportato in una condivisione file SMB.

Considerazioni sull'installazione

Formati di condivisione file SMB:

Quando si specifica la condivisione file SMB, sono supportati i seguenti formati di percorso UNC (Universal Naming Convention) per database autonomi e dell'istanza del cluster di failover:

  • \\NomeServer\NomeCondivisione\

  • \NomeServer\NomeCondivisione\

Per altre informazioni su Universal Naming Convention, vedere UNC.

Il percorso UNC del loopback (percorso UNC il cui nome del server è localhost, 127.0.0.1 o il nome del computer locale) non è supportato. In un caso speciale, non è supportato neanche SQL Server in cui viene usato il cluster di file server ospitato nello stesso nodo eseguito da SQL Server. Per evitare questa situazione, è consigliabile che SQL Server e il cluster di file server vengano creati in cluster Windows separati.

I formati di percorso UNC seguenti non sono supportati:

  • Percorso del loopback, ad esempio \\localhost\...\ o \\127.0.0.1\...\

  • Condivisioni amministrative, ad esempio \\servername\x$

  • Altri formati di percorso UNC come \\?\x:\

  • Unità di rete mappate

Istruzioni DDL (Data Definition Language) supportate

Le istruzioni DDL di Transact-SQL e le stored procedure del motore di database seguenti supportano le condivisioni file SMB:

  1. CREATE DATABASE (SQL Server Transact-SQL)

  2. ALTER DATABASE (Transact-SQL)

  3. RESTORE (Transact-SQL)

  4. BACKUP (Transact-SQL)

Opzioni di installazione

  • Nella scheda "Directory dati" della pagina "Configurazione del motore di database" dell'interfaccia utente del programma di installazione impostare il parametro "Directory radice dati" su "\\fileserver1\share1".

  • Nell'installazione del prompt dei comandi, specificare "/INSTALLSQLDATADIR" come "\\fileserver1\share1".

    Di seguito è riportata la sintassi di esempio per installare SQL Server in un server autonomo utilizzando l'opzione di condivisione file SMB:

    Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<StrongPassword>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<StrongPassword>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /IACCEPTSQLSERVERLICENSETERMS  
    

    A partire da SQL Server 2022 (16.x), leggere le Condizioni di licenza software di Microsoft SQL Server in aka.ms/useterms.

    Per installare un'istanza del cluster di failover di SQL Server a nodo singolo con il motore di database e Analysis Services, istanza predefinita:

    setup.exe /q /ACTION=InstallFailoverCluster /InstanceName=MSSQLSERVER /INDICATEPROGRESS /ASSYSADMINACCOUNTS="<DomainName\UserName>" /ASDATADIR=<Drive>:\OLAP\Data /ASLOGDIR=<Drive>:\OLAP\Log /ASBACKUPDIR=<Drive>:\OLAP\Backup /ASCONFIGDIR=<Drive>:\OLAP\Config /ASTEMPDIR=<Drive>:\OLAP\Temp /FAILOVERCLUSTERDISKS="<Cluster Disk Resource Name - for example, 'Disk S:'" /FAILOVERCLUSTERNETWORKNAME="<Insert Network Name>" /FAILOVERCLUSTERIPADDRESSES="IPv4;xx.xxx.xx.xx;Cluster Network;xxx.xxx.xxx.x" /FAILOVERCLUSTERGROUP="MSSQLSERVER" /Features=AS,SQL /ASSVCACCOUNT="<DomainName\UserName>" /ASSVCPASSWORD="xxxxxxxxxxx" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="xxxxxxxxxxx" /INSTALLSQLDATADIR="\\FileServer\Share1\" /SQLCOLLATION="SQL_Latin1_General_CP1_CS_AS" /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="xxxxxxxxxxx" /SQLSYSADMINACCOUNTS="<DomainName\UserName> /IACCEPTSQLSERVERLICENSETERMS  
    

    Per altre informazioni sull'uso di varie opzioni per i parametri della riga di comando in SQL Server, vedere Installare SQL Server 2016 dal prompt dei comandi.

Considerazioni sul sistema operativo (protocollo SMB e SQL Server)

Sistemi operativi Windows diversi dispongono di versioni diverse del protocollo SMB e la versione del protocollo SMB è trasparente a SQL Server. È possibile individuare i vantaggi delle varie versioni del protocollo SMB in relazione a SQL Server.

Sistema operativo Versione del protocollo SMB2 Vantaggi di SQL Server
Windows Server 2008 SP 2 2.0 Prestazioni migliorate rispetto a versioni precedenti di SMB.

Durabilità, che consente il recupero da problemi di rete temporanei.
Windows Server 2008 R2 SP 1, incluso Server Core 2.1 Supporto per MTU di grandi dimensioni che consente il trasferimento di grandi quantità di dati, ad esempio per le operazioni di backup e di ripristino di SQL. Questa funzionalità deve essere abilitata dall'utente. Per altre informazioni sull'abilitazione di questa funzionalità, vedere Novità di SMB (https://go.microsoft.com/fwlink/?LinkID=237319).

Significativi miglioramenti nelle prestazioni, in particolare per i carichi di lavoro di tipo OLTP di SQL. Questi miglioramenti delle prestazioni richiedono l'applicazione di un hotfix. Per altre informazioni sull'hotfix, vedere questo articolo (https://mskb.pkisolutions.com/kb/2536493).
Windows Server 2012, incluso Server Core 3.0 Supporto per il failover trasparente delle condivisioni file che garantisce tempi di inattività ridotti a zero senza interventi dell'amministratore del DBA SQL o del file server nelle configurazioni di cluster di file server.

Supporto per IO che utilizzano più interfacce di rete simultaneamente e tolleranza agli errori dell'interfaccia di rete.

Supporto per interfacce di rete con funzionalità RDMA.

Per altre informazioni su queste funzionalità e su Server Message Block, vedere Panoramica di Server Message Block (https://go.microsoft.com/fwlink/?LinkId=253174).

Supporto per File server di scalabilità orizzontale (SoFS) con disponibilità continua.
Windows Server 2012 R2, incluso Server Core 3.2 Supporto per il failover trasparente delle condivisioni file che garantisce tempi di inattività ridotti a zero senza interventi dell'amministratore del DBA SQL o del file server nelle configurazioni di cluster di file server.

Supporto per IO che utilizzano più interfacce di rete simultaneamente e tolleranza agli errori dell'interfaccia di rete tramite SMB multicanale.

Supporto per interfacce di rete con funzionalità RDMA tramite SMB diretto.

Per altre informazioni su queste funzionalità e su Server Message Block, vedere Panoramica di Server Message Block (https://go.microsoft.com/fwlink/?LinkId=253174).

Supporto per File server di scalabilità orizzontale (SoFS) con disponibilità continua.

Ottimizzato per piccole operazioni I/O di lettura/scrittura casuali comuni per SQL Server OLTP.

L'unità massima di trasmissione (MTU) è abilitata per impostazione predefinita per migliorare significativamente le prestazioni nei trasferimenti sequenziali di grandi dimensioni come il ripristino o il backup del database e il data warehouse di SQL Server.

Considerazioni sulla sicurezza

  • Gli account dei servizi SQL Server e SQL Server Agent devono disporre di autorizzazioni di condivisione di controllo completo e di autorizzazioni NTFS sulle cartelle condivise SMB. L'account del servizio SQL Server può essere un account di dominio o di sistema quando si usa un file server SMB. Per altre informazioni sulle autorizzazioni NTFS e di condivisione, vedere Autorizzazioni NTFS e di condivisione in un file server (https://go.microsoft.com/fwlink/?LinkId=245535).

    Nota

    Le autorizzazioni di condivisione Controllo completo e le autorizzazioni NTFS sulle cartelle condivise SMB devono essere limitate a: account del servizio SQL Server, account del servizio SQL Server Agent e utenti di Windows con ruoli di amministratore del server.

    Si consiglia di usare un account di dominio come account del servizio SQL Server. Se l'account di sistema viene usato come account del servizio, concedere le autorizzazioni per l'account del computer nel formato: <nome_dominio>\<nome_computer>*$*.

    Nota

    Durante l'installazione di SQL Server, è necessario specificare l'account di dominio come account del servizio se la condivisione file SMB viene specificata come opzione di archiviazione. Con le condivisioni file SMB, è possibile specificare l'account di sistema come account del servizio solo dopo l'installazione di SQL Server.

    Gli account virtuali non possono essere autenticati a un percorso remoto. Per tutti gli account virtuali viene usata l'autorizzazione dell'account del computer. Effettuare il provisioning dell'account del computer nel formato <nome_dominio>\<nome_computer>*$*.

  • L'account usato per installare SQL Server deve disporre di autorizzazioni FULL CONTROL sulla cartella della condivisione file SMB usata come directory dei dati o su qualsiasi altra cartella dei dati (directory del database utente, directory del log del database utente, directory tempdb, directory del log tempdb, directory di backup) durante l'installazione del cluster.

  • È necessario che all'account usato per installare SQL Server venga concesso il privilegio SeSecurityPrivilege nel file server SMB. Per concedere questo privilegio, usare la console Criteri di sicurezza locali nel file server per aggiungere l'account di installazione di SQL Server ai criteri Gestione dei log di controllo e di sicurezza. Questa impostazione è disponibile nella sezione Assegnazione diritti utente in Criteri locali nella console Criteri di sicurezza locale.

Problemi noti e limitazioni

  • Dopo avere scollegato un database SQL Server che si trova in un archivio collegato alla rete, è possibile che si verifichino problemi di autorizzazione del database durante il tentativo di ricollegare il database SQL Server. Per altre informazioni, vedere Errore 5120.

  • Se la condivisione file SMB viene usata come opzione di archiviazione per un'istanza cluster di SQL Server, per impostazione predefinita il log di diagnostica del cluster di failover di SQL Server non può essere scritto nella condivisione file perché la DLL risorse di SQL Server non dispone di autorizzazioni di lettura/scrittura in una condivisione file. Per risolvere il problema, tentare uno dei metodi seguenti:

    1. Concedere autorizzazioni di lettura/scrittura in una condivisione file a tutti gli oggetti computer del cluster.

    2. Impostare il percorso dei log di diagnostica su un percorso file locale. Vedere l'esempio seguente:

      ALTER SERVER CONFIGURATION  
      SET DIAGNOSTICS LOG PATH = 'C:\logs';  
      
  • Quando si ospitano i file di dati di SQL Server nelle condivisioni file SMB, tutte le attività di I/O sui file verranno gestite nell'interfaccia di rete del server o della macchina virtuale. Assicurarsi che la larghezza di banda di rete sia sufficiente per supportare le attività di I/O richieste dal carico di lavoro.

  • Se la condivisione file che ospita i file di dati di SQL Server non è disponibile per problemi di connettività della rete o altri errori, potrebbe verificarsi un ritardo di I/O o un errore in SQL Server. Per i carichi di lavoro cruciali, assicurarsi che la ridondanza sia integrata nella rete e nella condivisione file e che la condivisione file supporti il failover trasparente SMB 3.0, noto anche come disponibilità continua.

Vedi anche

Pianificazione di un'installazione di SQL Server
Configurare account di servizio e autorizzazioni di Windows