3 Octobre 2013 Les Communautés MS
Management d’infrastructures IT hétérogènes Support Management Technical Management Data Management Production Management AllDB © DBA à distance infogérance Conseil Service Formation David Baffaleuf
Points clés du monitoring SQL Server 1.Définir le besoin de monitoring 2.La disponibilité de SQL Server 3.La volumétrie des bases et file systems 4.Les tâches de maintenance 5.La performance 6.La sécurité 7.L’environnement immédiat 8.Et les outils dans tout ça ?
Pourquoi faire Criticité des données d’entreprise Réactivité par rapport aux incidents Parfois même proactivité Connaître ses instances: Charge Profil d’utilisation = BASELINE !! Prendre des décisions avec la connaissance de l’environnement.
Définir le besoin de monitoring Trop ou trop peu ? Capacité de filtrage Automatiser la collecte Historiser les données Définir la rétention Faire des stats incidentogènes Postmortem / analyse à postériori
Disponibilité de SQL Server Garantir l’accès aux données dans les meilleures conditions de performance. Tester la présence des processus associés à SQL Server Scruter les sources d’information sur les erreurs rencontrées.
Présence des processus Permet de détecter l’indisponibilité le plus tôt possible sqlservr sqlagent fdhost logread distrib etc… Connexion OK / KO + SELECT ou requête fonctionnelle ? Outil indépendant Empreinte faible
Remontée d’erreur ERRORLOG, journaux d’évènement Ring buffers, trace par défaut, system_health (Xevents) Alertes SQL Agent Severity 17 (pb mémoire) et de 20 à 25. Inclure l’erreur 825 SQL Trace / Xevents xp_readerrorlog / logparser. Attention aux erreurs non formalisées: a significant part of sql server memory has been paged out... SQL Server has encountered xxx occurrence(s) of IO requests taking longer than 15 seconds…
Volumétrie bases et file systems Capacity planning Proactivité grâce aux seuils Profil transactionnel Reports SSMS, Object Details (F7) Alertes SQL Agent, xp_fixeddrives, SQLCLR… Data Collector
Tâches de maintenance Backup, rebuild index, dbcc checkdb, autre… Contrôler la sortie des jobs: DB mail, xp_sqlagent_enum_jobs, sysjobhistory... Mais aussi lorsque la tâche n’a pas été exécutée ? => une logique de test indépendante de l’exécution +100 jobs, le mail n’est plus adapté =>
Performances 1/4 Historiser les compteurs clés. Alertes SQL Agent, Xevents, Data Collector, Perfmon. COMPTEURSEUIL Buffer cache: Page Life Expectancy > (max server memory / 4Gb) * 300 Ex: BP = 30Gb, PLE = 2250 secs Percent Log Used (base) < 60% Process Blocked < 5 Free space in Tempdb > 40% Processor % < 90% Average Disk sec/read, sec/write < 10ms PageFile % Usage < 10% Lancer le script
Performances 2/4 Surveiller les attentes Là où l’instance perd son temps La base de l’analyse de perf Data Collector, DMVs System_health (Xevents) RUNNABLE RUNNING SUSPENDED
Performances 3/4 Surveiller la concurrence (verrous) Activity Monitor ! sys.dm_os_waiting_tasks, sys.dm_tran_locks. Utiliser le Blocked Process Report avec SQL Trace ou Xevents. Débrayer le mode d’isolation en utilisant Read Committed Snapshot.
Performances 4/4 Tracer les requêtes consommatrices Souvent à l’origine de nombreux problèmes sur l’instance (mémoire, CPU, entrées / sorties, attentes, etc...) Data Collector, SQL Trace, Xevents. Vues dynamiques de gestion: sys.dm_exec_query_stats sys.dm_exec_sql_text() sys.dm_exec_query_plan() Outils tiers (Plan explorer)
La sécurité Identifier les risques: (mots de passe, connexions SSL, etc. Authentification..) Encryption des données (certs, TDE) Vol de données / vol de sauvegardes. Comptes de service. Permissions système et permissions sur les objets. -> !! SQL Injection !!
L’environnement immédiat Système d’exploitation, host: mémoire, programmes concurrents, antivirus, ressources matérielles insuffisantes, etc... Stockage: cache baie sous dimensionné en écriture, mauvais choix de RAID, nombre de disques insuffisants dans le groupe, IO queue depth par défaut, etc... Hyperviseur: problème de paramétrage, cpu ready, entrées / sorties, sur-mutualisation, etc...
(Et) Les outils (dans tout ça) Intégrés à SQL Server: SQL agent, SQLDIAG, vues dynamiques, SQL Trace, Xevents, Data Collector … Fournis par MSFT (gratuits): logparser, SCOM, Perfmon, ETW, Powershell, SQL-DMO, SQL Nexus, RML utilities, Performance Dashboard, etc… Fournis par des éditeurs tiers (Gratuits/payants): SQL Sentry, Quest, Red Gate, etc… Fournis par la communauté: CODEPLEX
Des questions ?
Merci à Nos Sponsors
Merci à nos partenaires et membres
Pour adhérer à l’association : Ou Nous suivre sur Facebook : Nous suivre sur Twitter :