Partager via


Installer SQL Server avec le stockage de partage de fichiers SMB

S’applique à :SQL Server - Windows uniquement

Dans SQL Server 2012 (11.x) et versions ultérieures, 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 un serveur de fichiers SMB (Server Message Block) comme option de stockage. Ceci s’applique à la fois aux installations de SQL Server autonomes et aux installations de cluster de basculement (FCI) SQL Server.

Remarque

FILESTREAM n’est actuellement pas pris en charge sur un partage de fichiers SMB.

Considérations relatives à l’installation

Formats de partage de fichiers SMB

Lorsque vous spécifiez le partage de fichiers SMB, les valeurs suivantes sont prises en charge pour les formats de chemin d’accès UNC (Universal Naming Convention) pour les bases de données autonomes et FCI :

  • \\ServerName\ShareName\
  • \\ServerName\ShareName

Pour plus d’informations, consultez Universal Naming Convention.

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. En tant que cas spécial, SQL Server avec cluster de serveur de fichiers hébergé sur le même nœud que SQL Server n’est pas non plus pris en charge. Pour éviter cette situation, vous devez créer SQL Server et le cluster serveur de fichiers sur des clusters Windows séparés.

Les formats de chemin UNC suivants ne sont pas pris en charge :

  • Chemin de bouclage, tel que \\localhost\...\ ou \\127.0.0.1\...\
  • Partages d’administration, tels que \\servername\x$
  • Autres formats de chemin UNC tels que \\?\x:\
  • Lecteurs réseau mappés

Instructions de langage de définition de données (DDL) 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. CRÉER BASE DE DONNÉES
  2. MODIFIER BASE DE DONNÉES
  3. Instructions RESTORE
  4. SAUVEGARDE

Options d'installation

  • Dans l’interface utilisateur de configuration, sur la page Configuration du moteur de base de données, dans l’onglet Répertoires de données, définissez le paramètre Répertoire racine de données sur \\<FileServer>\<Share1>\. Remplacez <FileServer> et <Share1> par des valeurs de votre environnement.

  • Dans l’installation de l’invite de commandes, spécifiez /INSTALLSQLDATADIR comme \\<FileServer>\<Share1>\.

    Voici l’exemple de syntaxe permettant 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="<password>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<password>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /IACCEPTSQLSERVERLICENSETERMS
    

    Pour SQL Server 2022 (16.x) et versions ultérieures, lisez les termes du contrat de licence logiciel Microsoft SQL Server à aka.ms/useterms.

    Pour installer une instance de cluster de basculement SQL Server à un seul nœud avec le Moteur de base de données et Analysis Services (instance par défaut) :

    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="<password>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<password>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /SQLCOLLATION="SQL_Latin1_General_CP1_CS_AS" /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<password>" /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, consultez Installer et configurer SQL Server sur Windows à partir de l’invite de commandes.

Remarque

Vos mots de passe doivent suivre la stratégie de mot de passe par défaut SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.

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

Les différents systèmes d’exploitation Windows disposent de différentes versions du protocole SMB, et la version du protocole SMB est transparente pour SQL Server. Vous pouvez connaître les avantages des différentes versions de protocole SMB pour SQL Server.

Système d’exploitation Version de protocole SMB2 Avantages de SQL Server
Windows Server 2012 et versions ultérieures, notamment Server Core 3.0 Prise en charge du basculement transparent des partages de fichiers sans temps d’arrêt, sans qu’aucune intervention ne soit requise de la part de l’administrateur de la base de données ou du serveur de fichiers dans les configurations de cluster de serveur de fichiers.

Prise en charge des E/S avec plusieurs interfaces réseau simultanément et tolérance à l’échec de l’interface réseau.

Prise en charge des interfaces réseau avec fonctionnalités RDMA.

Pour plus d’informations sur ces fonctionnalités et sur le bloc de messages serveur, consultez la vue d’ensemble du bloc de messages du serveur.

Prise en charge du serveur de fichiers Scale-Out (SoFS) avec disponibilité continue.
Windows Server 2012 R2 et versions ultérieures, notamment Server Core 3.2 Prise en charge du basculement transparent des partages de fichiers sans temps d’arrêt, sans qu’aucune intervention ne soit requise de la part de l’administrateur de la base de données ou du serveur de fichiers dans les configurations de cluster de serveur de fichiers.

Prise en charge des E/S avec plusieurs interfaces réseau simultanément et de la tolérance à l’échec de l’interface réseau en utilisant 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 sur le bloc de messages serveur, consultez la vue d’ensemble du bloc de messages du serveur.

Prise en charge du serveur de fichiers Scale-Out (SoFS) avec disponibilité continue.

Optimisé pour les petites E/S de lecture/écriture aléatoires communes aux charges de travail SQL Server de style transactionnel.

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 FULL CONTROL d’autorisations de partage et d’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 le partage et les autorisations NTFS, consultez Partage et autorisations NTFS sur un serveur de fichiers.

    Remarque

    Les FULL CONTROL autorisations de partage et les autorisations NTFS sur les dossiers de partage SMB doivent être limitées au compte de service SQL Server, au compte de service SQL Server Agent et aux utilisateurs Windows disposant de rôles de serveur d’administrateur.

    Utilisez un compte de domaine comme 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>*$*.

    Remarque

    Lors de 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 spécifié comme option de stockage. Avec le partage de fichiers SMB, le System compte ne peut être spécifié qu’en tant que compte de service après l’installation de SQL Server.

    Les comptes virtuels ne peuvent pas être authentifiés à un emplacement distant. Tous les comptes virtuels utilisent l’autorisation du compte d’ordinateur. Approvisionnez le compte d’ordinateur au format <domain-name>\<computer-name>*$*.

  • Le compte utilisé pour installer SQL Server doit disposer d’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, tempdb répertoire, répertoire du journal tempdb, répertoire de sauvegarde) lors de l’installation du cluster.

  • Le compte utilisé pour installer SQL Server doit disposer SeSecurityPrivilege de privilèges sur le serveur de fichiers SMB. Pour accorder ce privilège, utilisez la console de stratégie de sécurité locale sur le serveur de fichiers pour ajouter le compte d’installation de SQL Server à la stratégie Gérer le journal d’audit et de sécurité. Ce paramètre est disponible dans la section Attributions de droits utilisateur sous Stratégies locales.

Problèmes connus et limitations

Après avoir détacher une base de données SQL Server qui réside sur le stockage attaché au réseau, vous risquez d’rencontrer des problèmes d’autorisation de base de données lors de la tentative de rattachement de la base de données SQL Server. Pour plus d’informations, consultez Erreur 5120.

Si le partage de fichiers SMB est utilisé comme option de stockage pour une instance en 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 des ressources SQL Server ne dispose pas d’autorisation 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';
    

Lorsque vous hébergez des fichiers de données SQL Server sur des partages de fichiers SMB, toutes les E/S sur les fichiers passent par l’interface réseau sur le serveur ou la machine virtuelle. Vérifiez qu’il existe suffisamment de bande passante réseau pour prendre en charge les E/S requises par la charge de travail.

L’indisponibilité du partage de fichiers hébergeant les fichiers de données SQL Server en raison de problèmes de connectivité réseau ou d’autres défaillances peut entraîner des retards ou des échecs d’E/S dans SQL Server. Pour les charges de travail stratégiques, assurez-vous qu’il existe une redondance intégrée au réseau et au partage de fichiers et que le partage de fichiers prend en charge le basculement transparent SMB 3.0, également appelé disponibilité continue.