SQL Always On Availability Group Info

SQL Always On Availability Group Info

  • Thanks for this great start on a template.  I was looking at adding some additional metrics and was looking at the template queries and comparing what I came up with for custom metrics in DPA.  the template has

    SELECT

    sum(ISNULL(dr_state.redo_queue_size,0)) as Sum_Redo_Queue_Size

    FROM (( sys.availability_groups AS ag JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id )

    JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id)

    JOIN sys.dm_hadr_database_replica_states dr_state on

    ag.group_id = dr_state.group_id and dr_state.replica_id = ar_state.replica_id

    WHERE

    ar.replica_server_name = SERVERPROPERTY('ServerName')

    for redo queue monitoring.  When this query is pointed at a Listener name it then hits the primary.  If I understand correctly, the redo queue is on the secondary.  Would something like the below be more appropriate?

    SELECT SUM(ISNULL(dr_state.redo_queue_size, 0)) AS Sum_Redo_Queue_Size

    FROM((sys.availability_groups AS ag

          JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id)

          JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id)

          JOIN sys.dm_hadr_database_replica_states dr_state ON ag.group_id = dr_state.group_id

                                                               AND dr_state.replica_id = ar_state.replica_id

    WHERE ar_state.role = 2;  --secondary

  • Hello, how to implement this metric in database analyzer?

  • This is to collect a few important metrics from the replicas in a SQL Server Always On Availability Group.