dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Scripts Library/sqlserver/#51
Script #51
sqlserver
Replicationread-onlyMin Version: 2012

SQL Server Always On Availability Group Health and Lag

Shows replica states, synchronization health, log send and redo queues. Used to monitor failover readiness and data loss risk.

#always-on#availability-group#hadr
sqlserver · sql
SELECT ag.name AS ag_name, ar.replica_server_name, ar.availability_mode_desc,
       drs.database_id, DB_NAME(drs.database_id) AS db_name,
       drs.synchronization_state_desc, drs.synchronization_health_desc,
       drs.log_send_queue_size AS log_send_kb, drs.redo_queue_size AS redo_kb,
       drs.last_commit_time
FROM sys.dm_hadr_database_replica_states drs
JOIN sys.availability_replicas ar ON ar.replica_id = drs.replica_id
JOIN sys.availability_groups ag ON ag.group_id = drs.group_id
ORDER BY ag.name, ar.replica_server_name, db_name;
Operational Notes & Remediation Guidance

Verify in a staging environment prior to running in production. This is a read-only diagnostic query; it does not acquire exclusive locks.

Production Safety & Execution Standards
  • This script is designed for read-only diagnostics; it does not alter schema or modify data directly.
  • Prior to executing on production systems under high load, verify the target database version (Min. Version: 2012).
  • Exercise caution with mutating actions (e.g., terminating sessions or dropping indexes) referenced in the notes section.