Saturday, August 1, 2020

Estimated time Completion for Redoqueue in Secondary Replica in AON

--------------------- Minutes  -------------------------------------------
-- to execute the query on secondary replica  when ever he primary replica database log space is not decreased and log_reuse_wait_desc shown as AVAILABILITY_REPLICA
SELECT ar.replica_server_name,
       adc.database_name,
       ag.name AS ag_name,
       drs.is_local,
       drs.synchronization_state_desc,
       drs.synchronization_health_desc,
       drs.last_redone_time,
       drs.redo_queue_size,
       drs.redo_rate,
       (drs.redo_queue_size / drs.redo_rate) / 60.0 AS est_redo_completion_time_min ,
       drs.last_commit_lsn,
       drs.last_commit_time
FROM sys.dm_hadr_database_replica_states AS drs
INNER JOIN sys.availability_databases_cluster AS adc
       ON drs.group_id = adc.group_id AND
       drs.group_database_id = adc.group_database_id
INNER JOIN sys.availability_groups AS ag
       ON ag.group_id = drs.group_id
INNER JOIN sys.availability_replicas AS ar
       ON drs.group_id = ar.group_id AND
       drs.replica_id = ar.replica_id
    where (drs.redo_queue_size / drs.redo_rate) / 60.0 >10  --- Redo completion delays to More than 10mins it will get the alert
       
ORDER BY
       ag.name,
       ar.replica_server_name,
       adc.database_name;

----------------------- hours based ---------------
SELECT ar.replica_server_name,
       adc.database_name,
       ag.name AS ag_name,
       drs.is_local,
       drs.synchronization_state_desc,
       drs.synchronization_health_desc,
       drs.last_redone_time,
       drs.redo_queue_size,
       drs.redo_rate,
       (drs.redo_queue_size / drs.redo_rate) / 60.0/60.0 AS est_redo_completion_time_hours ,
       drs.last_commit_lsn,
       drs.last_commit_time
FROM sys.dm_hadr_database_replica_states AS drs
INNER JOIN sys.availability_databases_cluster AS adc
       ON drs.group_id = adc.group_id AND
       drs.group_database_id = adc.group_database_id
INNER JOIN sys.availability_groups AS ag
       ON ag.group_id = drs.group_id
INNER JOIN sys.availability_replicas AS ar
       ON drs.group_id = ar.group_id AND
       drs.replica_id = ar.replica_id
    where (drs.redo_queue_size / drs.redo_rate) / 60.0/60.0 >1  --- Redo completion delays to More than 1 hour it will get the alert
       
ORDER BY
       ag.name,
       ar.replica_server_name,
       adc.database_name;
  

No comments:

Post a Comment