microsoft / SqlNexus

SQL Nexus is a tool that helps you identify the root cause of SQL Server performance issues. It loads and analyzes performance data collected by SQL LogScout, SQLDiag or PSSDiag. It can dramatically reduce the amount of time you spend manually analyzing data.
MIT License
356 stars 101 forks source link

Availability Group Best Practice Checks #196

Closed JamesFerebee closed 1 year ago

JamesFerebee commented 1 year ago

Add Best Practices report section to:

1) Check if hadr endpoint is enabled/running. If not, flag it. 2) Report if any databases in an AG are showing unhealthy. If so, flag it. (see AG dashboard for reference)

PiJoCoder commented 1 year ago

Possibly query to use:

SELECT dc.database_name, d.synchronization_health_desc, d.synchronization_state_desc, d.database_state_desc 
FROM sys.dm_hadr_database_replica_states d 
JOIN sys.availability_databases_cluster dc 
  ON d.group_database_id = dc.group_database_id AND d.is_local = 1
PiJoCoder commented 1 year ago
SELECT group_name, 
  operational_state_desc, 
  connected_state_desc, 
  synchronization_health_desc
FROM tbl_hadr_ag_replica_states
WHERE operational_state_desc <> 'ONLINE'

SELECT 
  name as AG_Name, 
  synchronization_health_desc 
FROM tbl_hadr_ag_states
WHERE synchronization_health_desc  <> 'HEALTHY'

SELECT 
  name as HADR_Endpoint, 
  type_desc, 
  state_desc 
FROM tbl_hadr_endpoints_principals
WHERE state_desc <> 'STARTED'