## Kedy použiť Po failoveri, počas incidentu alebo keď hrozí rast send / redo queue a tým aj logu. ## Ako čítať výsledok Sleduj `synchronization_health_desc` (HEALTHY), `synchronization_state_desc` (SYNCHRONIZED pri synchrónnom commite), `log_send_queue_kb` a `redo_queue_kb`. Rozdiel `last_commit_time` medzi primárnou a sekundárnou replikou je približné oneskorenie dát. > [!WARNING] > Na sekundárnej replike vidíš len lokálne údaje – úplný obraz je na primárnej. Bez zapnutého Always On skript len vypíše upozornenie. **Oprávnenia:** `VIEW SERVER STATE` (na SQL Server 2022 stačí aj `VIEW SERVER PERFORMANCE STATE`). **Režim:** READ ONLY · **Verzia:** SQL Server 2016 – 2022 ## Súvisiace recepty - [Transaction log – obsadenie, reuse wait a VLF](script.php?id=33&s=transaction-log-obsadenie-reuse-wait-a-vlf)
Skript
Always On AG – stav replík a synchronizácie
Stav databáz v Availability Groups: synchronizácia, zdravie, send a redo queue a čas posledného commitu pre každú repliku.
Parametre skriptu doplň a kopíruj hotový skript
/* DeadlockCafe | Always On AG – stav replík a synchronizácie
Účel: Stav databáz v Availability Groups: synchronizácia, zdravie, send a redo queue a čas posledného commitu pre každú repliku.
Režim: READ ONLY | SQL Server 2016 – 2022, on-premises
*/
SET NOCOUNT ON;
IF CONVERT(int,SERVERPROPERTY('IsHadrEnabled')) <> 1
BEGIN
PRINT N'Always On Availability Groups nie sú na tejto inštancii zapnuté.';
END
ELSE
BEGIN
SELECT ag.name AS ag_name, ar.replica_server_name,
adc.database_name, drs.is_local,
drs.database_state_desc, drs.synchronization_state_desc,
drs.synchronization_health_desc,
drs.log_send_queue_size AS log_send_queue_kb,
drs.redo_queue_size AS redo_queue_kb,
drs.last_commit_time
FROM sys.dm_hadr_database_replica_states AS drs
JOIN sys.availability_replicas AS ar ON ar.replica_id=drs.replica_id
JOIN sys.availability_groups AS ag ON ag.group_id=ar.group_id
JOIN sys.availability_databases_cluster AS adc ON adc.group_database_id=drs.group_database_id
ORDER BY ag.name,adc.database_name,ar.replica_server_name;
END;