Session des Journées SQL Server 2014 - David Barbarin
---
Installer une infrastructure AlwaysOn c’est un peu comme un iceberg: en surface cela parait simple avec un wizard et sa suite de next, next, next …. en revanche la face cachée de l’iceberg réserve bien des challenges qu’il faut surmonter pour arriver à une infrastructure digne de ce nom. Je vous propose lors de cette session d’échanger sur les différentes problématiques rencontrées en clientèle que ce soit en implémentation mais aussi en exploitation
7. #JSS2014
Erreurs rencontrées
Active directory /
DNS
Basculements
inattendus / attendus
Listener
Multisubnet
Journal des
transactions
Secondaires
Kerberos
Quorum
80% du temps
passé pour 20%
des problèmes
Certains problèmes sont très
chronophages
8. #JSS2014
Cluster
Windows log
Cluster log (attention au format UTC)
SQL Server
Fichiers en sortie d’événements étendues (system_health, AlwaysOn, SQLDIAG)
SQL Server error log
DMV concernant les groupes de disponibilités (sys.dm_hadr_*, sys.dm_availability_*)
Compteurs de performances (objets <instance>:Availability Replica, <instance>:Database
Replica)
Outils à disposition
10. #JSS2014
Configuration du quorum
Perte de connectivité avec la ressource témoin
Comportement hasardeux à cause d’un antivirus
Configuration des exclusions antivirus pour le quorum
Choix du quorum important en fonction de la topologie (exclusion de nœuds,
utilisation des poids de vote dynamique, ressource témoin etc..)
Choix du témoin (disque vs partage)
Quorum
11. #JSS2014
Droit administrateur sur le CNO
Permissions liées au CNO sur les VCO (AD et DNS)
Validation du cluster (partie système)
Donner les permissions nécessaires ou préparer les objets d’ordinateurs dans
l’active directory
Installer Windows cluster en mode «Active Directory-Detached Cluster»
Permissions Active Directory / DNS
Cluster
admin
CNO VCO
12. #JSS2014
Permissions dans l’active directory / DNS
Entrée dupliquée (AD ou DNS)
Conflit de port d’écoute
> SQL port Listener port endpoint port
Analyse du message d’erreur depuis SSMS / console PowerShell
Analyse du problème côté Windows failover cluster – SQL Server API du
cluster pour créer le CAP (client access point)
Création d’un listener
13. #JSS2014
Configuration de la topologie réseau
Timeout de connexion des applications vers les listeners
Validation du cluster (partie réseau)
Configuration des priorités et des routes statiques vers les différents sous-
réseaux
Configuration spécifique des ressources réseaux (RegisterAllProviderIP et
HostRecordTTL) et propriétés de connexion côté client (MultiSubnetFailover)
Clés de registres : MaxUserPort, TCP Chimmney
Cas des architectures multi sous-réseaux
14. #JSS2014
Peut être causé par
Des sauvegardes du journal qui ne se ont plus correctement
Redo thread bloqué
Cause non déterminée ? …
Utilisation de la DMV sys.databases (colonne log_reuse_desc)
Trouver la cause du blocage du thread redo
Supprimer et joindre la base de données au groupe de disponibilité
Grossissement du journal des transactions
15. #JSS2014
2 catégories de problème
Basculement inattendu (problème de ressources, redémarrage des services, du serveur,
crash du processus sqlservr.exe, configuration de la police de basculement etc.)
Basculement attendu qui ne se produit pas (problème de disque, problème de connexion
à l’active directory)
Analyse des différents logs associés aux groupes de disponibilités
+ cluster
Basculements
16. #JSS2014
Synchronisation
Réplication en pause (intentionnel ou non après un basculement ASYNC)
Problème d’architecture asymétrique
Stress ou architecture lente (réseau / disques)
Erreur de connexion (erreurs 1418, 35250)
Autorisation des comptes de service sur les points de terminaison
Problème de firewall
Problème d’antivirus
Accès en lecture seule
Définition de routes en lecture seule absente ou mal définie
Mauvais paramètres au niveau de la chaîne de connexion
(application intent, initial catalog)
Listener non joignable
Réplica non joignable
Secondaires
17. #JSS2014
Configuration hétérogène des comptes de service
Absence des SPN (listener et réplicas en lecture seule)
Délégation désactivée
Chaque réplica doit posséder le même compte de domaine
Configuration et méthode de résolution classique d’une infrastructure
Kerberos pour SQL Server (http://mikedavem.developpez.com/tutoriels/sqlserver/serveurs-lies-
et-delegation-kerberos/)
Utilisation de Kerberos Configuration Manager for SQL Server
Kerberos (double hop)
On parlait des speakers, il y a une chose qui leur tient à cœur !
Cluster log
Attention aux gaps présents avec Windows Server 2008 R2 – A collecter immédiatement le problème rencontré
Possibilité d’utiliser l’option –UseLocalTime pour récupérer la date et heure au bon format
Beaucoup d’informations
Mots clés de recherche : <nom groupe de disponibilité>, [hadrag], [hadrag] Lease Thread terminated, [hadrag] Stopping Health Worker Thread,
rcm::RcmApi::MoveGroup, has exceeded its restart limit, [NETFTAPI] Signaled NetftRemoteUnreachable,
lost quorum, shutting down, Log Begin
SQL Server error log
Mots clés de recherche : RESOLVING, NOT AVAILAIBLE, Windows Failover Cluster, availability group, Quorum, Connection with primary database terminated,
Connection with primary database terminated, Connection for availability group, lease
Sessions d’événements étendues
sp_server_diagnostics information dans system_health + SQLDIAG (procédure exécutée depuis la dll de ressource via le resource control manager)
AlwaysOn XE
Installer Windows cluster en mode Active directory-detached cluster :
Windows Server 2012 R2
Kerberos non supporté
Authentification SQL Server conseillé
CNO = Cluster Name Object
VCO = Virtual Computer Object
MaxUserPort
pour augmenter le nombre maximum de ports de connexion éphémères (5000 par défaut)
TCP Chimmney
pour décharger le traitement TCP (découpe et ré assemblement des paquets) depuis les processeurs vers les cartes réseaux qui le supportent (peut impliquer problème de performance)
Basculement inattendu
Problème de ressources, redémarrage de service, redémarrage du serveur, crash du processus
Basculement attendu mais non déclenché
Problème de disque et qui concerne une base de données utilisateur
Problème de connexion à l’AD
Etat de santé d’un groupe de disponibilité:
Modèle de santé à 4 niveaux :
Cluster (nœuds, quorum)
Groupe de disponibilité
Réplicas
Bases de données