Installazione di SQL Server con l'opzione di archiviazione su condivisione file SMB

A partire da SQL Server 2012, i database di sistema (Master, Model, MSDB e TempDB) e i database utente del motore di database possono essere installati con il file server Server Message Block (SMB) 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 di 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 (https://go.microsoft.com/fwlink/?LinkId=245534).

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 riportati di seguito non sono supportati:

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

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

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

  • Unità di rete su cui è stato eseguito il mapping

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 (Transact-SQL di SQL Server)

  2. ALTER DATABASE (Transact-SQL)

  3. RESTORE (Transact-SQL)

  4. BACKUP (Transact-SQL)

  5. sp_attach_db (Transact-SQL)

  6. sp_attach_single_file_db (Transact-SQL)

Opzione 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  
    

    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'utilizzo di varie opzioni dei parametri della riga di comando in SQL Server 2014, vedere Installare SQL Server 2014 dal prompt dei comandi.

Considerazioni sul sistema operativo (protocollo SMB e SQL Server)

Diversi sistemi operativi Windows hanno versioni diverse del protocollo SMB e la versione del protocollo SMB è trasparente per SQL Server. È possibile trovare i vantaggi delle diverse versioni del protocollo SMB rispetto a SQL Server 2014.

Sistema operativo Versione del protocollo SMB2 Vantaggi per 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 su come abilitare 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://go.microsoft.com/fwlink/?LinkId=237320).
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 relative alla 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 FULL CONTROL e le autorizzazioni NTFS per le cartelle di condivisione SMB devono essere limitate a: SQL Server account del servizio, account del servizio SQL Server Agent e utenti di Windows con ruoli del server di amministrazione.

    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:< domain_name computer_name>\<>$.

    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 <domain_name computer_name>\<>$.
  • L'account usato per installare SQL Server deve disporre delle autorizzazioni FULL CONTROL per la cartella di condivisione file SMB usata come directory dati o qualsiasi altra cartella dati (directory del database utente, directory del log del database utente, directory tempDB, directory di log tempDB, directory di backup) durante il programma di installazione del cluster.

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

Problemi noti

  • Dopo aver scollegato un database SQL Server 2014 che si trova nella risorsa di archiviazione collegata alla rete, è possibile che si verifichi un problema di autorizzazione del database durante il tentativo di ricollegare il database SQL Server. Il problema è definito in questo articolo della Knowledge Base (https://go.microsoft.com/fwlink/?LinkId=237321). Per evitarlo, vedere la sezione relativa a ulteriori informazioni nell'articolo della Knowledge Base.

  • Alcune terze parti, ad esempio i dispositivi NetApp, non supportano tutte le chiamate all'API di SQL Server. Con questi è possibile ottenere:
    2015-06-04 13:14:19.97 spid9s Error: 17053, Severity: 16, State: 1.
    2015-06-04 13:14:19.97 spid9s DoDevIoCtlOut() GetOverlappedResult() : Errore del sistema operativo 1(Funzione non corretta).

    Per NTFS, questo errore non provoca problemi, ma per ReFS può provocare una riduzione significativa delle prestazioni.

  • 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';  
      

Vedere anche

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