[Powerpoints] - Tecnicas_Avanzadas_de_Monitoreo

Anuncio
Técnicas avanzadas de
Monitoreo
Utilizando DMV, Extended Events y Service Broker
Javier Villegas – DBA | MCP | MCTS
Speaker Bio
Picture Here
Database Administrator
Desde el año 1997 – SQL 6.0 -> SQL 2016
MCP - MCTS
DBA en Mediterranean Shipping Company (MSC)
Desde el año 2006
@javier_vill
Miembro de la comunidad PASS
Desde el año 2008
https://ar.linkedin.com/in/javiervillegas
http://sql-javier-villegas.blogspot.com.ar/
2
Agenda




Analizando la actividad de SQL Server
Monitoreo Continuo con Extended Events (XEvents)
Monitoreo Proactivo (DMV / Powershell)
Auditoria utilizando Service Broker
3
Analizando la actividad de SQL Server
dbo.SP_DBA_CurrentlyExec
http://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
4
dbo.SP_DBA_CurrentlyExec
Ejemplo
Bloqueos
5
5
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
6
dbo.SP_WhoIsActive
7
7
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
8
sp_server_diagnostics
Create_Time
Timestamp de creación del registro
Component_Type
Tipo de Componente
Component_Name
Informa el componente involucrado o del nombre de un Availability Group de AlwaysOn
State
Informa el estado del componente, los valores pueden ser 0, 1, 2 o 3
State_Desc
Descripción del estado de lo que ha sido informado en “State” , los valores pueden ser
“Unknown”, “Clean”, “Warning”, “Error”
Data
Registro XML con los datos recopilados del componente en cuestión
9
9
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
Events
Datos de los eventos del server
Availability Group
Datos relacionados al Availability Group en caso de que la instancia utilice AlwaysOn
10
10
sp_server_diagnostics
Ejemplos
11
11
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


12
SQL Profiler *
Extended Events
12
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





13
I/O
Waits
Parámetros de un Query
Plan de Ejecuciones
Lock
13
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
14
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
15
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
16
Monitoreo Proactivo utilizando DMV y PowerShell
 Recolección continua y de información importante relacionada con los signos vitales del
entorno










17
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
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
18
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







19
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
Monitoreo Proactivo utilizando DMV y PowerShell
20
20
Monitoreo Proactivo utilizando DMV y PowerShell
21
21
Monitoreo Proactivo utilizando DMV y PowerShell
22
22
Monitoreo Proactivo utilizando DMV y PowerShell
23
23
Monitoreo Proactivo utilizando DMV y PowerShell
24
24
DEMO
Monitoreo Proactivo
Auditoria
25
25
Preguntas?
Gracias por asistir
Follow @pass24hop
Share your thoughts with hashtags
#pass24hop & #sqlpass
Descargar