El documento describe la arquitectura y funcionalidad del sistema DataCollector de SolidQ. DataCollector recopila datos de diagnóstico de instancias de SQL Server como contadores de rendimiento y estadísticas de consultas y los almacena en una instancia central de almacenamiento de datos. Los usuarios pueden crear sus propios colectores y generar informes personalizados a partir de los datos recopilados. DataCollector usa una arquitectura relacional almacenando la configuración y datos en la base de datos msdb para facilitar la administración, segur
2. Objetivos de la sesión
α 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
3. DataCollector
Requisitos
α 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
4. DataCollector
Introducción
α 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
5. DataCollector
Conceptos
• 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).
11. Colectores estandard
α 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
14. Internals
MSDB
α 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.
15. Internals
Instancia Datawarehouse
α Instancia normal y corriente con una BBDD
α Se encuentra como script de ejecución directo en
$INSTALL_PATHMSSQLINSTALL
β C:Program FilesMicrosoft SQL ServerMSSQL10_50.SQL2008R2_2MSSQLInstall
α 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
16. Internals
Instancias suscriptoras
α 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
18. Internals
Algunas interioridades básicas
α 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
19. Internals
Core.source_info_internal
α 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
20. Internals
core.snapshots_internal
α 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
21. Internals
Snapshots.performance_counter_instances
α 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
22. Internals
Snapshots.performance_counter_values
α 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
24. Internals
Estimacion de costes
α Con valor de 6 instancias y una captura por minuto
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
29. Objetivos de la sesión
Conclusiones
α Modelo de arquitectura DataCollector «sencillo»
α Crear nuestros propios colectores es la gran potencia
α Modelo relacional
β No es todo lo eficiente que nos gustaria
30. 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/