Configurer la stratégie de basculement flexible pour contrôler les conditions du basculement automatique (groupes de disponibilité Always On)
Cette rubrique explique comment configurer la stratégie de basculement flexible pour un groupe de disponibilité AlwaysOn à l’aide de Transact-SQL ou de PowerShell dans SQL Server 2014. 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é.
> [!NOTE]
> The flexible failover policy of an availability group cannot be configured by using [!INCLUDE[ssManStudioFull](../../../includes/ssmanstudiofull-md.md)].
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.
Prérequis
- 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 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. |
Utilisation de Transact-SQL
Pour configurer la stratégie de basculement flexible
Connectez-vous à l'instance de serveur qui héberge le réplica principal.
Pour un nouveau groupe de disponibilité, utilisez l’instruction Transact-SQLCREATE AVAILABILITY GROUP. Si vous modifiez un groupe de disponibilité existant, utilisez l’instruction Transact-SQL ALTER AVAILABILITY GROUP.
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 Level Le basculement automatique démarre lorsque… 1 Une 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. Toutes 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’optionHEALTH_CHECK_TIMEOUT = n , où n est un entier compris entre 15000 millisecondes (15 secondes) et 4294967295 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);
Utilisation de PowerShell
Pour configurer la stratégie de basculement flexible**
Définissez la valeur par défaut (
cd
) sur l'instance de serveur qui héberge le réplica principal.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 commandeSet-SqlAvailabilityGroup
.Pour définir le niveau de condition de basculement, utilisez le
FailureConditionLevel
paramètre level, où level est l’une des valeurs suivantes :Valeur Level Le basculement automatique démarre lorsque… OnServerDown
Une 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. Toutes 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 de délai d’case activée d’intégrité, utilisez le
HealthCheckTimeout
paramètre n, où n est un entier compris entre 15 000 millisecondes (15 secondes) et 4294967295 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
Notes
Pour afficher la syntaxe d’une applet de commande, utilisez l’applet de Get-Help
commande dans l’environnement PowerShell SQL Server. Pour en savoir plus, voir Get Help SQL Server PowerShell.
Pour configurer et utiliser le fournisseur SQL Server PowerShell
Voir aussi
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
Failover Policy for Failover Cluster Instances
sp_server_diagnostics (Transact-SQL)