Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server sur la machine virtuelle Azure
Conseil
Il existe de nombreuses méthodes pour déployer un groupe de disponibilité. Simplifiez votre déploiement pour éviter d’utiliser un équilibreur de charge Azure ou un nom de réseau distribué (DNN) pour votre groupe de disponibilité Always On, et créez vos machines virtuelles SQL Server dans plusieurs sous-réseaux au sein du même réseau virtuel Azure. Si vous avez déjà créé votre groupe de disponibilité dans un seul sous-réseau, vous pouvez le migrer vers un environnement multi-sous-réseau.
Avec Microsoft SQL Server sur des machines virtuelles Azure dans un seul sous-réseau, le nom de réseau distribué (DNN) achemine le trafic vers la ressource en cluster appropriée. Il permet de se connecter plus facilement à un groupe de disponibilité Always On qu’avec l’écouteur de nom de réseau virtuel (VNN), sans avoir à utiliser Azure Load Balancer.
Cet article vous apprend à configurer un écouteur DNN pour remplacer l’écouteur VNN et à acheminer le trafic vers votre groupe de disponibilité avec Microsoft SQL Server sur des machines virtuelles Azure pour la haute disponibilité et la récupération d’urgence (HADR).
Pour une autre option de connectivité, utilisez plutôt un écouteur VNN et Azure Load Balancer.
Vue d’ensemble
Un écouteur DNN (Distributed Network Name) remplace l’écouteur du groupe de disponibilité VNN (nom de réseau virtuel traditionnel) lorsqu’il est utilisé avec des groupes de disponibilité Always On sur des machines virtuelles SQL Server. Cette configuration supprime la nécessité d'un équilibreur de charge Azure pour router le trafic, simplifiant le déploiement, la maintenance et améliorant le basculement.
Utilisez l’écouteur DNN pour remplacer un écouteur VNN existant. Vous pouvez également l’utiliser avec un écouteur VNN existant afin que votre groupe de disponibilité dispose de deux points de connexion distincts : l’un utilisant le nom de l’écouteur VNN (et le port s’il n’est pas défini par défaut) et l’autre en utilisant le nom et le port de l’écouteur DNN.
Attention
Le comportement du routage en cas d’utilisation d’un écouteur DNN est différent quand vous utilisez un écouteur VNN. N’utilisez pas le port 1433. Pour en savoir plus, consultez la section Considérations relatives au port, plus loin dans cet article.
Prérequis
Avant d’effectuer les étapes décrites dans cet article, vous devez déjà disposer des éléments suivants :
- SQL Server à partir de SQL Server 2019 CU8 et versions ultérieures, SQL Server 2017 CU25 et versions ultérieures, ou SQL Server 2016 SP3 et versions ultérieures sur Windows Server 2016 et versions ultérieures.
- Avoir décidé que le nom du réseau distribué est l’option de connectivité appropriée pour votre solution HADR.
- Avoir configuré votre groupe de disponibilité Always On.
- Avoir installé la version la plus récente de PowerShell.
- Identifié le port unique que vous envisagez d’utiliser pour l’écouteur DNN. Le port utilisé pour un écouteur DNN doit être unique parmi tous les réplicas du groupe de disponibilité ou de l’instance de cluster de basculement. Aucune autre connexion ne peut partager le même port.
Remarque
Chaque groupe de disponibilité ou instance de cluster de basculement sur le même cluster a besoin de son propre point de connexion indépendant, qu’il s’agisse d’un écouteur VNN ou d’un écouteur DNN.
Création du script
Utilisez PowerShell pour créer la ressource de nom de réseau distribué (DNN) et l’associer à votre groupe de disponibilité.
Pour ce faire, procédez comme suit :
Ouvrez un éditeur de texte, tel que le Bloc-notes.
Copiez et collez le script suivant :
param ( [Parameter(Mandatory=$true)][string]$Ag, [Parameter(Mandatory=$true)][string]$Dns, [Parameter(Mandatory=$true)][string]$Port ) Write-Host "Add a DNN listener for availability group $Ag with DNS name $Dns and port $Port" $ErrorActionPreference = "Stop" # create the DNN resource with the port as the resource name Add-ClusterResource -Name $Port -ResourceType "Distributed Network Name" -Group $Ag # set the DNS name of the DNN resource Get-ClusterResource -Name $Port | Set-ClusterParameter -Name DnsName -Value $Dns # start the DNN resource Start-ClusterResource -Name $Port $Dep = Get-ClusterResourceDependency -Resource $Ag if ( $Dep.DependencyExpression -match '\s*\((.*)\)\s*' ) { $DepStr = "$($Matches.1) or [$Port]" } else { $DepStr = "[$Port]" } Write-Host "$DepStr" # add the Dependency from availability group resource to the DNN resource Set-ClusterResourceDependency -Resource $Ag -Dependency "$DepStr" # restart the AG resource Stop-ClusterResource -Name $Ag Start-ClusterResource -Name $AgEnregistrez le script sous la forme d’un fichier de
.ps1, tel queadd_dnn_listener.ps1.
Exécutez le script
Pour créer l’écouteur DNN, exécutez le script en passant les paramètres pour le nom du groupe de disponibilité, le nom de l’écouteur et le port.
Par exemple, en supposant que le nom du groupe de disponibilité ag1, le nom de l’écouteur dnnlsnret le port de l’écouteur 6789, procédez comme suit :
Ouvrez un outil d’interface de ligne de commande, tel que l’invite de commandes ou PowerShell.
Accédez à l’emplacement où vous avez enregistré le script
.ps1, tel que c:\Documents.Exécutez le script :
add_dnn_listener.ps1 <ag name> <listener-name> <listener port>. Par exemple :c:\Documents> .\add_dnn_listener.ps1 ag1 dnnlsnr 6789
Vérifiez l’écouteur
Utilisez SQL Server Management Studio ou Transact-SQL pour confirmer que votre écouteur DNN est correctement créé.
SQL Server Management Studio
Développez écouteurs de groupe de disponibilité dans SQL Server Management Studio (SSMS) pour afficher votre écouteur DNN :
Transact-SQL
Utilisez Transact-SQL pour afficher l’état de l’écouteur DNN :
SELECT * FROM SYS.AVAILABILITY_GROUP_LISTENERS
La valeur 1 pour is_distributed_network_name indique que l’écouteur est un écouteur DNN (Distributed Network Name) :
Mettre à jour une chaîne de connexion
Mettez à jour la chaîne de connexion pour toutes les applications qui doivent se connecter à l’écouteur DNN. La chaîne de connexion à l’écouteur DNN doit fournir le numéro de port DNN et spécifier MultiSubnetFailover=True dans la chaîne de connexion. Si le client SQL ne prend pas en charge le MultiSubnetFailover=True paramètre, il n’est pas compatible avec un écouteur DNN.
Voici un exemple de chaîne de connexion pour le nom d’écouteur DNN_Listener et le port 6789 :
DataSource=DNN_Listener,6789;MultiSubnetFailover=True
Test de basculement
Testez le basculement du groupe de disponibilité pour garantir la fonctionnalité.
Pour tester le basculement, procédez comme suit :
- Connectez-vous à l’écouteur DNN ou à l’un des réplicas à l’aide de SQL Server Management Studio (SSMS).
- Développez Groupe de disponibilité Always On dans Explorateur d’objets.
- Cliquez avec le bouton droit sur le groupe de disponibilité, puis choisissez Type de basculement pour ouvrir l’Assistant basculement.
- Suivez les invites pour choisir une cible de basculement et faire basculer le groupe de disponibilité sur un réplica secondaire.
- Vérifiez que la base de données est dans un état synchronisé sur le nouveau réplica principal.
- (Facultatif) Effectuez une restauration automatique vers le réplica principal d’origine ou un autre réplica secondaire.
Tester la connectivité
Pour tester la connectivité à votre écouteur DNN, procédez comme suit :
- Ouvrez SQL Server Management Studio.
- Connectez-vous à votre écouteur DNN.
- Ouvrez une nouvelle fenêtre de requête et vérifiez le réplica auquel vous êtes connecté en exécutant
SELECT @@SERVERNAME. - Faites basculer le groupe de disponibilité sur un autre réplica.
- Après un laps de temps raisonnable, exécutez
SELECT @@SERVERNAMEpour confirmer que votre groupe de disponibilité est maintenant hébergé sur un autre réplica.
Limites
- Les écouteurs DNN doivent être configurés avec un port unique. Le port ne peut pas être partagé avec une autre connexion sur un réplica.
- Le client qui se connecte à l’écouteur DNN doit prendre en charge le paramètre
MultiSubnetFailover=Truedans la chaîne de connexion. - Il peut y avoir plus de considérations lorsque vous utilisez d’autres fonctionnalités SQL Server et un groupe de disponibilité avec un DNN. Pour plus d’informations, consultez AG avec l’interopérabilité de DNN.
Considérations relatives au port
Les écouteurs DNN sont conçus pour écouter toutes les adresses IP, mais sur un seul port spécifique. L’entrée DNS (Domain Name System) pour le nom de l’écouteur doit être résolue en adresses de tous les réplicas du groupe de disponibilité. Cette configuration est effectuée automatiquement avec le script PowerShell fourni dans la section Créer un script . Étant donné que les listeners DNN acceptent les connexions sur toutes les adresses IP, il est essentiel que le port du listener soit unique et non utilisé par une autre réplique dans le groupe de disponibilité. Dans la mesure où SQL Server écoute par défaut sur le port 1433, directement ou via le service SQL Browser, l’utilisation du port 1433 pour l’écouteur DNN est vivement déconseillée.
Si le port d’écouteur choisi pour l’écouteur VNN est compris entre 49 152 et 65 536 (la plage de ports dynamique par défaut pour TCP/IP, ajoutez une exclusion pour ce port. Cela empêche ainsi que le même port soit attribué dynamiquement à d’autres systèmes.
Vous pouvez ajouter une exclusion de port avec la commande suivante : netsh int ipv4 add excludedportrange tcp startport=<Listener Port> numberofports=1 store=persistent
Contenu connexe
- Meilleures pratiques de configuration HADR (SQL Server sur des machines virtuelles Azure)
- Cluster de basculement Windows Server avec SQL Server sur des machines virtuelles Azure
- Groupe de disponibilité Always On sur SQL Server sur des machines virtuelles Azure
- Vue d’ensemble : Qu’est-ce qu’un groupe de disponibilité Always On ?