monitoring SQL Server

Report
3 Octobre 2013
Les Communautés MS
David Baffaleuf
http://blog.capdata.fr
[email protected]
@dbaffaleuf
Management d’infrastructures IT hétérogènes
www.osmozium.com
AllDB © DBA à distance
infogérance
www.capdata.fr
 Conseil
 Service
 Formation




Support Management
Technical Management
Data Management
Production Management
Points clés du monitoring SQL Server
1.
2.
3.
4.
5.
6.
7.
8.
Définir le besoin de monitoring
La disponibilité de SQL Server
La volumétrie des bases et file systems
Les tâches de maintenance
La performance
La sécurité
L’environnement immédiat
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
 Outil indépendant
Connexion OK / KO
+ SELECT @@SERVERNAME  Empreinte faible
ou requête fonctionnelle ?
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.
COMPTEUR
SEUIL
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%
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
SUSPENDED
RUNNING
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
http://www.codeplex.com/
Des questions ?
Merci à Nos Sponsors
Merci à nos partenaires et
membres
Pour adhérer à l’association :
http://www.rebuild.f/adhesions
Ou
[email protected]
Nous suivre sur Facebook :
https://www.facebook.com/lescommunautesms
Nous suivre sur Twitter :
https://twitter.com/CommunautesMS

similar documents