Résoudre les problèmes de SQL Server Always On
Cet article vous aide à résoudre le problème courant de configuration Always On sur SQL Server.
Remarque
Pour obtenir une présentation guidée de cet article, consultez Résolution des problèmes de SQL Server Always On.
Version d’origine du produit : SQL Server 2012 Enterprise, SQL Server 2014 Enterprise, SQL Server 2016 Enterprise
Numéro de la base de connaissances d’origine : 10179
Remarques importantes
Les données MICROSOFT CSS indiquent qu’un pourcentage significatif des problèmes des clients est souvent traité précédemment dans une mise à jour cumulative publiée, mais qu’il n’est pas appliqué de manière proactive et recommande donc une installation continue et proactive des unités de certification à mesure qu’elles deviennent disponibles. Pour plus d’informations, consultez Annonce des mises à jour du modèle de maintenance incrémentielle (ISM) SQL Server.
Pour case activée les dernières mises à jour disponibles pour votre version, consultez Déterminer la version, l’édition et le niveau de mise à jour de SQL Server et de ses composants.
Pour en savoir plus sur les outils que vous pouvez utiliser pour diagnostiquer différents types de problèmes et pour surveiller les groupes de disponibilité, consultez Outils utiles pour la résolution des problèmes et la Always On surveillance des groupes de disponibilité dans Always On Guide de résolution des problèmes et de surveillance des groupes de disponibilité. Le guide propose également des scénarios supplémentaires qui peuvent ne pas être abordés dans cette procédure guidée.
Le nœud parent pour Always On documentation des groupes de disponibilité et fournit une référence unique pour diverses questions, consultez Always On Groupes de disponibilité (SQL Server).
J’ai besoin de pointeurs sur la configuration et la configuration des groupes de disponibilité Always On
Si vous recherchez de la documentation sur la configuration de Always On configuration, consultez les documents suivants :
Prise en main avec Always On groupes de disponibilité (SQL Server) : le document fournit des réponses à de nombreuses questions que vous pouvez avoir sur les groupes de disponibilité et la configuration. Le fait de suivre toutes les étapes de cet article et de passer en revue les conditions préalables, les restrictions et les recommandations pour les groupes de disponibilité Always On (SQL Server) vous permettront d’éviter de nombreux problèmes que vous pouvez rencontrer lors de la configuration et de la maintenance des groupes de disponibilité dans votre environnement.
Ressources supplémentaires
- Étape par étape : création d’un groupe de disponibilité SQL Server 2012 Always On
- Guides d’architecture Always On
- Lien externe : groupes de disponibilité SQL Server Always On
Si ces informations ne sont pas utiles, consultez Plus d’informations sur Always On groupes de disponibilité.
Je rencontre des problèmes lors de la configuration des groupes de disponibilité Always On
Les problèmes de configuration classiques incluent Always On les groupes de disponibilité sont désactivés, les comptes sont mal configurés, le point de terminaison de mise en miroir de bases de données n’existe pas, le point de terminaison est inaccessible (SQL Server l’erreur 1418), l’accès réseau n’existe pas et une commande de jointure de base de données échoue (SQL Server Erreur 35250). Consultez le document suivant pour obtenir de l’aide sur la résolution de ces problèmes :
Résoudre les problèmes de configuration des groupes de disponibilité Always On (SQL Server)
Lien supplémentaire : Correction de l’erreur 41009 lorsque vous essayez de créer plusieurs groupes de disponibilité
Si le problème persiste, consultez Plus d’informations sur Always On groupes de disponibilité.
Je rencontre des problèmes avec la configuration de l’écouteur (19471, 19476 et autres erreurs)
L’un des problèmes de configuration les plus courants rencontrés par les clients est la création d’écouteurs de groupe de disponibilité. Les erreurs sont similaires aux suivantes :
-
Msg 19471, Niveau 16, État 0, Ligne 2Le cluster WSFC n’a pas pu mettre en ligne la ressource Nom réseau portant le nom DNS « ». Le nom DNS peut avoir été pris ou avoir un conflit avec des services de noms existants, ou le service de cluster WSFC peut ne pas être en cours d’exécution ou peut être inaccessible. Utilisez un autre nom DNS pour résoudre les conflits de noms ou case activée le journal du cluster WSFC pour plus d’informations.
-
Msg 19476, Niveau 16, État 4, Ligne 2La tentative de création du nom réseau et de l’adresse IP pour l’écouteur a échoué. Le service WSFC n’est peut-être pas en cours d’exécution ou est peut-être inaccessible dans son état actuel, ou les valeurs fournies pour le nom réseau et l’adresse IP peuvent être incorrectes. Vérifiez l’état du cluster WSFC et validez le nom réseau et l’adresse IP avec l’administrateur réseau.
La plupart du temps, l’échec de création de l’écouteur entraînant les messages précédents est dû à un manque d’autorisations pour l’objet CNO (Cluster Name Object) dans Active Directory pour créer et lire l’objet ordinateur de l’écouteur. Pour résoudre ce problème, consultez les articles suivants :
Si le problème persiste, consultez Plus d’informations sur Always On groupes de disponibilité.
Le basculement automatique ne fonctionne pas comme prévu
Si vous remarquez que le basculement automatique ne fonctionne pas comme prévu pendant le test ou en production, consultez : Résolution des problèmes de basculement automatique dans les environnements SQL Server Always On 2012.
Une configuration incorrecte du nombre maximal d’échecs dans la période spécifiée est l’une des principales causes du basculement du principal vers la base de données secondaire. La valeur par défaut de ce paramètre est N-1, où N est le nombre de réplicas. Pour plus d’informations, consultez Limite maximale des échecs du cluster de basculement (groupe).
Si le problème persiste, consultez Plus d’informations sur Always On groupes de disponibilité.
Je rencontre des problèmes de connexion à Always On groupes de disponibilité
Après avoir configuré l’écouteur de groupe de disponibilité pour un groupe de disponibilité Always On dans SQL Server 2012, vous ne pourrez peut-être pas effectuer un test ping sur l’écouteur ou vous y connecter à partir d’une application. Vous pouvez obtenir une erreur similaire à ce qui suit :
Sqlcmd : Erreur : Microsoft SQL Native Client : Le délai de connexion a expiré.
Pour résoudre ce problème et d’autres erreurs similaires, passez en revue les éléments suivants :
- Erreur de délai d’attente et vous ne pouvez pas vous connecter à un écouteur de groupe de disponibilité SQL Server 2012 Always On dans un environnement à plusieurs sous-réseaux
- Délais d’expiration de connexion dans le groupe de disponibilité multi-sous-réseaux
Liens d’informations supplémentaires :
- Une mise à jour introduit la prise en charge des fonctionnalités Always On dans SQL Server 2012 ou une version ultérieure de the.NET Framework 3.5 SP1
- clustering multi-sous-réseaux SQL Server (SQL Server)
Si le problème persiste, consultez Plus d’informations sur Always On groupes de disponibilité.
Je rencontre des problèmes lors de la configuration des groupes de disponibilité Always On dans ma machine virtuelle Azure (IaaS)
De nombreux problèmes liés à Always On se produisent en raison d’une configuration incorrecte de l’écouteur. Si vous rencontrez des problèmes de connexion à l’écouteur,
Veillez à lire toutes les limitations de l’écouteur ILB et à suivre toutes les étapes décrites dans l’article suivant, en accordant une attention particulière à la configuration des dépendances, à l’adresse IP et à divers autres paramètres dans le script PowerShell.
En cas de doute, vous pouvez supprimer et recréer l’écouteur conformément au document ci-dessus.
Si vous avez récemment déplacé votre machine virtuelle vers un autre service ou si les adresses IP ont changé, vous devez mettre à jour la valeur de la ressource d’adresse IP pour refléter la nouvelle adresse et recréer le point de terminaison à charge équilibrée pour votre groupe de disponibilité. Vous pouvez mettre à jour l’adresse IP à l’aide des
Get
commandes ouSet
comme suit :Get-ClusterResource "IPResourceName" | Set-ClusterParameter -name Address -value "w.x.y.z"
Documents recommandés :
Si le problème persiste, consultez Plus d’informations sur Always On groupes de disponibilité.
Le basculement du principal vers le secondaire prend beaucoup de temps ou inversement
Après un basculement automatique ou un basculement manuel planifié sans perte de données sur un groupe de disponibilité, vous pouvez constater que le temps de basculement dépasse votre objectif de temps de récupération (RTO). Pour résoudre les problèmes liés aux causes et aux résolutions potentielles, consultez Résolution des problèmes : RTO dépassé par le groupe de disponibilité.
Si le problème persiste, consultez Plus d’informations sur Always On groupes de disponibilité.
Les modifications apportées au réplica principal ne sont pas répercutées ou sont lentes à répliquer sur le réplica secondaire
Vous remarquerez peut-être que les modifications apportées aux réplica primaires ne sont pas propagées à la base de données secondaire en temps voulu. Pour résoudre ces problèmes, procédez comme suit :
Pour SQL Server environnements 2012 et SQL Server 2014, consultez CORRECTIF : Synchronisation lente lorsque les disques ont des tailles de secteur différentes pour les fichiers journaux réplica principal et secondaire dans SQL Server environnements de groupe de disponibilité et de logshipping.
Vérifiez si les nœuds secondaires sont dans un état Suspendu dans l’administrateur de cluster.
Si le problème persiste, consultez Plus d’informations sur Always On groupes de disponibilité.
Comment gérer la taille du journal des transactions pour mes bases de données de groupe de disponibilité
Vous pouvez réduire la taille du journal des transactions en configurant des sauvegardes régulières sur les serveurs principaux ou secondaires.
Pour plus d’informations, consultez les rubriques suivantes :
- Décharger les sauvegardes prises en charge sur les réplicas secondaires d’un groupe de disponibilité
- Exécution de sauvegardes du journal des transactions à l’aide d’Always On groupe de disponibilité Read-Only réplicas secondaires - Partie 1
Si ces informations ne sont pas utiles, consultez Plus d’informations sur Always On groupes de disponibilité.
Serveurs principaux ou secondaires frappés dans l’état de résolution ou vous rencontrez des basculements inattendus
Recherchez les problèmes matériels et d’autres erreurs dans les journaux des événements système et application, puis collaborez avec le fournisseur pour les corriger.
Si vous utilisez des machines virtuelles, case activée leur base de connaissances pour voir si des problèmes récemment signalés peuvent contribuer au problème. Par exemple, une perte de paquets importante au niveau du système d’exploitation invité sur la carte réseau virtuelle VMXNET3 dans ESXi (2039495) a provoqué des problèmes avec la configuration du groupe de disponibilité dans certains cas.
Plus d’informations :
Si le problème persiste, consultez Plus d’informations sur Always On groupes de disponibilité.
Impossible de mettre des ressources en ligne
Vérifiez si la récupération des bases de données prend beaucoup de temps en examinant les messages dans le journal des erreurs SQL.
Si le problème persiste, consultez Plus d’informations sur Always On groupes de disponibilité.
Foire aux questions
Est-il possible d’avoir deux écouteurs pour un groupe de disponibilité ?
Oui, vous pouvez configurer plusieurs écouteurs pour le même groupe de disponibilité. Consultez Comment créer plusieurs écouteurs pour le même groupe de disponibilité (Goden Yao).
Est-il possible d’avoir une carte réseau distincte carte pour le trafic always on et la connectivité client ?
Oui, vous pouvez avoir des carte de cartes réseau dédiées pour le trafic Always On. Consultez Configurer un groupe de disponibilité pour communiquer sur un réseau dédié.
Quelles éditions prennent en charge Always On instances de cluster de basculement ?
Cette rubrique de la documentation en ligne de SQL Server contient plus d’informations : Éditions et fonctionnalités prises en charge pour SQL Server 2016.
Comment récupérer en cas de défaillance sur tous les nœuds de votre cluster ?
Consultez Récupération d’urgence WSFC par quorum forcé (SQL Server).
Où puis-je trouver des informations sur la prise en charge des transactions distribuées dans les configurations du groupe de disponibilité ?
Consultez Transactions : groupes de disponibilité et mise en miroir de bases de données.
Comment mettre à jour les configurations Always On ?
Consultez Mise à niveau Always On instances de réplica de groupe de disponibilité.
Comment ajouter une base de données compatible TDE (Transparent Data Encryption) à la configuration du groupe de disponibilité ?
Pour ajouter une base de données compatible TDE à un groupe de disponibilité, consultez Guide pratique pour configurer Always On pour une base de données TDE.
Comment configurer des alertes pour vérifier si la base de données secondaire est en retard par rapport au serveur principal ?
Vous pouvez utiliser le script suivant :
SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server, dr_state.database_id AS database_id, is_ag_replica_local = CASE WHEN ar_state.is_local = 1 THEN N'LOCAL' ELSE 'REMOTE' END, ag_replica_role = CASE WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED' ELSE ar_state.role_desc END, dr_state.last_hardened_lsn, dr_state.last_hardened_time, datediff(s,last_hardened_time, getdate()) AS 'seconds behind primary' FROM (( sys.availability_groups AS ag JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id) JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id) JOIN sys.dm_hadr_database_replica_states dr_state ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
Comment recevoir une alerte si l’état de la base de données n’est pas synchronisé ?
Vous pouvez utiliser le script suivant :
SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server, dr_state.database_id AS database_id, is_ag_replica_local = CASE WHEN ar_state.is_local = 1 THEN N'LOCAL' ELSE 'REMOTE' END, ag_replica_role = CASE WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED' ELSE ar_state.role_desc END, ar_state.connected_state_desc, ar.availability_mode_desc, dr_state.synchronization_state_desc FROM (( sys.availability_groups AS ag JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id ) JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id) JOIN sys.dm_hadr_database_replica_states dr_state ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
Vous pouvez également consulter les liens suivants pour obtenir des méthodes supplémentaires pour surveiller Always On groupes :