Download - Personalización Data Collectors

Transcript
Page 1: Personalización Data Collectors

Personalización de DataCollector

Enrique Catalá Bañuls

REL-319

Mentor – Área relacional MCT – MCTS – MCITP – MAP 2010

[email protected]

Page 2: Personalización Data Collectors

α Comprensión del modelo de arquitectura DataCollector

α Internals β Aprender su modelo relacional

β Explotar la información

β Construir tus propios reportes! POR FIN ALGUIEN LO EXPLICA!!!!!

α Arquitectura de SolidQ

Objetivos de la sesión

Page 3: Personalización Data Collectors

α Active Directory β SQL Server y SQL Agent levantados con cuenta de AD

α Instancia con el datawarehouse SQL Server 2008 en adelante

α Instancias suscriptoras SQL Server 2008 en adelante

α Instancias de reporting SQL Server 2008 R2

DataCollector Requisitos

Page 4: Personalización Data Collectors

α Es el framework que enlaza capturas, análisis, solución de problemas y persistencia de los informes de diagnóstico de SQL Server

α Consiste en una suite de herramientas para β Captura de datos con poca sobrecarga

β Monitor de rendimiento, solucionador de problemas y optimización

β Persistencia de datos de diagnósticos

β Reporting

DataCollector Introducción

Page 5: Personalización Data Collectors

• Proveedor de datos

– Fuentes de información – Ej. SQL Trace, Perform counters, DMVs, consultas T-SQL, logs

• Tipo colector

– Conoce como leer y exponer datos de un proveedor de datos específico

• Elemento colección

– Instancia de un tipo colector

– Determina las entradas de datos y su frecuencia Ej. Solo recoge wait_time_ms y max_wait_time_ms desde sys.dm_os_wait_stats DMV cada 5

segundos).

DataCollector Conceptos

Page 6: Personalización Data Collectors

α Lo primero siempre es crear la instancia recolectora

Datacollector Configuración estandard

Page 7: Personalización Data Collectors

α Lo segundo será ir suscribiendo instancias para monitorizar

DataCollector Suscripción de nueva instancia

Page 8: Personalización Data Collectors

Reportes estandard Uso de disco

Page 9: Personalización Data Collectors

Reportes estandard Estadísticas de consultas

Page 10: Personalización Data Collectors

Reportes estandard Actividad de servidor

Page 11: Personalización Data Collectors

α Disk Usage (retained for 730 days)

β Disk Usage – Data Files: Transact-SQL data collection in non-cached mode – gathered and immediately uploaded every 6 hours

β Disk Usage – Log Files: Transact-SQL data collection in non-cached mode – gathered and immediately uploaded every 6 hours

α Query Statistics (retained for 14 days)

β Query Activity: special Query Activity collector type in cached mode – gathered every 10 seconds and uploaded every 15 minutes

α Server Activity (retained for 14 days)

β DMV Snapshots: Transact-SQL data collection in cached mode – gathered every 60 seconds and uploaded every 15 minutes

β Performance Counters: Performance Monitor collection in cached mode – gathered every 60 seconds and uploaded every 15 minutes

Colectores estandard

Page 12: Personalización Data Collectors

Internals Dependencias y relaciones

Page 13: Personalización Data Collectors

Internals Arquitectura de data collector

Page 14: Personalización Data Collectors

α Almacena información de configuración, información en tiempo de ejecución, auditorías e información de historial de recopilación.

α Todo los datos necesarios para configurar y ejecutar el recopilador de datos están en ella

α La configuración de la recopilación de datos puede implementarse en varios servidores sin tener que usar el sistema de archivos.

α El recopilador de datos puede usar los mecanismos de seguridad existentes de SQL Server para proteger los datos. Además, las funciones de base de datos pueden proporcionar seguridad granular y no es necesario implementar el encadenamiento entre bases de datos.

α Puesto que msdb es una base de datos relacional, es posible garantizar la integridad referencial de los datos de configuración y en tiempo de ejecución.

α Además de almacenar la información específica del recopilador, msdb también se usa para almacenar información de trabajo del Agente SQL Server e información de los paquetes de SSIS.

Internals MSDB

Page 15: Personalización Data Collectors

α Instancia normal y corriente con una BBDD

α Se encuentra como script de ejecución directo en $INSTALL_PATH\MSSQL\INSTALL

β C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2_2\MSSQL\Install

α Se chequea que no sea instancia SQL Express

α ¿Creías que era una BBDD mágica? β Eso si, nadie ha dicho que estuviera bien optimizada

Internals Instancia Datawarehouse

Page 16: Personalización Data Collectors

α Almacenan en MSDB la info critica!!! β Dbo.syscollector_*

β Por culpa de eso tendremos que ingeniarnoslas

α Tienen un job por cada accion de carga y captura hacia datawarehouse

α Imperativamente se crean, configuran y arrancan los colectores del sistema

α No se puede desconfigurar, solo deshabilitar

Internals Instancias suscriptoras

Page 17: Personalización Data Collectors

Datacollector predeterminado

Page 18: Personalización Data Collectors

α Esquemas β Core: Objetos de sistema de configuración de suscripciones

β Sysutility_ucp_core: Tablas de Utility Control Point

γ Solo SQL Server 2008 R2 y superior

γ Si, funciona con esta tecnologia

β Snapshots: Objetos de sistema relacionados con la captura de datos

β Custom_snapshots

γ Este es el esquema sobre el que trabajaremos si queremos añadir funcionalidad

α Triggers de base de datos β Solo sysadmin y mdw_admin pueden eliminar objetos

β A toda tabla creada sobre custom_snapshots se le añade una restricción que chequea el operador para ver si tiene permisos mdw_writer

Internals Algunas interioridades básicas

Page 19: Personalización Data Collectors

α Una fila por cada colector registrado β Collector_set_uid: identificación UID del colector

β Instance_name: Nombre de instancia registrada para seguimiento

β Days_until_expiration: Dias antes de que sea lanzado el purgado de datos

β Operator: Login encargado de realizar la conexión de carga

Internals Core.source_info_internal

Page 20: Personalización Data Collectors

α Contiene una fila por cada snapshot ocurrido en suscriptor

α Tabla intermedia con identificadores

α Imprescindible para correlacionar capturas con instancias

α Columnas β Snapshot_id: pk e identificador de la tabla

β Snapshot_time_id: fk hacia tabla que contiene la hora de captura

β Source_id: Importantisimo. Relaciona la captura con el colector y por tanto con la instancia

Internals core.snapshots_internal

Page 21: Personalización Data Collectors

α Tabla que contiene los contadores de rendimiento

α Columnas: β Performance_counter_id: Identificador del contador

β Path: Path completo al contador

β Object_name: Grupo al que pertenece el contador

β Counter_name: Contador

β Instance_name: Instancia al que se le aplica

β Counter_type: Id numerico identificando counter_name

Internals Snapshots.performance_counter_instances

Page 22: Personalización Data Collectors

α Tabla que contiene datos de captura de contadores

α Es la tabla mas gorda del entorno β Para que nos hagamos una idea, pensad en 100Millones de filas

α No está particionada de serie

α No utiliza compresión

Internals Snapshots.performance_counter_values

Page 23: Personalización Data Collectors

α Debe cumplir un simple esquema, medianamente documentado en BOL

Internals Añadir-modificar colectores

Page 24: Personalización Data Collectors

α Con valor de 6 instancias y una captura por minuto

Internals Estimacion de costes

Cálculos Tiempos Descripcion

horas/pagina/contador 2,016666667 horas se tardan en llenar una página

Paginas/h/contador 0,033611111 Páginas ocupadas por hora por un solo contador

horas/pagina 0,013908046 horas se tardan en llenar una página capturando todos los contadores

Horas/Gb/contador 2114628,267 horas para llenar 1Gb por contador para una instancia

Horas/Gb 14583,64322 horas para llenar 1Gb por todos los contadores para una instancia

Dias/Gb/Instancia 607,6518008 dias para llenar 1Gb por todos los contadores para una instancia

Meses/Gb/Instancia 20,25506003 Meses para llenar 1Gb por todos los contadores para una instancia

Dias/Gb 101,2753001 dias para llenar 1Gb por todos los contadores para todas las instancias

Meses/Gb 3,375843338 meses para llenar 1Gb por todos los contadores para todas las instancias

Page 25: Personalización Data Collectors

Código para crear tus reports

Page 26: Personalización Data Collectors

Reportes personalizados ¿Dónde está el límite?

Page 27: Personalización Data Collectors

Arquitectura final

Page 28: Personalización Data Collectors

SolidQDataCollector

Page 29: Personalización Data Collectors

α Modelo de arquitectura DataCollector «sencillo»

α Crear nuestros propios colectores es la gran potencia

α Modelo relacional β No es todo lo eficiente que nos gustaria

Objetivos de la sesión Conclusiones

Page 30: Personalización Data Collectors

Si quieres disfrutar de las mejores sesiones de

nuestros mentores de España y Latino América,

ésta es tu oportunidad.

http://summit.solidq.com/madrid/