mai
2012
Les applications ont elles besoin de connaitre le nom de l’instance sur laquelle leur base(s) de données tourne(nt) ?
La majorité du temps… Non! Elles se connectent sur un serveur et un port, retourné la plupart du temps par le Browser SQL Server dans le cas d’une instance nommée.
Il n’est pas rare de voir l’utilisation de CNames pour référencer un serveur spécifique pour une application. Un nom logique pour gagner la flexibilité de changer de serveur facilement en déplacant le pointeur du CName.
C’est bien mais… On traine malheureusement toujours le nom de l’instance ou le port de l’instance comme un boulet dans la configuration de l’application.
Reformulons maintenant ceci:
Elles se connectent sur un serveur et un port, retourné la plupart du temps par le Browser SQL Server dans le cas d’une instance nommée.
comme ceci:
Elles se connectent sur une combinaison adresse IP/Port (un socket), par défaut sur le port 1433, ou questionnent le browser pour connaitre le port de l’instance si 1433 ne répond pas ou si l’on a une instance nommée.
Cette reformulation prend du sens si l’on considère qu’un serveur peut répondre à 1 ou N adresses IP et qu’une instance SQL peut être configurée pour écouter sur une ou plusieures adresses IP/Port également.
Voici donc comment se débarrasser du nom de l’instance dans les chaines de connection des applications en quelques étapes:
– Demandez, par instance SQL Serveur, une IP dédiée (Voyez avec votre admin network!)
– Ajoutez l’IP dédiée à votre instance SQL aux propriétés IP de la carte réseau de votre serveur. (Control Panel -> Network and Internet -> Network and Sharing Center -> Local Area Connection -> Properties -> Internet Protocol Version 4 (TCP/IPv4) -> Properties -> Advanced -> Add)
– Configurer les propriétés TCP/IP de votre instance SQL via SQL Server Configuration Manager:
Listen All -> No
IP 1: Active Yes, Enabled Yes, IP address – l’adresse IP dédiée pour votre instance, TCP Dynamic Port Rien, TCP Port 1433
– Créez un a-record pointant vers votre adresse IP dédiée.
– Utilisz ce a-record dans vos applications pour vous connecter à votre instance.
Voila, le tour est joué.
Si vous souhaitez déplacer une base de données d’une instance à une autre pour une application en particulier (i.e: server1\instance1 vers server2\instance2), changez uniquement la reférence du a-record pour pointer vers l’IP de la nouvelle instance, plus besoin de modifier le nom de l’instance ou le port de celle-ci dans la connection string de votre application.
C’est un peu comme créer de simuler des instances par défaut avec des instances nommées.
D’un point de vue administration, vous pouvez toujours avoir des instances nommées et continuer comme avant
c’est juste ce que je cherche, mais comment on créé un a-record?
Cela se crée au niveau du serveur DNS.
Voici des procédures qui peuvent être suivies:
http://technet.microsoft.com/en-us/library/cc779029(v=ws.10).aspx
https://support.gearhost.com/KB/a302/add-records-to-dns-in-windows-2008.aspx