Installer SQL Server avec le partage de fichiers SMB en tant qu'option de stockage

À compter de SQL Server 2012, les bases de données système (Master, Model, MSDB et TempDB) et les bases de données utilisateur du moteur de base de données peuvent être installées avec le serveur de fichiers SMB (Server Message Block) comme option de stockage. Cela s'applique à la fois aux installations autonomes SQL Server et aux installations de cluster de basculement (FCI) SQL Server .

Notes

Le flux de fichier n'est pas pris en charge actuellement sur un partage de fichiers SMB.

Considérations relatives à l'installation

Formats de partage de fichiers SMB :

Lors de la spécification du partage de fichiers SMB, ce qui suit correspond à des formats de chemin d'accès UNC (Universal Naming Convention) pris en charge pour les bases de données autonomes et FCI :

  • \\ServerName\ShareName\

  • \\ServerName\ShareName

Pour plus d’informations sur la convention de nommage universel, consultez UNC (https://go.microsoft.com/fwlink/?LinkId=245534).

Le chemin d'accès UNC de bouclage (chemin d'accès UNC dont le nom du serveur est localhost, 127.0.0.1 ou le nom d'ordinateur local) n'est pas pris en charge. Exemple de cas particulier : SQL Server utilisant le cluster du serveur de fichiers qui est hébergé sur le même nœud sur lequel SQL Server est en cours d'exécution n'est pas non plus pris en charge. Pour éviter cette situation, il est recommandé de créer SQL Server et un cluster de serveur de fichiers sur des clusters Windows distincts.

Les formats de chemin UNC ci-dessous ne sont pas pris en charge :

  • Chemin de bouclage, par exemple \\localhost\..\ ou \\127.0.0.1\...\

  • Partages administratifs, par exemple, \\nomserveur\x$

  • Autres formats de chemin UNC tels que \\?\x:\

  • Lecteurs réseau mappés.

Instructions DDL (Data Definition Language) prises en charge

Les instructions Transact-SQL DDL et les procédures stockées du moteur de base de données suivantes prennent en charge les partages de fichiers SMB :

  1. CREATE DATABASE (SQL Server Transact-SQL)

  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)

Options d'installation

  • Dans la page « Configuration du moteur de base de données » de l’interface utilisateur de l’installation, sous l’onglet « Répertoires de données », affectez au paramètre « Répertoire de données racine » la valeur « \\fileserver1\share1 ».

  • Dans l’installation à partir de l’invite de commandes, affectez à « /INSTALLSQLDATADIR » la valeur « \\fileserver1\share1 ».

    Voici l'exemple de syntaxe qui permet d'installer SQL Server sur un serveur autonome à l'aide de l'option de partage de fichiers 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  
    

    Pour installer une instance du cluster de basculement SQL Server à nœud unique avec l'instance par défaut du Moteur de base de données et d' Analysis Services:

    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  
    

    Pour plus d’informations sur l’utilisation de différentes options de paramètres de ligne de commande dans SQL Server 2014, consultez Installer SQL Server 2014 à partir de l’invite de commandes.

Considérations relatives au système d’exploitation (protocole SMB et SQL Server)

Différents systèmes d’exploitation Windows ont différentes versions de protocole SMB, et la version du protocole SMB est transparente pour SQL Server. Vous trouverez les avantages des différentes versions de protocole SMB par rapport à SQL Server 2014.

Système d’exploitation Version de protocole SMB2 Avantages de SQL Server
Windows Server 2008 SP 2 2.0 Performances améliorées par rapport aux versions SMB précédentes.

Durabilité, ce qui aide à la récupération lors de problèmes temporaires du réseau.
Windows Server 2008 R2 SP 1, comprenant Server Core 2.1 Prise en charge de MTU volumineuses, ce qui profite aux transferts de données volumineux, par exemple lors d'opérations de sauvegarde et de restauration SQL. Cette fonction doit être activée par l'utilisateur. Pour plus d’informations sur l’activation de cette fonctionnalité, consultez Nouveautés de SMB (https://go.microsoft.com/fwlink/?LinkID=237319).

Améliorations significatives des performances, en particulier pour les charges de travail de style SQL OLTP. Ces améliorations de performances requièrent l'application d'un correctif. Pour plus d’informations sur le correctif logiciel, consultez cet article (https://go.microsoft.com/fwlink/?LinkId=237320).
Windows Server 2012, comprenant Server Core 3.0 Prise en charge du basculement transparent des partages de fichiers ce qui évite tout temps d'arrêt, sans intervention nécessaire de l'administrateur de la base de données SQL ou l'administrateur du serveur de fichiers dans les configurations de cluster de serveurs de fichiers.

Prise en charge d'E/S dans plusieurs interfaces réseau simultanément, ainsi que tolérance à la défaillance de l'interface réseau.

Prise en charge des interfaces réseau avec fonctions RDMA.

Pour plus d’informations sur ces fonctionnalités et le protocole SMB, consultez Vue d’ensemble du protocole SMB (https://go.microsoft.com/fwlink/?LinkId=253174).

Prise en charge de Scale Out File Server (SoFS) avec disponibilité continue.
Windows Server 2012 R2, comprenant Server Core 3.2 Prise en charge du basculement transparent des partages de fichiers ce qui évite tout temps d'arrêt, sans intervention nécessaire de l'administrateur de la base de données SQL ou l'administrateur du serveur de fichiers dans les configurations de cluster de serveurs de fichiers.

Prise en charge d'E/S dans plusieurs interfaces réseau simultanément, ainsi que tolérance à la défaillance de l'interface réseau, à l'aide de SMB Multichannel.

Prise en charge des interfaces réseau avec fonctions RDMA à l'aide de SMB Direct.

Pour plus d’informations sur ces fonctionnalités et le protocole SMB, consultez Vue d’ensemble du protocole SMB (https://go.microsoft.com/fwlink/?LinkId=253174).

Prise en charge de Scale Out File Server (SoFS) avec disponibilité continue.

Optimisé pour les E/S de lecture/écriture de petite taille courantes sur OLTP SQL Server .

MTU (Maximum Transmission Unit) est activé par défaut, ce qui améliore grandement les performances lors des transferts séquentiels de grande taille comme pour l'entrepôt de données SQL Server et la sauvegarde et la restauration de base de données.

Considérations relatives à la sécurité

  • Le compte de service SQL Server et le compte de service de l'agent SQL Server doivent disposer des autorisations de partage FULL CONTROL et des autorisations NTFS sur les dossiers de partage SMB. Le compte de service SQL Server peut être un compte de domaine ou un compte système si un serveur de fichiers SMB est utilisé. Pour plus d’informations sur les autorisations de partage et NTFS, consultez Autorisations de partage et NTFS sur un serveur de fichiers (https://go.microsoft.com/fwlink/?LinkId=245535).

    Notes

    Les autorisations de partage FULL CONTROL et les autorisations NTFS sur les dossiers de partage SMB doivent être limitées à : SQL Server compte de service, SQL Server Agent compte de service et les utilisateurs Windows avec des rôles de serveur d’administration.

    Il est recommandé d'utiliser le compte de domaine en tant que compte de service SQL Server. Si le compte système est utilisé comme compte de service, accordez les autorisations pour le compte d’ordinateur au format : <domain_name>\<computer_name>$.

    Notes

    • Pendant l'installation de SQL Server, vous devez spécifier le compte de domaine en tant que compte de service si le partage de fichiers SMB est indiqué comme option de stockage. Avec le partage de fichiers SMB, le compte système peut être spécifié comme compte de service après l'installation de SQL Server .
    • Les comptes virtuels ne peuvent pas être authentifiés sur un emplacement distant. Tous les comptes virtuels utilisent l'autorisation de compte d'ordinateur. Configurez le compte d’ordinateur au format <nom_domaine>\<computer_name>$.
  • Le compte utilisé pour installer SQL Server doit disposer des autorisations FULL CONTROL sur le dossier de partage de fichiers SMB utilisé comme répertoire de données ou tout autre dossier de données (répertoire de base de données utilisateur, répertoire du journal de base de données utilisateur, répertoire TempDB, répertoire du journal TempDB, répertoire de sauvegarde) pendant l’installation du cluster.

  • Des privilèges SeSecurityPrivilege sur le serveur de fichiers SMB doivent être accordés au compte utilisé pour installer SQL Server . Pour accorder ce privilège, utilisez la console de stratégie de sécurité locale sur le serveur de fichiers pour ajouter le compte utilisé pour l'installation de SQL Server à la stratégie Gérer le journal d'audit et de la sécurité. Ce paramètre est disponible dans la section Attribution des droits utilisateur sous Stratégies locales dans la console Stratégie de sécurité locale.

Problèmes connus

  • Une fois que vous avez détaché une base de données SQL Server 2014 qui réside sur un stockage attaché au réseau, vous risquez de créer un problème d’autorisation de base de données lors de la tentative de rattachement de la base de données SQL Server. Le problème est défini dans cet article de la base de connaissances (https://go.microsoft.com/fwlink/?LinkId=237321). Pour le contourner, consultez la section Plus d'informations dans l'article de la Base de connaissances.

  • Certains tiers, tels que NetApp, ne gèrent pas tous les appels d'API SQL Server. Avec ceux-ci, vous pouvez obtenir :
    2015-06-04 13:14:19.97 spid9s Erreur : 17053, Gravité : 16, État : 1.
    2015-06-04 13:14:19.97 spid9s DoDevIoCtlOut() GetOverlappedResult() : erreur du système d’exploitation 1 (Fonction incorrecte.) rencontrée.

    Pour NTFS, l'erreur est sans conséquence. Par contre, pour ReFS, elle peut entraîner une dégradation significative des performances.

  • Si un partage de fichiers SMB est utilisé comme option de stockage pour une instance cluster de SQL Server, par défaut le journal de diagnostic du cluster de basculement SQL Server ne peut pas être écrit dans le partage de fichiers car la DLL Resource de SQL Server ne dispose pas des autorisations de lecture/écriture sur le partage de fichiers. Pour résoudre ce problème, essayez l'une des opérations suivantes :

    1. Accordez des autorisations de lecture/écriture sur le partage de fichiers à tous les objets ordinateur dans le cluster.

    2. Définissez l'emplacement des journaux de diagnostics dans un chemin d'accès local. Voir l’exemple suivant :

      ALTER SERVER CONFIGURATION  
      SET DIAGNOSTICS LOG PATH = 'C:\logs';  
      

Voir aussi

Planification d'une installation SQL Server
Rubriques de procédures relatives à l'installation
Configurer les comptes de service Windows et les autorisations