Configurer un ou plusieurs écouteurs de groupe de disponibilité Always On

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.

Ce document vous montre comment utiliser PowerShell pour effectuer l’une des tâches suivantes :

  • Créer un équilibreur de charge
  • Ajouter des adresses IP à un équilibreur de charge existant pour les groupes de disponibilité SQL Server

Un écouteur de groupe de disponibilité est un nom de réseau virtuel auquel les clients se connectent pour accéder aux bases de données. Sur les machines virtuelles Azure d’un même sous-réseau, un équilibreur de charge détient l’adresse IP de l’écouteur. L’équilibreur de charge achemine le trafic vers l’instance de SQL Server qui est à l’écoute sur le port de la sonde. Dans la plupart des cas, un groupe de disponibilité utilise un équilibreur de charge interne. Un équilibreur de charge interne Azure peut héberger une ou plusieurs adresses IP. Chaque adresse IP utilise un port de sonde spécifique.

L’affectation de plusieurs adresses IP à un équilibreur de charge interne est une nouveauté d’Azure qui n’est disponible que dans le modèle Resource Manager. Pour effectuer cette tâche, vous devez disposer d’un groupe de disponibilité SQL Server déployé sur des machines virtuelles Azure dans le modèle Resource Manager. Les deux machines virtuelles SQL Server doivent appartenir au même groupe à haute disponibilité. Vous pouvez utiliser le modèle Microsoft pour créer automatiquement le groupe de disponibilité dans Azure Resource Manager. Ce modèle crée automatiquement le groupe de disponibilité, y compris l’équilibreur de charge interne. Si vous préférez, vous pouvez configurer manuellement un groupe de disponibilité AlwaysOn.

Pour effectuer les étapes décrites dans cet article, vous devez avoir déjà configuré vos groupes de disponibilité.

Rubriques connexes :

Notes

Cet article utilise le module Azure Az PowerShell, qui est le module PowerShell recommandé pour interagir avec Azure. Pour démarrer avec le module Az PowerShell, consulter Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Démarrer votre session PowerShell

Exécutez la cmdlet Connect-Az Account pour faire apparaître un écran de connexion dans lequel vous pouvez entrer vos informations d’identification. Utilisez les informations d’identification dont vous disposez pour vous connecter au portail Azure.

Connect-AzAccount

Si vous possédez plusieurs abonnements, utilisez la cmdlet Set-AzContext pour sélectionner l’abonnement que votre session PowerShell doit utiliser. Pour savoir quel abonnement la session PowerShell en cours utilise, exécutez la cmdlet Get-AzContext. Pour voir tous vos abonnements, exécutez la cmdlet Get-AzSubscription.

Set-AzContext -SubscriptionId '4cac86b0-1e56-bbbb-aaaa-000000000000'

Vérifier la version de PowerShell

Les exemples présentés dans cet article sont testés à l'aide du module Azure PowerShell version 5.4.1.

Vérifiez que votre module PowerShell correspond bien à la version 5.4.1 ou ultérieure.

Consultez Installer le module Azure PowerShell.

Configurer le pare-feu Windows

Configurez le Pare-feu Windows pour autoriser l’accès à SQL Server. Les règles de pare-feu autorisent les connexions TCP aux ports utilisés par l’instance de SQL Server et à la sonde de l’écouteur. Pour obtenir des instructions détaillées, consultez Configurer un pare-feu Windows pour accéder au moteur de base de données. Créez une règle entrante pour le port SQL Server et pour le port de la sonde.

Si vous restreignez l’accès avec un groupe de sécurité réseau Azure, vérifiez que les règles d’autorisation comprennent l’adresse IP de la machine virtuelle du serveur backend SQL, les adresses IP flottantes de l’équilibreur de charge pour l’écouteur de groupe de disponibilité, et l’adresse IP du cluster principal, le cas échéant.

Déterminer la référence SKU requise pour l'équilibreur de charge

Azure Load Balancer est disponible en deux SKU : de base et Standard. L’équilibreur de charge standard est recommandé, car la référence SKU de base sera supprimée le 30 septembre 2025. L’équilibreur de charge standard est requis pour les machines virtuelles se trouvant dans une zone de disponibilité. L'équilibreur de charge standard exige que toutes les machines virtuelles utilisent des adresses IP standard.

Le modèle Microsoft actuel de groupe de disponibilité utilise un équilibreur de charge de base avec des adresses IP de base.

Notes

Si vous utilisez un équilibreur de charge standard et Stockage Azure pour le témoin cloud, vous devez configurer un point de terminaison de service.

Les exemples présentés dans cet article spécifient un équilibreur de charge standard. Dans les exemples, le script inclut -sku Standard.

$ILB= New-AzLoadBalancer -Location $Location -Name $ILBName -ResourceGroupName $ResourceGroupName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -LoadBalancingRule $ILBRule -Probe $SQLHealthProbe -sku Standard

Pour créer un équilibreur de charge de base, supprimez -sku Standard de la ligne qui crée l'équilibreur de charge. Par exemple :

$ILB= New-AzLoadBalancer -Location $Location -Name $ILBName -ResourceGroupName $ResourceGroupName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -LoadBalancingRule $ILBRule -Probe $SQLHealthProbe

Exemple de script : Créer un équilibreur de charge interne avec PowerShell

Notes

Si vous avez créé un groupe de disponibilité à l’aide du modèle Microsoft, l’équilibreur de charge interne a déjà été créé.

Le script PowerShell suivant crée un équilibreur de charge interne, configure les règles d’équilibrage de charge et affecte une adresse IP pour l’équilibrage de charge. Pour exécuter le script, ouvrez Windows PowerShell ISE, puis collez le script dans le volet Script. Utilisez Connect-AzAccount pour vous connecter à PowerShell. Si vous possédez plusieurs abonnements Azure, utilisez Select-AzSubscription pour définir l’abonnement.

# Connect-AzAccount
# Select-AzSubscription -SubscriptionId <xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>

$ResourceGroupName = "<Resource Group Name>" # Resource group name
$VNetName = "<Virtual Network Name>"         # Virtual network name
$SubnetName = "<Subnet Name>"                # Subnet name
$ILBName = "<Load Balancer Name>"            # ILB name
$Location = "<Azure Region>"                 # Azure location
$VMNames = "<VM1>","<VM2>"                   # Virtual machine names

$ILBIP = "<n.n.n.n>"                         # IP address
[int]$ListenerPort = "<nnnn>"                # AG listener port
[int]$ProbePort = "<nnnn>"                   # Probe port

$LBProbeName ="ILBPROBE_$ListenerPort"       # The Load balancer Probe Object Name              
$LBConfigRuleName = "ILBCR_$ListenerPort"    # The Load Balancer Rule Object Name

$FrontEndConfigurationName = "FE_SQLAGILB_1" # Object name for the front-end configuration 
$BackEndConfigurationName ="BE_SQLAGILB_1"   # Object name for the back-end configuration

$VNet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName 

$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name $SubnetName 

$FEConfig = New-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -PrivateIpAddress $ILBIP -SubnetId $Subnet.id

$BEConfig = New-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName 

$SQLHealthProbe = New-AzLoadBalancerProbeConfig -Name $LBProbeName -Protocol tcp -Port $ProbePort -IntervalInSeconds 15 -ProbeCount 2

$ILBRule = New-AzLoadBalancerRuleConfig -Name $LBConfigRuleName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -Probe $SQLHealthProbe -Protocol tcp -FrontendPort $ListenerPort -BackendPort $ListenerPort -LoadDistribution Default -EnableFloatingIP 

$ILB= New-AzLoadBalancer -Location $Location -Name $ILBName -ResourceGroupName $ResourceGroupName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -LoadBalancingRule $ILBRule -Probe $SQLHealthProbe 

$bepool = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB 

foreach($VMName in $VMNames)
    {
        $VM = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName 
        $NICName = ($vm.NetworkProfile.NetworkInterfaces.Id.split('/') | select -last 1)
        $NIC = Get-AzNetworkInterface -name $NICName -ResourceGroupName $ResourceGroupName
        $NIC.IpConfigurations[0].LoadBalancerBackendAddressPools = $BEPool
        Set-AzNetworkInterface -NetworkInterface $NIC
        start-AzVM -ResourceGroupName $ResourceGroupName -Name $VM.Name 
    }

Exemple de script : Ajouter une adresse IP à un équilibreur de charge existant à l’aide de PowerShell

Pour utiliser plusieurs groupes de disponibilité, ajoutez une adresse IP supplémentaire à l’équilibreur de charge. Chaque adresse IP nécessite une règle d’équilibrage de charge, un port de sonde et un port frontal propres. Ajoutez uniquement l’adresse IP principale de la machine virtuelle au pool principal de l’équilibreur de charge, car l’adresse IP de la machine virtuelle secondaire ne prend pas en charge l’adresse IP flottante.

Le port frontal est le port que les applications utilisent pour se connecter à l’instance SQL Server. Les adresses IP de groupes de disponibilité différents peuvent utiliser le même port frontal.

Notes

Pour les groupes de disponibilité SQL Server, chaque adresse IP nécessite un port de sonde spécifique. Par exemple, si une adresse IP sur un équilibreur de charge utilise le port de sonde 59999, aucune autre adresse IP de cet équilibreur de charge ne peut utiliser le port 59999 de la sonde.

Le script suivant ajoute une nouvelle adresse IP à un équilibreur de charge existant. L’équilibreur de charge interne utilise le port d’écoute pour le port frontal de l’équilibrage de charge. Ce port peut être le port sur lequel SQL Server écoute le trafic. Pour les instances par défaut de SQL Server, il s’agit du port 1433. La règle d’équilibrage de charge d’un groupe de disponibilité nécessite une adresse IP flottante (retour direct du serveur) de sorte que le port de serveur principal est le même que le port frontal. Mettez à jour les variables de votre environnement.

# Connect-AzAccount
# Select-AzSubscription -SubscriptionId <xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>

$ResourceGroupName = "<ResourceGroup>"          # Resource group name
$VNetName = "<VirtualNetwork>"                  # Virtual network name
$SubnetName = "<Subnet>"                        # Subnet name
$ILBName = "<ILBName>"                          # ILB name                      

$ILBIP = "<n.n.n.n>"                            # IP address
[int]$ListenerPort = "<nnnn>"                   # AG listener port
[int]$ProbePort = "<nnnnn>"                     # Probe port 

$ILB = Get-AzLoadBalancer -Name $ILBName -ResourceGroupName $ResourceGroupName 

$count = $ILB.FrontendIpConfigurations.Count+1
$FrontEndConfigurationName ="FE_SQLAGILB_$count"  

$LBProbeName = "ILBPROBE_$count"
$LBConfigrulename = "ILBCR_$count"

$VNet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName 
$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name $SubnetName

$ILB | Add-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -PrivateIpAddress $ILBIP -SubnetId $Subnet.Id 

$ILB | Add-AzLoadBalancerProbeConfig -Name $LBProbeName  -Protocol Tcp -Port $Probeport -ProbeCount 2 -IntervalInSeconds 15  | Set-AzLoadBalancer 

$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

$FEConfig = get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB

$SQLHealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

$BEConfig = Get-AzLoadBalancerBackendAddressPoolConfig -Name $ILB.BackendAddressPools[0].Name -LoadBalancer $ILB 

$ILB | Add-AzLoadBalancerRuleConfig -Name $LBConfigRuleName -FrontendIpConfiguration $FEConfig  -BackendAddressPool $BEConfig -Probe $SQLHealthProbe -Protocol tcp -FrontendPort  $ListenerPort -BackendPort $ListenerPort -LoadDistribution Default -EnableFloatingIP | Set-AzLoadBalancer   

Configurer l’écouteur

L’écouteur de groupe de disponibilité est une adresse IP et un nom réseau sur lesquels le groupe de disponibilité de SQL Server écoute. Pour créer l’écouteur de groupe de disponibilité :

  1. Récupérez le nom de la ressource réseau du cluster :

    a. Utilisez le protocole RDP pour vous connecter à la machine virtuelle Azure qui héberge le réplica principal.

    b. Ouvrez le Gestionnaire du cluster de basculement.

    c. sélectionnez le nœud Réseaux et notez le nom de réseau du cluster. Utilisez ce nom dans la variable $ClusterNetworkName du script PowerShell. Dans l’image suivante, le nom réseau du cluster est Cluster Network 1 :

    Screenshot that shows a cluster network name in Failover Cluster Manager.

  2. Ajoutez le point d’accès client. Le point d’accès client est le nom réseau que les applications utilisent pour se connecter aux bases de données dans un groupe de disponibilité.

    a. Dans le Gestionnaire du cluster de basculement, développez le nom du cluster, puis sélectionnez Rôles.

    b. Dans le volet Rôles, cliquez avec le bouton droit sur le nom du groupe de disponibilité, puis sélectionnez Ajouter une ressource>Point d’accès client.

    Screenshot of Failover Cluster Manager that shows selecting the Client Access Point command on the shortcut menu for the availability group.

    c. Dans la zone Nom, créez un nom pour ce nouvel écouteur. Le nom du nouvel écouteur est le nom réseau que les applications utilisent pour se connecter aux bases de données dans le groupe de disponibilité de SQL Server.

    d. Pour terminer la création de l’écouteur, sélectionnez Suivant à deux reprises, puis sélectionnez Terminer. Ne mettez pas l’écouteur ou la ressource en ligne à ce stade.

  3. Mettez le rôle de cluster du groupe de disponibilité hors connexion. Dans le Gestionnaire du cluster de basculement, sous Rôles, cliquez avec le bouton droit sur le rôle, puis sélectionnez Arrêter le rôle.

  4. Configurez la ressource IP du groupe de disponibilité :

    a. Sélectionnez l’onglet Ressources, puis développez le point d’accès client que vous avez créé. Le point d’accès client est hors connexion.

    Screenshot of Failover Cluster Manager that shows an offline status for a client access point.

    b. Cliquez avec le bouton droit sur la ressource IP, puis sélectionnez Propriétés. Notez le nom de l’adresse IP et utilisez-le dans la variable $IPResourceName dans le script PowerShell.

    c. Sous Adresse IP, sélectionnez Adresse IP statique. Pour l’adresse IP, utilisez l’adresse que vous avez définie pour l’équilibreur de charge sur le portail Azure.

    Screenshot of Failover Cluster Manager that shows the selection of an IP address.

  5. Créez une dépendance entre le groupe de disponibilité SQL Server et le point d’accès client :

    a. Dans le Gestionnaire du cluster de basculement, sélectionnez Rôles, puis votre groupe de disponibilité.

    b. Sous l’onglet Ressources, sous Autres ressources, cliquez avec le bouton droit sur la ressource du groupe de disponibilité, puis sélectionnez Propriétés.

    c. Sous l’onglet Dépendances, ajoutez le nom du point d’accès client (écouteur).

    Screenshot of Failover Cluster Manager that shows adding a name on the Dependencies tab.

    d. Sélectionnez OK.

  6. Créez une dépendance entre le point d’accès client et l’adresse IP :

    a. Dans le Gestionnaire du cluster de basculement, sélectionnez Rôles, puis votre groupe de disponibilité.

    b. Sous l’onglet Ressources, cliquez avec le bouton droit sur le point d’accès client sous Nom du serveur, puis sélectionnez Propriétés.

    Screenshot of Failover Cluster Manager that shows the Properties menu option for the listener's name.

    c. Sélectionnez l’onglet Dépendances. Vérifiez que l’adresse IP est une dépendance. Si ce n’est pas le cas, définissez une dépendance sur l’adresse IP. Si plusieurs ressources sont listées, vérifiez que les adresses IP ont des dépendances OR (et non des dépendances AND). Sélectionnez ensuite OK.

    Screenshot of the Dependencies tab that shows an IP resource for an availability group.

    Conseil

    Vous pouvez vérifier que les dépendances sont correctement configurées. Dans le Gestionnaire du cluster de basculement, accédez à Rôles, cliquez avec le bouton droit sur le groupe de disponibilité, sélectionnez Autres actions, puis Afficher le rapport de dépendance. Lorsque les dépendances sont correctement configurées, le groupe de disponibilité dépend du nom réseau, et le nom réseau dépend de l’adresse IP.

  7. Définissez les paramètres du cluster dans PowerShell :

    a. Copiez le script PowerShell suivant sur l’une de vos instances SQL Server. Mettez à jour les variables de votre environnement.

    • $ClusterNetworkName : pour trouver le nom dans le Gestionnaire du cluster de basculement, sélectionnez Réseaux, cliquez avec le bouton droit sur le réseau, puis sélectionnez Propriétés. Le $ClusterNetworkName se trouve sous Nom sous l’onglet Général.

    • $IPResourceName est le nom donné à la ressource Adresse IP dans le Gestionnaire du cluster de basculement. Pour le trouver dans le Gestionnaire du cluster de basculement, sélectionnez Rôles, sélectionnez le nom du groupe de disponibilité ou de l’instance de cluster de basculement SQL Server, sélectionnez l’onglet Ressources sous Nom du serveur, cliquez avec le bouton droit sur la ressource Adresse IP, puis sélectionnez Propriétés. La valeur correcte est sous Nom dans l’onglet Général.

    • $ListenerILBIP est l’adresse IP que vous avez créée sur l’équilibreur de charge Azure pour l’écouteur du groupe de disponibilité. $ListenerILBIP se trouve dans le Gestionnaire du cluster de basculement, dans la page de propriétés où se trouve également le nom de ressource de l’écouteur de groupe de disponibilité ou d’instance de cluster de basculement SQL Server.

    • $ListenerProbePort est le port que vous avez configuré sur l’équilibreur de charge Azure pour l’écouteur de groupe de disponibilité (par exemple, 59999). N’importe quel port TCP inutilisé est valide.

    $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
    $IPResourceName = "<IPResourceName>" # The IP address resource name.
    $ListenerILBIP = "<n.n.n.n>" # The IP address of the internal load balancer. This is the static IP address for the load balancer that you configured in the Azure portal.
    [int]$ListenerProbePort = <nnnnn>
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    b. Définissez les paramètres du cluster en exécutant le script PowerShell sur l’un des nœuds du cluster.

    Notes

    Si vos instances SQL Server se trouvent dans différentes régions, vous devez exécuter le script PowerShell à deux reprises. La première fois, utilisez les valeurs $ListenerILBIP et $ListenerProbePort de la première région. La seconde fois, utilisez les valeurs $ListenerILBIP et $ListenerProbePort de la seconde région. Le nom réseau du cluster et le nom de ressource IP du cluster sont également différents pour chaque région.

  8. Mettez le rôle de cluster du groupe de disponibilité en ligne. Dans le Gestionnaire du cluster de basculement, sous Rôles, cliquez avec le bouton droit sur le rôle, puis sélectionnez Démarrer le rôle.

Si nécessaire, répétez les étapes précédentes pour définir les paramètres du cluster pour l’adresse IP du cluster de basculement Windows Server :

  1. Récupérez le nom de l’adresse IP du cluster de basculement Windows Server. Dans le Gestionnaire du cluster de basculement, sous Principales ressources du cluster, recherchez Nom du serveur.

  2. Cliquez avec le bouton droit sur Adresse IP, puis sélectionnez Propriétés.

  3. Copiez le nom de l’adresse IP à partir de Nom. Cela peut être Adresse IP du cluster.

  4. Définissez les paramètres du cluster dans PowerShell :

    a. Copiez le script PowerShell suivant sur l’une de vos instances SQL Server. Mettez à jour les variables de votre environnement.

    • $ClusterCoreIP est l’adresse IP que vous avez créée sur l’équilibreur de charge Azure pour la ressource de cluster principale du cluster de basculement Windows Server. Cette adresse est différente de l’adresse IP de l’écouteur de groupe de disponibilité.

    • $ClusterProbePort est le port que vous avez configuré sur l’équilibreur de charge Azure pour la sonde d’intégrité du cluster de basculement Windows Server. Ce port est différent de la sonde configurée pour l’écouteur de groupe de disponibilité.

    $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
    $IPResourceName = "<ClusterIPResourceName>" # The IP address resource name.
    $ClusterCoreIP = "<n.n.n.n>" # The IP address of the cluster IP resource. This is the static IP address for the load balancer that you configured in the Azure portal.
    [int]$ClusterProbePort = <nnnnn> # The probe port from WSFCEndPointprobe in the Azure portal. This port must be different from the probe port for the availability group listener.
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ClusterCoreIP";"ProbePort"=$ClusterProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    b. Définissez les paramètres du cluster en exécutant le script PowerShell sur l’un des nœuds du cluster.

Si une ressource SQL est configurée pour utiliser un port compris entre 49152 et 65536 (plage de ports dynamiques par défaut pour TCP/IP), ajoutez une exclusion pour chaque port. Ces ressources peuvent inclure :

  • Moteur de base de données SQL Server
  • Écouteur de groupe de disponibilité Always On
  • Sonde d’intégrité pour l’instance de cluster de basculement
  • Point de terminaison de mise en miroir de bases de données
  • Ressource IP principale du cluster

L’ajout d’une exclusion empêchera d’autres processus système d’être affectés dynamiquement au même port. Pour ce scénario, configurez les exclusions suivantes sur tous les nœuds de cluster :

  • netsh int ipv4 add excludedportrange tcp startport=58888 numberofports=1 store=persistent
  • netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

Il est important de configurer l’exclusion de port quand le port n’est pas utilisé. Sinon, la commande échoue avec un message du type « Le processus ne peut pas accéder au fichier, car il est utilisé par un autre processus ». Pour vérifier que les exclusions sont correctement configurées, utilisez la commande suivante : netsh int ipv4 show excludedportrange tcp.

Avertissement

Le port pour la sonde d’intégrité de l’écouteur de groupe de disponibilité doit être différent du port pour la sonde d’intégrité de l’adresse IP principale du cluster. Dans ces exemples, le port de l’écouteur est 59999 et le port de la sonde d’intégrité de l’adresse IP principale du cluster est 58888. Une règle de pare-feu d’autorisation du trafic entrant doit être définie pour les deux ports.

Définissez le port d’écoute dans SQL Server Management Studio

  1. Lancez SQL Server Management Studio et connectez-vous au réplica principal.

  2. Accédez à Haute disponibilité AlwaysOn>Groupes de disponibilité>Écouteurs de groupe de disponibilité.

  3. Vous devez maintenant voir le nom de l'écouteur que vous avez créé dans le Gestionnaire du cluster de basculement. Cliquez avec le bouton droit sur le nom de l’écouteur, puis sélectionnez Propriétés.

  4. Dans le champ Port, indiquez le numéro de port de l’écouteur du groupe de disponibilité à l’aide du paramètre $EndpointPort utilisé précédemment (valeur par défaut : 1433), puis cliquez sur OK.

Tester la connexion à l’écouteur

Pour tester la connexion :

  1. Utilisez le protocole RDP (Remote Desktop Protocol) pour vous connecter à un serveur SQL qui est sur le même réseau virtuel mais qui n’a pas de réplica. Il peut s’agir de l’autre serveur SQL du cluster.

  2. Utilisez l’utilitaire sqlcmd pour tester la connexion. Par exemple, le script suivant établit une connexion sqlcmd avec le réplica principal au moyen de l’écouteur avec une authentification Windows :

    sqlcmd -S <listenerName> -E
    

    Si l’écouteur utilise un port autre que le port par défaut (1433), spécifiez le port dans la chaîne de connexion. Par exemple, la commande sqlcmd suivante se connecte à un écouteur sur le port 1435 :

    sqlcmd -S <listenerName>,1435 -E
    

La connexion SQLCMD se connecte automatiquement à l’instance SQL Server hébergeant le réplica principal.

Notes

Vérifiez que le port spécifié est ouvert sur le pare-feu des deux serveurs SQL. Les deux serveurs requièrent une règle de trafic entrant sur le port TCP utilisé. Pour plus d’informations, consultez Ajouter ou modifier une règle de pare-feu.

Si vous vous trouvez sur la machine virtuelle de réplica secondaire et que vous ne parvenez pas à vous connecter à l’écouteur, il est possible que le port de la sonde ne soit pas configuré correctement.

Le script suivant permet de vérifier que le port de sonde est correctement configuré pour le groupe de disponibilité :

Clear-Host
Get-ClusterResource `
| Where-Object {$_.ResourceType.Name -like "IP Address"} `
| Get-ClusterParameter `
| Where-Object {($_.Name -like "Network") -or ($_.Name -like "Address") -or ($_.Name -like "ProbePort") -or ($_.Name -like "SubnetMask")}

Instructions et limitations

Notez les instructions suivantes concernant l’écouteur de groupe de disponibilité dans Azure utilisant l’équilibrage de charge interne :

  • Avec un équilibreur de charge interne, vous n’accédez à l’écouteur qu’à partir du même réseau virtuel.

  • Si vous restreignez l’accès avec un groupe de sécurité réseau Azure, assurez-vous que les règles d’autorisation sont les suivantes :

    • Adresses IP principales des machines virtuelles SQL Server
    • Adresses IP flottantes de l’équilibreur de charge pour l’écouteur GA
    • Adresse IP principale du cluster, le cas échéant.
  • Créez un point de terminaison de service lorsque vous utilisez un équilibreur de charge standard avec Stockage Azure pour le témoin cloud. Pour plus d'informations, consultez Accorder l'accès à partir d'un réseau virtuel.

Applets de commande PowerShell

Utilisez les applets de commande PowerShell suivantes pour créer un équilibreur de charge interne pour les machines virtuelles Azure.

Étapes suivantes

Pour en savoir plus, consultez :