[SQL Server] Réseau : présentation des différents protocoles

Ce billet présente brièvement les différents protocoles réseaux utilisés par SQL Server.

Utilité des protocoles réseaux de SQL Server

Afin de se connecter à une instance SQL Server, il est important d’activer au minimum un protocole réseau nativement intégré à SQL Server.

SQL Server offre la possibilité de se connecter à travers différents protocoles :

  • La mémoire partagée (Shared Memory), qui est le protocole le plus simple à utiliser. Et vu que les clients utilisant ce protocole peuvent se connecter à une instance SQL Server tournant sur la même machine (i.e., localement), il est donc inutile pour toute activité de bases de données.
  • Le protocole TCP/IP, qui est le plus populaire et le plus utilisé, puisqu’il permet à une instance SQL Server de communiquer à travers tout le réseau (dans la mesure du possible).
  • Les canaux nommés (Named Pipes), qui sont un protocole développé pour les réseaux LAN.
  • VIA (ou Virtual Interface Adapter) qui permet de travailler avec les réseaux SAN.

Quel(s) protocole(s) réseau(x) activer ?

Une bonne pratique générale consiste à désactiver VIA (car obsolète, et supprimé après SQL Server 2008 R2), et d’activer tous les autres protocoles, vu que les avantages d’un protocole donné peut compenser les inconvénients d’un autre.

Ainsi, par exemple, pour des raisons de performances et/ou facilité d’accès:

  • Le protocole TCP/IP est préférable au sein d’un réseau très lent, qu’il s’agisse d’un LAN, d’un WAN,… car est les transmissions de données sont beaucoup plus rationnalisées et moins « chargées ».
  • Les canaux nommés sont à privilégier dans le cas où la vitesse d’un réseau n’est pas un problème, dans la mesure où ce protocole offre plus de fonctionnalités pour MSSQL que le protocole TCP/IP (i.e., interactivité,…).
  • La mémoire partagée peut être activée si l’on suspecte les autres protocoles d’être mal configurés.

A noter qu’activer tous ces protocoles simultanément n’est pas un problème. Et en outre, si vous souhaitez savoir quel le protocole actuellement utilisé par votre connexion courante à SQL Server, vous pouvez lancer la requête suivante :

SELECT client_net_address,
     protocol_type,
     client_tcp_port,
     connect_time,
     net_transport,
     local_net_address,
     local_tcp_port
FROM sys.dm_exec_connections
WHERE session_id = @@SPID
GO

Pour aller plus loin…

Depuis la version 2005 de SQL Server, les protocoles réseaux sont gérables au sein de l’outil SQL Server Configuration Manager (accessible soit dans le menu Démarrer, soit en tapant dans l’invite de commandes Windows ou Powershell : sqlservermanager.msc pour SQL Server 2005, sqlservermanager10.msc pour sa version 2008 (R2), sqlservermanager11.msc pour la 2012…). Pour avoir un exemple de configuration des protocoles réseaux de SQL Server, vous pouvez aller ici. Pour l’anecdote, avant SQL Server 2005, les protocoles réseaux étaient gérables via 2 outils en guise d’interfaces de configuration: une pour le(s) client(s), une pour le serveur (SQL Server, en l’occurrence).

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s