Advertisement
bisonn

AG delay

Aug 15th, 2019
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.23 KB | None | 0 0
  1. WITH AG_Stats AS (
  2.             SELECT AGS.name                       AS AGGroupName,
  3.                    AR.replica_server_name         AS InstanceName,
  4.                    HARS.role_desc,
  5.                    Db_name(DRS.database_id)       AS DBName,
  6.                    DRS.database_id,
  7.                    AR.availability_mode_desc      AS SyncMode,
  8.                    DRS.synchronization_state_desc AS SyncState,
  9.                    DRS.last_hardened_lsn,
  10.                    DRS.end_of_log_lsn,
  11.                    DRS.last_redone_lsn,
  12.                    DRS.last_hardened_time, -- On a secondary database, time of the log-block identifier for the last hardened LSN (last_hardened_lsn).
  13.                    DRS.last_redone_time, -- Time when the last log record was redone on the secondary database.
  14.                    DRS.log_send_queue_size,
  15.                    DRS.redo_queue_size,
  16.                    DRS.last_commit_time
  17.             FROM   sys.dm_hadr_database_replica_states DRS
  18.             LEFT JOIN sys.availability_replicas AR
  19.             ON DRS.replica_id = AR.replica_id
  20.             LEFT JOIN sys.availability_groups AGS
  21.             ON AR.group_id = AGS.group_id
  22.             LEFT JOIN sys.dm_hadr_availability_replica_states HARS ON AR.group_id = HARS.group_id
  23.             AND AR.replica_id = HARS.replica_id
  24.             --where database_id=9
  25.             ),
  26.     Pri_CommitTime AS
  27.             (
  28.             SELECT  DBName
  29.                     , last_commit_time
  30.             FROM    AG_Stats
  31.             WHERE   role_desc = 'PRIMARY'
  32.             ),
  33.     FO_CommitTime AS
  34.             (
  35.             SELECT  DBName, last_commit_time
  36.             FROM    AG_Stats
  37.             WHERE   role_desc = 'SECONDARY'
  38.             )
  39. SELECT p.[DBName] AS [DatabaseName], p.last_commit_time AS [Primary Commit]
  40.     , f.last_commit_time AS [FailOver Commit]
  41.     , DATEDIFF(ss,f.last_commit_time,p.last_commit_time)/(60*60*24) [Days]
  42.     , (DATEDIFF(ss,f.last_commit_time,p.last_commit_time)/(60*60))%24  [Hours]
  43.     , (DATEDIFF(ss,f.last_commit_time,p.last_commit_time)/60)%60 [Minutes]
  44.     , DATEDIFF(ss,f.last_commit_time,p.last_commit_time) AS [Lag (secs)]
  45. FROM Pri_CommitTime p
  46. LEFT JOIN FO_CommitTime f ON [f].[DBName] = [p].[DBName]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement