Configurer la stratégie de basculement flexible pour contrôler les conditions du basculement automatique (groupes de disponibilité AlwaysOn)

Cette rubrique explique comment configurer la stratégie de basculement flexible pour un groupe de disponibilité AlwaysOn à l'aide de Transact-SQL ou PowerShell dans SQL Server 2012. Une stratégie de basculement flexible vous offre un contrôle granulaire sur les conditions qui entraînent un basculement automatique d'un groupe de disponibilité. En changeant les conditions d'échec qui déclenchent un basculement automatique et la fréquence des contrôles d'intégrité, vous pouvez augmenter ou diminuer la probabilité d'un basculement automatique pour assurer le contrat de niveau de service relatif à la haute disponibilité.

  • Avant de commencer :

    Limitations relatives aux basculements automatiques

    Conditions préalables requises

    Sécurité

  • Pour configurer la stratégie de basculement flexible à l'aide de :

    Transact-SQL

    PowerShell

    [!REMARQUE]

    La stratégie de basculement flexible d'un groupe de disponibilité ne peut pas être configurée à l'aide de SQL Server Management Studio.

Avant de commencer

Limitations relatives aux basculements automatiques

  • Pour qu'un basculement automatique se produise, le réplica principal et un réplica secondaire doivent être configurés pour le mode de disponibilité avec validation synchrone et basculement automatique et le réplica secondaire doit être synchronisé avec le réplica principal.

  • Si un groupe de disponibilité dépasse le seuil d'échec WSFC, le cluster WSFC ne tente pas un basculement automatique du groupe de disponibilité. En outre, le groupe de ressources WSFC du groupe de disponibilité reste à l'état d'échec jusqu'à ce que l'administrateur de cluster mette manuellement le groupe de ressources en ligne ou jusqu'à ce que l'administrateur de base de données exécute un basculement manuel du groupe de disponibilité. Le seuil d'échec WSFC est le nombre maximal d'échecs autorisés pour le groupe de disponibilité au cours d'une période donnée. La période par défaut est de six heures, et la valeur par défaut du nombre maximal d'échecs au cours de cette période est n-1, où n est le nombre de nœuds de WSFC. Pour modifier les valeurs de seuil/d'échec pour un groupe de disponibilité donné, utilisez la console du gestionnaire de basculement WSFC.

Conditions préalables requises

  • Vous devez être connecté à l'instance de serveur qui héberge le réplica principal.

Sécurité

Autorisations

Tâche

Autorisations

Pour configurer la stratégie de basculement flexible pour un nouveau groupe de disponibilité

Requiert l'appartenance au rôle de serveur fixe sysadmin et l'autorisation de serveur CREATE AVAILABILITY GROUP, l'autorisation ALTER ANY AVAILABILITY GROUP ou l'autorisation CONTROL SERVER.

Pour modifier la stratégie d'un groupe de disponibilité existant

Requiert l'autorisation ALTER AVAILABILITY GROUP sur le groupe de disponibilité, l'autorisation CONTROL AVAILABILITY GROUP, l'autorisation ALTER ANY AVAILABILITY GROUP ou l'autorisation CONTROL SERVER.

Icône de flèche utilisée avec le lien Retour en haut[Haut de la page]

Utilisation de Transact-SQL

Pour configurer la stratégie de basculement flexible

  1. Connectez-vous à l'instance de serveur qui héberge le réplica principal.

  2. Pour un nouveau groupe de disponibilité, utilisez l'instruction CREATE AVAILABILITY GROUP Transact-SQL. Si vous modifiez un groupe de disponibilité existant, utilisez l'instruction ALTER AVAILABILITY GROUP Transact-SQL.

    • Pour définir le niveau de condition de basculement, utilisez l'option FAILURE_CONDITION_LEVEL = n, où, n est un entier compris entre 1 et 5.

      Par exemple, l'instruction Transact-SQL suivante modifie le niveau de condition d'échec d'un groupe de disponibilité existant, AG1, sur le niveau un :

      ALTER AVAILABILITY GROUP AG1 SET (FAILURE_CONDITION_LEVEL = 1); 
      

      La relation de ces valeurs entières avec les niveaux de condition d'échec est la suivante :

      Valeur Transact-SQL

      Niveau

      Le basculement automatique est initialisé lorsque…

      1

      Un

      Le serveur est arrêté. Le service SQL Server s'arrête à cause d'un basculement ou d'un redémarrage.

      2

      Deux

      Le serveur ne répond pas. Toute les conditions qui correspondent à une valeur inférieure sont remplies, le service SQL Server est connecté au cluster et le seuil du délai d'attente de contrôle d'intégrité est dépassé, ou le réplica principal actuel est dans un état d'échec.

      3

      Trois

      Erreur critique du serveur. Toutes les conditions qui correspondent à une valeur inférieure sont remplies ou une erreur interne et critique de serveur est survenue.

      C'est le niveau par défaut.

      4

      Quatre

      Erreur de serveur modérée. Toutes les conditions qui correspondent à une valeur inférieure sont remplies ou une erreur modérée de serveur s'est produite.

      5

      Cinq

      Conditions d'échec qualifiées. Toutes les conditions qui correspondent à une valeur inférieure sont remplies ou une condition d'échec qualifiée s'est produite.

      Pour plus d'informations sur les niveaux de condition de basculement, consultez Stratégie flexible pour le basculement automatique d'un groupe de disponibilité (SQL Server).

    • Pour configurer le seuil du délai d'attente de contrôle d'intégrité, utilisez l'option HEALTH_CHECK_TIMEOUT = n, où, n est un entier compris entre 15 000 millisecondes (15 secondes) et 4 294 967 295 millisecondes. La valeur par défaut est 30 000 millisecondes (ou 30 secondes).

      Par exemple, l'instruction Transact-SQL suivante modifie le seuil du délai d'attente de contrôle d'intégrité d'un groupe de disponibilité existant, AG1, sur 60 000 millisecondes (une minute).

      ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT = 60000);
      

Icône de flèche utilisée avec le lien Retour en haut[Haut de la page]

Utilisation de PowerShell

Pour configurer la stratégie de basculement flexible

  1. Définissez la valeur par défaut (cd) sur l'instance de serveur qui héberge le réplica principal.

  2. Lorsque vous ajoutez un réplica de disponibilité à un groupe de disponibilité, utilisez l'applet de commande New-SqlAvailabilityGroup. Lorsque vous modifiez un réplica de disponibilité existant, utilisez l'applet de commande Set-SqlAvailabilityGroup.

    • Pour définir le niveau de condition de basculement, utilisez le paramètre FailureConditionLevel level, où level est l'une des valeurs suivantes :

      Valeur

      Niveau

      Le basculement automatique est initialisé lorsque…

      OnServerDown

      Un

      Le serveur est arrêté. Le service SQL Server s'arrête à cause d'un basculement ou d'un redémarrage.

      OnServerUnresponsive

      Deux

      Le serveur ne répond pas. Toute les conditions qui correspondent à une valeur inférieure sont remplies, le service SQL Server est connecté au cluster et le seuil du délai d'attente de contrôle d'intégrité est dépassé, ou le réplica principal actuel est dans un état d'échec.

      OnCriticalServerError

      Trois

      Erreur critique du serveur. Toutes les conditions qui correspondent à une valeur inférieure sont remplies ou une erreur interne et critique de serveur est survenue.

      C'est le niveau par défaut.

      OnModerateServerError

      Quatre

      Erreur de serveur modérée. Toutes les conditions qui correspondent à une valeur inférieure sont remplies ou une erreur modérée de serveur s'est produite.

      OnAnyQualifiedFailureConditions

      Cinq

      Conditions d'échec qualifiées. Toutes les conditions qui correspondent à une valeur inférieure sont remplies ou une condition d'échec qualifiée s'est produite.

      Pour plus d'informations sur les niveaux de condition de basculement, consultez Stratégie flexible pour le basculement automatique d'un groupe de disponibilité (SQL Server).

      Par exemple, la commande suivante modifie le niveau de condition d'échec d'un groupe de disponibilité existant, AG1, sur le niveau un.

      Set-SqlAvailabilityGroup ` 
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg ` 
      -FailureConditionLevel OnServerDown
      
    • Pour définir le seuil du délai d'attente de contrôle d'intégrité, utilisez le paramètre HealthCheckTimeout n, où n est un entier compris entre 15 000 millisecondes (15 secondes) et 4 294 967 295 millisecondes. La valeur par défaut est 30 000 millisecondes (ou 30 secondes).

      Par exemple, la commande suivante modifie le seuil du délai d'attente de contrôle d'intégrité d'un groupe de disponibilité existant, AG1, sur 120 000 millisecondes (deux minutes).

      Set-SqlAvailabilityGroup ` 
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAG ` 
      -HealthCheckTimeout 120000
      

[!REMARQUE]

Pour afficher la syntaxe d'une applet de commande, utilisez l'applet de commande Get-Help dans l'environnement SQL Server PowerShell. Pour plus d'informations, consultez Obtenir de l'aide sur SQL Server PowerShell.

Pour configurer et utiliser le fournisseur SQL Server PowerShell

Icône de flèche utilisée avec le lien Retour en haut[Haut de la page]

Voir aussi

Référence

sp_server_diagnostics (Transact-SQL)

Concepts

Vue d'ensemble des groupes de disponibilité AlwaysOn (SQL Server)

Modes de disponibilité (groupes de disponibilité AlwaysOn)

Basculement et modes de basculement (groupes de disponibilité AlwaysOn)

Clustering de basculement Windows Server (WSFC) avec SQL Server

Stratégie de basculement pour les instances de cluster de basculement