SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Diagnóstico y Resolución de problemas en Database
Mirroring y evolución a AlwaysON
400
REL40007
@enriquecatala Enrique Catala Bañuls
Mentor ecatala@solidq.com
MVP - MCT – MAP – Technical
Ranger
Rubén Garrigós
Mentor rgarrigos@solidq.com
MCT – MCAD – MCSD – MCITP
EN CUMPLIMIENTO CON LA LEY 15/1999 DE PROTECCION DE DATOS DE
CARÁCTER PERSONAL, PONEMOS EN TU CONOCIMIENTO QUE
ESTA SESIÓN VA A SER GRABADA
POR SOLIDQ Y QUE ESTA GRABACIÓN PODRÍA SER UTILIZADA COMO MATERIAL
DE MARKETING Y HACERSE PUBLICA A TRAVÉS DE DIVERSOS MEDIOS, COMO
POR EJEMPLO NUESTRA PAGINA WEB.
TENIENDO EN CUENTA QUE TU IMAGEN PUEDE APARECER EN ESA GRABACIÓN,
SI NO DESEAS APARECER, ROGAMOS NOS LO COMUNIQUES POR LOS MEDIOS
QUE YA CONOCES.
COMUNICADO
2
Agenda
3
1. Monitorización de DB Mirroring
2. Operaciones inválidas en el log
3. Monitorización AlwaysOn
4. Chequeo de estado AlwaysOn
5. Buenas practicas
6. Bloqueos en réplicas de solo lectura
Monitorización de DB Mirroring
4
Eventos SQL Server del 1400 al 1500
1480  Cambio de rol en mirroring
1440  Activo como principal
1441  Activo como secundario
1442  Mirror inactivo
1443  Mirror finalizado
1432  Reparación de página en curso
1461  Reparación de página con éxito
1481  Reparación de página fallida
Monitorización de DB Mirroring
5
Eventos de SQL Server configurables (warnings)
Eventos 32042, 32043, 32040 y 32044 respectivamente
Monitorización de DB Mirroring
6
Contadores básicos de rendimiento de DB Mirroring
– Log Harden Time (ms)
– Redo Queue KB
– Send/Receive Ack Time
– Log Send Queue KB
– Transaction Delay
Baseline
Límites variables
– WAN/LAN
– Físico vs Virtual
– Mirror para HA o para DR
– Mirror dedicado o compartido
Monitorización de DB Mirroring
7
Eventos WMI DATABASE_MIRRORING_STATE_CHANGE
Alertas con lógica y que reaccionen a ciertos eventos
– Reintentar volver a poner en marcha la sesión si se ha suspendido
– Destruir el mirror si estamos casi sin espacio en el log del principal
Monitorización de DB Mirroring
Threads
8
Revisar que no agotamos los workers de SQL Server
Threads en una sesión de database mirroring
– Principal
• 1 thread global y 2 treads por cada BBDD en mirror
– Secundario
• 1 thread global y 2 threads por base de datos
• EE  +1 thread redo por cada 4 cores
Es en los thread redo donde podemos encontrarnos
con una operación inválida en el secundario
Podemos diagnosticarlos en base al cambio de estado
a SUSPENDED en el principal y secundario
Monitorización de DB Mirroring
Escenarios N a 1
9
Más apropiado para DR que para HA
Problemas por collations distintos
Colisiones de logins, de bbdd, jobs…
N a 1  N a M instancias/virtuales
No subestimar
– Tener en cuenta la IO agregada
– Capacidad de CPU para hacer los
REDO
Peor escenario
– El secundario común convertido en
principal común de todos
Secundario
común
N principales
Operaciones inválidas log
10
Cuando una operación es introducida en el log, se
transmite de forma “ciega” al secundario
– Independiente de que la réplica sea síncrona o asíncrona
– Lo único que podemos garantizar es que se ha escrito en el
log del secundario pero el redo se hace siempre de forma
asíncrona
– La situación puede ser difícil de solucionar una vez ha ocurrido
el error
Añade o modifica un fichero de la base de datos
– En una ruta que no existe en el secundario
– En un disco que no existe en el secundario
– En un disco con capacidad insuficiente en el secundario
DEMO
11
Operaciones inválidas en el
log
Agenda
12
1. Monitorización de DB Mirroring
2. Operaciones inválidas en el log
3. Monitorización AlwaysOn
4. Chequeo de estado AlwaysOn
5. Buenas practicas
6. Bloqueos en réplicas de solo lectura
Hotfix AlwaysOn
No imperativos pero recomendables
13
KB 2654347 para .NET 3.5 SP1
– ApplicationIntent
– Enrutamiento de solo lectura
– MultiSubnetFailover
KB 2544514 para .net 4 (4.0.2)
Para Windows Server 2008 y 2008 R2
– Son unos cuantos (Windows update!)
2494036, 2616514, 2531907, 2687741, 976097, 980915,
2578103, 2578113
Monitorizacion Alwayson
Modelo de evaluación de estado de salud
14
Se ha potenciado el modelo de evaluación de
estado de salud en dos pilares:
– Políticas de administración declarativa
– Powershell
Monitorizacion AlwaysOn
Modelo de evaluación de estado de salud: Políticas
15
Availability Group State
Availability Replica
Database Replica State
Server
– IsHadrEnabled
– ClusterQuorumState
– HadrManagerStatus
– ClusterQuorumType
Nunca olvides asignar una categoría AlwaysOn
Monitorizacion Alwayson
Modelo de evaluación de estado de salud: Políticas
16
Algoritmo de evaluación
Start
Ejecutar políticas
definidas AlwaysOn
Alguna política en
error?
Marcar categoria
como Warning
NO
Marcar categoria
como Error
YES
End
Reportar categoria
como saludable
¿Alguna política en
Warning?
YES
NO
Se obtienen condiciones AlwaysOn
Monitorizacion Alwayson
Modelo de evaluación de estado de salud
17
¿Dónde creéis que se evalúa el estado?
– ¿En la réplica principal?
– ¿En cualquier secundaria?
– ¿En todas por igual?
Monitorizacion Alwayson
Modelo de evaluación de estado de salud
18
Monitorizacion Alwayson
Modelo de evaluación de estado de salud
19
Availability group errors (any replica)
Availability group warnings (any replica)
Availability group errors (primary)
Availability group warnings (primary)
Availability replica errors (any replica)
Availability replica warnings (any replica)
Availability database errors (any replica)
Availability database warnings (any replica)
Monitorización
Modelo de evaluación de estado de salud: PowerShell
20
Necesario módulo SQLPS
Todo automatizado en 3 cmdlets:
– Test-SqlAvailabilityGroup
– Test-SqlAvailabilityReplica
– Test-SqlDatabaseReplicaState
Flag –AllowUserPolicies importante
Monitorizacion Alwayson
Modelo de evaluación de estado de salud: PowerShell equivalencia
21
Test-SqlAvailabilityGroup
Test-SqlAvailabilityReplica
Test-SqlDatabaseReplicaState
DEMO
22
Previniendo problemas con
DMF, PowerShell y alertas
Chequeo estado AlwaysOn
Detección de Failover AlwaysOn
23
Frecuencia de chequeo configurable
– Propiedad HealthCheckTimeout
• En milisegundos
• Por defecto 60000
ALTER SERVER CONFIGURATION SET FAILOVER
CLUSTER PROPERTY HealthCheckTimeout = ###;
Chequeo estado AlwaysOn
Detección de Failover AlwaysOn
24
Resource DLL ahora llama
sp_server_diagnostics
– 3 ejecuciones por cada HealthCheckTimeout
– Fallos de conexión o devolución datos causarán
Failover
– Conexión dedicada para evaluación
sp_server_diagnostics configurable
– Siguiente slide
Chequeo estado AlwaysOn
Detección de Failover AlwaysON
25
ALTER SERVER CONFIGURATION SET FAILOVER
CLUSTER PROPERTY FailureConditionLevel = #;
Level Condition Failover or Restart Conditions
0 No automatic failover or restart No automatic failover or restart
ever
1 Failover or restart on server down SQL Server service is down
2 Failover or restart on server unresponsive SQL Server instance is not
responsive
3 Failover or restart on critical server errors
(default)
sp_server_diagnostics returns
“system error”
4 Failover or restart on moderate server
errors
sp_server_diagnostics returns
“resource error”
5 Failover or restart on any qualified failure
condition
sp_server_diagnostics returns
“query_processing error”
Monitorización AlwaysOn
Buenas prácticas
26
1. Despliega políticas en todos los servidores
2. Crea al menos un job de evaluación
PowerShell que te envíe correos
3. Crea alertas que te envíen correos
1. Detecta cambios de estado y avísate
2. Detecta situaciones anómalas de rendimiento
y avísate
Bloqueos en réplicas de solo lectura
27
Afecta solo a las réplicas secundarias en solo lectura
Threads en los grupos de disponibilidad
– Distinta aproximación a la de Database Mirroring
– Request queue y worker pool compartido por todas las bbdd de la
instancia
– Se reduce la cantidad media de threads  depende de la carga
– Tamaño del pool > bases de datos activas * 2 < bases de datos
activas * 5 < (max worker thread – 40)
– Los backups y filestream generan threads adicionales
select * from sys.dm_exec_requests where command
like '%HADR%' or command like '%DB%' or command
like '%BRKR%'
Bloqueos en réplicas de solo lectura
28
Cuando una replica está marcada como solo lectura
– Pequeña sobrecarga de 14 bytes para el puntero a las
versiones
– Similar a habilitar Snapshot Isolation/RCSI pero sin el row
versioning en origen
– El row versioning se genera en el secundario en tempdb
El bloqueo del thread de redo ocurre al intentar
obtener un bloqueo de modificación de esquema
(SCH-M) que queda bloqueado por un bloqueo de
estabilidad de esquema (SCH-S)
– En un futuro se podrá configurar el matar la query (log
shipping style)
Bloqueos en réplicas de solo lectura
29
Para su detección
– sys.dm_exec_requests
– Evento de proceso bloqueado en profiler
– Evento extendido log_redo_blocked
– Contador de rendimiento Recovery Queue
Prevención
– Reducir la duración de las consultas
– Planificar las operaciones DDL en ventana de mantenimiento
– Usar tablas temporales
Reacción
– Job que mate las queries que bloquean
DEMO
30
Bloqueos en réplicas de
solo lectura
¿Preguntas?
31
¡Gracias!
Siéntate a comer con nosotros o tómate un café y aclara tus
dudas 
@enriquecatala
Mentor
Enrique Catala Bañuls
Mentor
Rubén Garrigós
32
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/
Síguenos:
33

Contenu connexe

Tendances

Replicacion Postgresql
Replicacion PostgresqlReplicacion Postgresql
Replicacion Postgresqljockbrera
 
Alta disponibilidad con MySQL
Alta disponibilidad con MySQLAlta disponibilidad con MySQL
Alta disponibilidad con MySQLDennis Cohn
 
Pentaho BI
Pentaho BIPentaho BI
Pentaho BIT.I.C
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLCarlos Gustavo Ruiz
 
Analizando la performance del subsistema de IO
Analizando la performance del subsistema de IOAnalizando la performance del subsistema de IO
Analizando la performance del subsistema de IOSpanishPASSVC
 
Consideraciones de hardware para SQL Server
Consideraciones de hardware para SQL ServerConsideraciones de hardware para SQL Server
Consideraciones de hardware para SQL ServerEduardo Castro
 
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...SolidQ
 
Alta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerAlta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerNelson Calero
 
OOW LatinAmerica 2011 - RMAN sin misterios
OOW LatinAmerica 2011 - RMAN sin misteriosOOW LatinAmerica 2011 - RMAN sin misterios
OOW LatinAmerica 2011 - RMAN sin misteriosNelson Calero
 
JIAP2011 - Oracle 11gR2 sin sorpresas
JIAP2011 - Oracle 11gR2 sin sorpresasJIAP2011 - Oracle 11gR2 sin sorpresas
JIAP2011 - Oracle 11gR2 sin sorpresasNelson Calero
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLscastell77
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Práctica 3 FTP
Práctica 3 FTPPráctica 3 FTP
Práctica 3 FTPTerrafx9
 
Curso de PostgreSQL
Curso de PostgreSQLCurso de PostgreSQL
Curso de PostgreSQLEQ SOFT EIRL
 
Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?Javier Loria
 
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...SpanishPASSVC
 

Tendances (20)

Replicacion Postgresql
Replicacion PostgresqlReplicacion Postgresql
Replicacion Postgresql
 
Alta disponibilidad con MySQL
Alta disponibilidad con MySQLAlta disponibilidad con MySQL
Alta disponibilidad con MySQL
 
Pentaho BI
Pentaho BIPentaho BI
Pentaho BI
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQL
 
Postgre
PostgrePostgre
Postgre
 
Analizando la performance del subsistema de IO
Analizando la performance del subsistema de IOAnalizando la performance del subsistema de IO
Analizando la performance del subsistema de IO
 
Consideraciones de hardware para SQL Server
Consideraciones de hardware para SQL ServerConsideraciones de hardware para SQL Server
Consideraciones de hardware para SQL Server
 
Clúster de alta Disponibilidad
Clúster de alta DisponibilidadClúster de alta Disponibilidad
Clúster de alta Disponibilidad
 
Admon PG 1
Admon PG 1Admon PG 1
Admon PG 1
 
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
 
Alta disponibilidad con Pacemaker
Alta disponibilidad con PacemakerAlta disponibilidad con Pacemaker
Alta disponibilidad con Pacemaker
 
OOW LatinAmerica 2011 - RMAN sin misterios
OOW LatinAmerica 2011 - RMAN sin misteriosOOW LatinAmerica 2011 - RMAN sin misterios
OOW LatinAmerica 2011 - RMAN sin misterios
 
JIAP2011 - Oracle 11gR2 sin sorpresas
JIAP2011 - Oracle 11gR2 sin sorpresasJIAP2011 - Oracle 11gR2 sin sorpresas
JIAP2011 - Oracle 11gR2 sin sorpresas
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Práctica 3 FTP
Práctica 3 FTPPráctica 3 FTP
Práctica 3 FTP
 
Curso de PostgreSQL
Curso de PostgreSQLCurso de PostgreSQL
Curso de PostgreSQL
 
Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?Es TEMPDB, por qué es tan importante?
Es TEMPDB, por qué es tan importante?
 
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...
 
03 24 hopes_2014_eladiorincon
03 24 hopes_2014_eladiorincon03 24 hopes_2014_eladiorincon
03 24 hopes_2014_eladiorincon
 

Similaire à Diagnóstico y resolución problemas mirroring AlwaysOn

Optimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassOptimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassJulián Castiblanco
 
Guias y recomendaciones para instalar y configurar clusters de sql server
Guias y recomendaciones para instalar y configurar clusters de sql serverGuias y recomendaciones para instalar y configurar clusters de sql server
Guias y recomendaciones para instalar y configurar clusters de sql serverEnrique Catala Bañuls
 
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...SpanishPASSVC
 
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12cCosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12cGustavo Rene Antunez
 
Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...
Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...
Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...SUSE España
 
Software Líbre con respaldo de Oracle ~ OTN Tour 2013
Software Líbre con respaldo de Oracle ~ OTN Tour 2013Software Líbre con respaldo de Oracle ~ OTN Tour 2013
Software Líbre con respaldo de Oracle ~ OTN Tour 2013Mysql Latinoamérica
 
Software Open Source – Open Day Oracle 2013
Software Open Source – Open Day Oracle 2013Software Open Source – Open Day Oracle 2013
Software Open Source – Open Day Oracle 2013Erik Gur
 
MySQL Team – Open Day Oracle 2013
MySQL Team – Open Day Oracle 2013MySQL Team – Open Day Oracle 2013
MySQL Team – Open Day Oracle 2013Erik Gur
 
Omega peripherals virtualización de entornos críticos
Omega peripherals   virtualización de entornos críticosOmega peripherals   virtualización de entornos críticos
Omega peripherals virtualización de entornos críticosOmega Peripherals
 
AlwaysON Lecciones Aprendidas
AlwaysON Lecciones AprendidasAlwaysON Lecciones Aprendidas
AlwaysON Lecciones AprendidasSpanishPASSVC
 
Charla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosCharla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosRonald Francisco Vargas Quesada
 
Actividad No. 1.14: Replicación de datos en MySQL 5.1
Actividad No. 1.14: Replicación de datos en  MySQL 5.1Actividad No. 1.14: Replicación de datos en  MySQL 5.1
Actividad No. 1.14: Replicación de datos en MySQL 5.1Francisco Medina
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareJulián Castiblanco
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionJosé Antonio Sandoval Acosta
 
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerRecuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerSpanishPASSVC
 
Curso sql server_administracion
Curso sql server_administracionCurso sql server_administracion
Curso sql server_administracionSalvador Ramos
 

Similaire à Diagnóstico y resolución problemas mirroring AlwaysOn (20)

Optimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassOptimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL Pass
 
Guias y recomendaciones para instalar y configurar clusters de sql server
Guias y recomendaciones para instalar y configurar clusters de sql serverGuias y recomendaciones para instalar y configurar clusters de sql server
Guias y recomendaciones para instalar y configurar clusters de sql server
 
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
24 HOP edición Español - Optimizacion de motores sql server desde el codigo h...
 
Guia de estudio_oracle 11 g
Guia de estudio_oracle 11 gGuia de estudio_oracle 11 g
Guia de estudio_oracle 11 g
 
Guia de-estudio-oracle-11-g-pdf
Guia de-estudio-oracle-11-g-pdfGuia de-estudio-oracle-11-g-pdf
Guia de-estudio-oracle-11-g-pdf
 
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12cCosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
 
Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...
Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...
Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...
 
Software Líbre con respaldo de Oracle ~ OTN Tour 2013
Software Líbre con respaldo de Oracle ~ OTN Tour 2013Software Líbre con respaldo de Oracle ~ OTN Tour 2013
Software Líbre con respaldo de Oracle ~ OTN Tour 2013
 
Software Open Source – Open Day Oracle 2013
Software Open Source – Open Day Oracle 2013Software Open Source – Open Day Oracle 2013
Software Open Source – Open Day Oracle 2013
 
MySQL Team – Open Day Oracle 2013
MySQL Team – Open Day Oracle 2013MySQL Team – Open Day Oracle 2013
MySQL Team – Open Day Oracle 2013
 
Omega peripherals virtualización de entornos críticos
Omega peripherals   virtualización de entornos críticosOmega peripherals   virtualización de entornos críticos
Omega peripherals virtualización de entornos críticos
 
AlwaysON Lecciones Aprendidas
AlwaysON Lecciones AprendidasAlwaysON Lecciones Aprendidas
AlwaysON Lecciones Aprendidas
 
Charla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosCharla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productos
 
Monitoreo de Base de Datos en Azure
Monitoreo de Base de Datos en AzureMonitoreo de Base de Datos en Azure
Monitoreo de Base de Datos en Azure
 
Actividad No. 1.14: Replicación de datos en MySQL 5.1
Actividad No. 1.14: Replicación de datos en  MySQL 5.1Actividad No. 1.14: Replicación de datos en  MySQL 5.1
Actividad No. 1.14: Replicación de datos en MySQL 5.1
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccion
 
Db2 10 afinamiento
Db2 10   afinamientoDb2 10   afinamiento
Db2 10 afinamiento
 
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerRecuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
 
Curso sql server_administracion
Curso sql server_administracionCurso sql server_administracion
Curso sql server_administracion
 

Plus de Enrique Catala Bañuls

Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverEnrique Catala Bañuls
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerEnrique Catala Bañuls
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorEnrique Catala Bañuls
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverEnrique Catala Bañuls
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Enrique Catala Bañuls
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextEnrique Catala Bañuls
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorEnrique Catala Bañuls
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresEnrique Catala Bañuls
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Enrique Catala Bañuls
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Enrique Catala Bañuls
 

Plus de Enrique Catala Bañuls (20)

Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql server
 
Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL Server
 
Paralelismo en SQL Server
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en SQL Server
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql server
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v next
 
Paralelismo en sql server
Paralelismo en sql serverParalelismo en sql server
Paralelismo en sql server
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2016
Planes de ejecucion 2016Planes de ejecucion 2016
Planes de ejecucion 2016
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladores
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2
Planes de ejecucion 2Planes de ejecucion 2
Planes de ejecucion 2
 
Planes de ejecucion 1
Planes de ejecucion 1Planes de ejecucion 1
Planes de ejecucion 1
 
Migración a sql server 2016
Migración a sql server 2016Migración a sql server 2016
Migración a sql server 2016
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015
 

Dernier

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 

Dernier (12)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

Diagnóstico y resolución problemas mirroring AlwaysOn

  • 1. Diagnóstico y Resolución de problemas en Database Mirroring y evolución a AlwaysON 400 REL40007 @enriquecatala Enrique Catala Bañuls Mentor ecatala@solidq.com MVP - MCT – MAP – Technical Ranger Rubén Garrigós Mentor rgarrigos@solidq.com MCT – MCAD – MCSD – MCITP
  • 2. EN CUMPLIMIENTO CON LA LEY 15/1999 DE PROTECCION DE DATOS DE CARÁCTER PERSONAL, PONEMOS EN TU CONOCIMIENTO QUE ESTA SESIÓN VA A SER GRABADA POR SOLIDQ Y QUE ESTA GRABACIÓN PODRÍA SER UTILIZADA COMO MATERIAL DE MARKETING Y HACERSE PUBLICA A TRAVÉS DE DIVERSOS MEDIOS, COMO POR EJEMPLO NUESTRA PAGINA WEB. TENIENDO EN CUENTA QUE TU IMAGEN PUEDE APARECER EN ESA GRABACIÓN, SI NO DESEAS APARECER, ROGAMOS NOS LO COMUNIQUES POR LOS MEDIOS QUE YA CONOCES. COMUNICADO 2
  • 3. Agenda 3 1. Monitorización de DB Mirroring 2. Operaciones inválidas en el log 3. Monitorización AlwaysOn 4. Chequeo de estado AlwaysOn 5. Buenas practicas 6. Bloqueos en réplicas de solo lectura
  • 4. Monitorización de DB Mirroring 4 Eventos SQL Server del 1400 al 1500 1480  Cambio de rol en mirroring 1440  Activo como principal 1441  Activo como secundario 1442  Mirror inactivo 1443  Mirror finalizado 1432  Reparación de página en curso 1461  Reparación de página con éxito 1481  Reparación de página fallida
  • 5. Monitorización de DB Mirroring 5 Eventos de SQL Server configurables (warnings) Eventos 32042, 32043, 32040 y 32044 respectivamente
  • 6. Monitorización de DB Mirroring 6 Contadores básicos de rendimiento de DB Mirroring – Log Harden Time (ms) – Redo Queue KB – Send/Receive Ack Time – Log Send Queue KB – Transaction Delay Baseline Límites variables – WAN/LAN – Físico vs Virtual – Mirror para HA o para DR – Mirror dedicado o compartido
  • 7. Monitorización de DB Mirroring 7 Eventos WMI DATABASE_MIRRORING_STATE_CHANGE Alertas con lógica y que reaccionen a ciertos eventos – Reintentar volver a poner en marcha la sesión si se ha suspendido – Destruir el mirror si estamos casi sin espacio en el log del principal
  • 8. Monitorización de DB Mirroring Threads 8 Revisar que no agotamos los workers de SQL Server Threads en una sesión de database mirroring – Principal • 1 thread global y 2 treads por cada BBDD en mirror – Secundario • 1 thread global y 2 threads por base de datos • EE  +1 thread redo por cada 4 cores Es en los thread redo donde podemos encontrarnos con una operación inválida en el secundario Podemos diagnosticarlos en base al cambio de estado a SUSPENDED en el principal y secundario
  • 9. Monitorización de DB Mirroring Escenarios N a 1 9 Más apropiado para DR que para HA Problemas por collations distintos Colisiones de logins, de bbdd, jobs… N a 1  N a M instancias/virtuales No subestimar – Tener en cuenta la IO agregada – Capacidad de CPU para hacer los REDO Peor escenario – El secundario común convertido en principal común de todos Secundario común N principales
  • 10. Operaciones inválidas log 10 Cuando una operación es introducida en el log, se transmite de forma “ciega” al secundario – Independiente de que la réplica sea síncrona o asíncrona – Lo único que podemos garantizar es que se ha escrito en el log del secundario pero el redo se hace siempre de forma asíncrona – La situación puede ser difícil de solucionar una vez ha ocurrido el error Añade o modifica un fichero de la base de datos – En una ruta que no existe en el secundario – En un disco que no existe en el secundario – En un disco con capacidad insuficiente en el secundario
  • 12. Agenda 12 1. Monitorización de DB Mirroring 2. Operaciones inválidas en el log 3. Monitorización AlwaysOn 4. Chequeo de estado AlwaysOn 5. Buenas practicas 6. Bloqueos en réplicas de solo lectura
  • 13. Hotfix AlwaysOn No imperativos pero recomendables 13 KB 2654347 para .NET 3.5 SP1 – ApplicationIntent – Enrutamiento de solo lectura – MultiSubnetFailover KB 2544514 para .net 4 (4.0.2) Para Windows Server 2008 y 2008 R2 – Son unos cuantos (Windows update!) 2494036, 2616514, 2531907, 2687741, 976097, 980915, 2578103, 2578113
  • 14. Monitorizacion Alwayson Modelo de evaluación de estado de salud 14 Se ha potenciado el modelo de evaluación de estado de salud en dos pilares: – Políticas de administración declarativa – Powershell
  • 15. Monitorizacion AlwaysOn Modelo de evaluación de estado de salud: Políticas 15 Availability Group State Availability Replica Database Replica State Server – IsHadrEnabled – ClusterQuorumState – HadrManagerStatus – ClusterQuorumType Nunca olvides asignar una categoría AlwaysOn
  • 16. Monitorizacion Alwayson Modelo de evaluación de estado de salud: Políticas 16 Algoritmo de evaluación Start Ejecutar políticas definidas AlwaysOn Alguna política en error? Marcar categoria como Warning NO Marcar categoria como Error YES End Reportar categoria como saludable ¿Alguna política en Warning? YES NO Se obtienen condiciones AlwaysOn
  • 17. Monitorizacion Alwayson Modelo de evaluación de estado de salud 17 ¿Dónde creéis que se evalúa el estado? – ¿En la réplica principal? – ¿En cualquier secundaria? – ¿En todas por igual?
  • 18. Monitorizacion Alwayson Modelo de evaluación de estado de salud 18
  • 19. Monitorizacion Alwayson Modelo de evaluación de estado de salud 19 Availability group errors (any replica) Availability group warnings (any replica) Availability group errors (primary) Availability group warnings (primary) Availability replica errors (any replica) Availability replica warnings (any replica) Availability database errors (any replica) Availability database warnings (any replica)
  • 20. Monitorización Modelo de evaluación de estado de salud: PowerShell 20 Necesario módulo SQLPS Todo automatizado en 3 cmdlets: – Test-SqlAvailabilityGroup – Test-SqlAvailabilityReplica – Test-SqlDatabaseReplicaState Flag –AllowUserPolicies importante
  • 21. Monitorizacion Alwayson Modelo de evaluación de estado de salud: PowerShell equivalencia 21 Test-SqlAvailabilityGroup Test-SqlAvailabilityReplica Test-SqlDatabaseReplicaState
  • 23. Chequeo estado AlwaysOn Detección de Failover AlwaysOn 23 Frecuencia de chequeo configurable – Propiedad HealthCheckTimeout • En milisegundos • Por defecto 60000 ALTER SERVER CONFIGURATION SET FAILOVER CLUSTER PROPERTY HealthCheckTimeout = ###;
  • 24. Chequeo estado AlwaysOn Detección de Failover AlwaysOn 24 Resource DLL ahora llama sp_server_diagnostics – 3 ejecuciones por cada HealthCheckTimeout – Fallos de conexión o devolución datos causarán Failover – Conexión dedicada para evaluación sp_server_diagnostics configurable – Siguiente slide
  • 25. Chequeo estado AlwaysOn Detección de Failover AlwaysON 25 ALTER SERVER CONFIGURATION SET FAILOVER CLUSTER PROPERTY FailureConditionLevel = #; Level Condition Failover or Restart Conditions 0 No automatic failover or restart No automatic failover or restart ever 1 Failover or restart on server down SQL Server service is down 2 Failover or restart on server unresponsive SQL Server instance is not responsive 3 Failover or restart on critical server errors (default) sp_server_diagnostics returns “system error” 4 Failover or restart on moderate server errors sp_server_diagnostics returns “resource error” 5 Failover or restart on any qualified failure condition sp_server_diagnostics returns “query_processing error”
  • 26. Monitorización AlwaysOn Buenas prácticas 26 1. Despliega políticas en todos los servidores 2. Crea al menos un job de evaluación PowerShell que te envíe correos 3. Crea alertas que te envíen correos 1. Detecta cambios de estado y avísate 2. Detecta situaciones anómalas de rendimiento y avísate
  • 27. Bloqueos en réplicas de solo lectura 27 Afecta solo a las réplicas secundarias en solo lectura Threads en los grupos de disponibilidad – Distinta aproximación a la de Database Mirroring – Request queue y worker pool compartido por todas las bbdd de la instancia – Se reduce la cantidad media de threads  depende de la carga – Tamaño del pool > bases de datos activas * 2 < bases de datos activas * 5 < (max worker thread – 40) – Los backups y filestream generan threads adicionales select * from sys.dm_exec_requests where command like '%HADR%' or command like '%DB%' or command like '%BRKR%'
  • 28. Bloqueos en réplicas de solo lectura 28 Cuando una replica está marcada como solo lectura – Pequeña sobrecarga de 14 bytes para el puntero a las versiones – Similar a habilitar Snapshot Isolation/RCSI pero sin el row versioning en origen – El row versioning se genera en el secundario en tempdb El bloqueo del thread de redo ocurre al intentar obtener un bloqueo de modificación de esquema (SCH-M) que queda bloqueado por un bloqueo de estabilidad de esquema (SCH-S) – En un futuro se podrá configurar el matar la query (log shipping style)
  • 29. Bloqueos en réplicas de solo lectura 29 Para su detección – sys.dm_exec_requests – Evento de proceso bloqueado en profiler – Evento extendido log_redo_blocked – Contador de rendimiento Recovery Queue Prevención – Reducir la duración de las consultas – Planificar las operaciones DDL en ventana de mantenimiento – Usar tablas temporales Reacción – Job que mate las queries que bloquean
  • 30. DEMO 30 Bloqueos en réplicas de solo lectura
  • 32. ¡Gracias! Siéntate a comer con nosotros o tómate un café y aclara tus dudas  @enriquecatala Mentor Enrique Catala Bañuls Mentor Rubén Garrigós 32
  • 33. 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/ Síguenos: 33