Nos posts anteriores mostrei como configurar AlwaysOn Availability Groups (links
abaixo), neste post vou mostrar como monitorar um ambiente de AlwaysOn. As opções que irei mostrar neste post serem
tanto para AlwaysOn Availability Groups
quanto Read-scale Availability Group.
Links Configurando AlwaysOn
Availability Groups:
O ambiente de AlwaysOn pode ser monitorado da interface
gráfica ou por T-SQL, além de contadores no System Monitor.
O Dashboard mostra todas as Réplicas e o Status de cada Banco de Dados.
Podemos acrescentar mais informações ao Dashboard, algumas bem úteis para avaliar a transferência das transações para as demais Réplicas, principalmente no modo de operação assíncrono.
Recomendo as duas colunas em destaque abaixo, para monitorar a fila de envio de transações para as Réplicas, além da fila de execução destas transações nas Réplicas.
Conseguimos obter informações similares utilizando T-SQL, acessando Views de sistema.
SELECT n.group_name as GrupoAlwaysOn,n.replica_server_name as
Servidor,
db_name(drs.database_id) as BAnco,
drs.synchronization_state_desc as
StatusSincronia,
drs.synchronization_health_desc as
StatusAlwaysOn
FROM sys.dm_hadr_availability_replica_cluster_nodes n
join sys.dm_hadr_availability_replica_cluster_states cs on n.replica_server_name
= cs.replica_server_name
join sys.dm_hadr_availability_replica_states rs on rs.replica_id = cs.replica_id
join sys.dm_hadr_database_replica_states drs on rs.replica_id=drs.replica_id
ORDER BY n.replica_server_name,
db_name(drs.database_id)
SELECT r.replica_server_name
as Servidor, db_name(rs.database_id) as Banco,
rs.synchronization_state_desc as
StatusAlwaysOn,
isnull(convert(varchar(20),rs.last_commit_time,103) + ' ' + convert(varchar(20),rs.last_commit_time,108),'n/a') as
UltimaDataHoraSinc,
isnull(rs.log_send_rate,0) as FilaEnvio,isnull(rs.log_send_queue_size,0) as FilaExecReplica
FROM sys.availability_replicas r
join sys.dm_hadr_database_replica_states rs on r.replica_id = rs.replica_id
WHERE 1=1
Podemos acessar também os contadores do AlwaysOn via
TSQL View “sys.dm_os_performance_counters”.
SELECT object_name,counter_name,instance_name,cntr_value
FROM sys.dm_os_performance_counters
WHERE object_name = 'SQLServer:Availability Replica'
Até o próximo post.
Saudações Tricolores,
Landry