Upload
spanishpassvc
View
468
Download
2
Embed Size (px)
Citation preview
Técnicas avanzadas de
Monitoreo
Javier Villegas – DBA | MCP | MCTS
Utilizando DMV, Extended Events y Service Broker
Speaker Bio
2
Database AdministratorDesde el año 1997 – SQL 6.0 -> SQL 2016
MCP - MCTS
DBA en Mediterranean Shipping Company (MSC)
Desde el año 2006
Miembro de la comunidad PASS
Desde el año 2008
Picture Here
@javier_vill
http://sql-javier-villegas.blogspot.com.ar/
https://ar.linkedin.com/in/javiervillegas
Agenda
3
Analizando la actividad de SQL Server
Monitoreo Continuo con Extended Events (XEvents)
Monitoreo Proactivo (DMV / Powershell)
Auditoria utilizando Service Broker
Analizando la actividad de SQL Server
4
dbo.SP_DBA_CurrentlyExechttp://1drv.ms/1j9es6f
• Nos permite visualizar rápida y ágilmente toda la actividad de SQL.
• Cada fila representa una sesión activa dentro de la instancia
• Podemos ver:
• SPID, Uso total de CPU, Estado, Hora de Inicio, tiempo de ejecución, Tiempos de Lectura/Escritura, SQL
Statement, Nombre de Base de Datos y utilización del transaction log de la misma, Nombre de objeto, Tipo de
Wait Stat, Login, Host y nombre de la aplicación
• En caso de detectar bloqueos aparecerá un segundo resultset mostrando solo las sesiones
involucradas en los mismos
• Útil para detectar rápidamente problemas de performance
5
dbo.SP_DBA_CurrentlyExec
Ejemplo
Bloqueos
5
6
dbo.SP_DBA_CurrentlyExec
dbo.SP_DBA_CurrentlyExec @info=1
dbo.SP_DBA_CurrentlyExec @Filter_Name=‘App_Name’, @Filter_Value=‘SSIS’
dbo.SP_DBA_CurrentlyExec @Filter_Name=‘Host_Name’, @Filter_Value=‘WORKSTS01’
6
7
dbo.SP_WhoIsActive
7
8
sp_server_diagnostics
Captura información de diagnostico y datos sobre estado de salud del entorno
SQL Server para detectar posibles fallos en el sistema.
Es un proceso que se ejecuta constantemente y que actualiza la información
de salida periódicamente
8
9
sp_server_diagnostics
Create_TimeTimestamp de creación del registro
Component_TypeTipo de Componente
Component_Name
Informa el componente involucrado o del nombre de un Availability Group de AlwaysOn
StateInforma el estado del componente, los valores pueden ser 0, 1, 2 o 3
State_DescDescripción del estado de lo que ha sido informado en “State” , los valores pueden ser “Unknown”, “Clean”, “Warning”, “Error”
DataRegistro XML con los datos recopilados del componente en cuestión
9
10
sp_server_diagnostics
System
Datos de utilización de CPU, Dumps, Pages, etc.
Resource
Datos de memoria
Query_processing
Datos de procesamientos de Queries (Tasks, Wait Stats, bloques, etc.)
IO_subsystem
Datos de I/O
EventsDatos de los eventos del server
Availability Group
Datos relacionados al Availability Group en caso de que la instancia utilice AlwaysOn
10
11
sp_server_diagnostics
11
Ejemplos
12
Analizando la actividad de SQL Server
Otras herramientas
Performance Monitor
Activity Monitor
SQL Server Performance Dashboard https://www.microsoft.com/en-us/download/details.aspx?id=29063
SQL Profiler *
Extended Events
12
13
Monitoreo Continuo utilizando Extended Events
Extended Events
Sistema de control de eventos general
Correlación de base de datos y sistema operativo
Herramienta de seguimiento (Performance Monitor / SQL Trace)
Configuración de control de eventos basado en T-SQL
Útil para realizar troubleshooting sin impactar la performance (Carga adicional mínima)
Recolectar datos desde cualquier lado
I/O
Waits
Parámetros de un Query
Plan de Ejecuciones
Lock
13
14
Monitoreo Continuo utilizando Extended Events
Extended Events - Componentes
Session
Contiene la definición de lo que voy a recolectar, cuando recolectarlo y donde almacenarlo
Target (Destino)
Memoria (Ring Buffer)
A un archivo
Package (Paquete)
Contenedores Lógicos
SQLOS, SQLSERVER, SecAudit, SQLCLR, etc.
Events
Recolección de datos de la actividad de SQL Actions
14
15
Monitoreo Continuo utilizando Extended Events
Extended Events
Podemos realizar los mismos tipos de capturas que con SQL Profiler
Mucho mas ágil que SQL Profiler.
Fácil de manipular.
15
16
DEMO
Visualizando la actividad de SQL Server
SP_DBA_CurrentlyExec
SP_Server_Diagnostics
Extended Events
Errores de SQL
Deadlocks
Statements que se ejecutan por tiempo prolongado
16
17
Monitoreo Proactivo utilizando DMV y PowerShell
Recolección continua y de información importante relacionada con los signos vitales del
entorno
Versión, Edición de SQL y Windows
MAXDOP
Cluster
Database Mirroring/AlwaysOn
Network
Transacciones Activas
Transacciones por segundo
Conexiones Numero de Requerimientos por Segundo
Contadores de Performance Monitor relacionados con I/O utilizando PowerShell
Latencias de IO
17
18
Monitoreo Proactivo utilizando DMV y PowerShell
Adicionalmente…
SQL Job que se ejecuta cada minuto y realiza las siguientes tareas Ejecuta “currently executing”. Almacena el resultado solo si hay bloqueos o si hay algún Statement
ejecutándose por mas de 2 minutos. Envía email con reportes de bloqueos (configurable)
La tabla utilizada para guardar la salida de “Currently Executing” es útil cuando tenemos que investigar problemas de performance en el pasado.
Detecta Statements corriendo por mas de N minutos (Envía email con reporte)
Chequea utilización del porcentaje de uso del transaction log de todas las bases (Envía email con reporte)
Espacio libre en los discos (envía email cuando quedan menos de 1 GB o 7 % del total)
Detecta transacciones abiertas por mas de N minutos
Detecta SQL Dumps
Detecta errores críticos en el SQL Error Log
Utilización de los discos utilizado contadores de PerfMon
Reporte de Latencia de los discos
18
19
Auditoria
Utilizando Service Broker podemos realizar un sistema de que nos permitirá auditar la
manipulación de objetos dentro de una base de datos de usuario,
Tendremos un registro identificando el CREATE , DROP o ALTER
Cada registro nos informara lo siguiente:
TimeStamp del Evento
Tipo de Evento
CREATE_PROCEDURE, DROP_TABLE, etc.
Login con el que se realizo dicho evento
Esquema y Nombre de Objeto
Tipo de Objeto
Session ID con el que se realizo el evento
HostName (*)
Detalle del Evento XML
19
20
Monitoreo Proactivo utilizando DMV y PowerShell
20
21
Monitoreo Proactivo utilizando DMV y PowerShell
21
22
Monitoreo Proactivo utilizando DMV y PowerShell
22
23
Monitoreo Proactivo utilizando DMV y PowerShell
23
24
Monitoreo Proactivo utilizando DMV y PowerShell
24
25
DEMO
Monitoreo Proactivo
Auditoria
25
Preguntas?
Gracias por asistirFollow @pass24hop
Share your thoughts with hashtags
#pass24hop & #sqlpass