Tecnicas avanzadas de monitoreo

Preview:

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