En SolidQ tenemos mucha experiencia en alta disponibilidad, y eso incluye database mirroring y AlwaysOn. Tanto si tienes implementada cualquiera de estas tecnologías como si estás pensando en hacerlo, te interesa esta sesión en la que hablaremos no tanto de cómo implementarlo, sino de qué problemas podemos encontrarnos con ellos funcionando así como cómo resolverlos. La idea es que salgas de aquí con la seguridad de como de robusta es esta tecnología y si realmente cubre tus necesidades.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Diagnóstico y Resolución de problemas en DatabaseMirroring y evolución a AlwaysON
Monitorizacion AlwaysonModelo 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 AlwaysOnModelo 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 AlwaysonModelo de evaluación de estado de salud: Políticas
16
Algoritmo de evaluación
StartEjecutar políticas
definidas AlwaysOnAlguna 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 AlwaysonModelo 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 AlwaysonModelo de evaluación de estado de salud
18
Monitorizacion AlwaysonModelo 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ónModelo 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 AlwaysonModelo 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 AlwaysOnDetección de Failover AlwaysOn
23
Frecuencia de chequeo configurable
– Propiedad HealthCheckTimeout
• En milisegundos
• Por defecto 60000
ALTER SERVER CONFIGURATION SET FAILOVERCLUSTER PROPERTY HealthCheckTimeout = ###;
Chequeo estado AlwaysOnDetecció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 AlwaysOnDetección de Failover AlwaysON
25
ALTER SERVER CONFIGURATION SET FAILOVERCLUSTER 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 AlwaysOnBuenas 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 commandlike '%HADR%' or command like '%DB%' or commandlike '%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 intentarobtener 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