Monitorare Gruppi di disponibilità (Transact-SQL)

Per monitorare le repliche e i gruppi di disponibilità e i database associati tramite Transact-SQLTransact-SQL, Gruppi di disponibilità Always OnAlways On availability groups offre un set di viste del catalogo, di DMV e di proprietà del server. Tramite le istruzioni Transact-SQLTransact-SQL SELECT, è possibile utilizzare le viste per monitorare i gruppi di disponibilità e i relativi database e repliche. Le informazioni restituite per un gruppo di disponibilità variano a seconda che l'istanza di SQL ServerSQL Server a cui si è connessi ospiti la replica primaria o una replica secondaria.

Suggerimento

Molte di queste viste possono essere unite tramite le relative colonne ID in modo che le informazioni vengano restituite da più viste in una singola query.

Contenuto dell'argomento

Autorizzazioni

Gruppi di disponibilità Always OnAlways On availability groups richiedono l'autorizzazione VIEW ANY DEFINITION sull'istanza del server. Gruppi di disponibilità Always OnAlways On availability groups richiedono l'autorizzazione VIEW SERVER STATE sul server.

Monitoraggio della funzionalità Gruppi di disponibilità Always On su un'istanza del server

Per monitorare la funzionalità Gruppi di disponibilità Always OnAlways On availability groups in un'istanza del server, utilizzare la funzione predefinita seguente:

Funzione SERVERPROPERTY
Restituisce informazioni sulle proprietà del server in cui è specificato se Gruppi di disponibilità Always OnAlways On availability groups è abilitato e, in caso affermativo, se è stato avviato sull'istanza del server.

Nomi delle colonne: IsHadrEnabled, HadrManagerStatus

Monitoraggio di Gruppi di disponibilità nel cluster WSFC

Per monitorare il cluster WSFC (Windows Server Failover Clustering) che ospita un'istanza del server locale abilitata per Gruppi di disponibilità Always OnAlways On availability groups, utilizzare le viste seguenti:

sys.dm_hadr_cluster
Se il nodo WSFC (Windows Server Failover Clustering) che ospita un'istanza di SQL Server con Gruppi di disponibilità Always OnAlways On availability groups abilitato ha il quorum WSFC, sys.dm_hadr_cluster restituisce una riga che espone il nome del cluster e informazioni sul quorum. Se il nodo WSFC non dispone di quorum, non viene restituita alcuna riga.

Nomi delle colonne:cluster_name, quorum_type, quorum_type_desc, quorum_state, quorum_state_desc

sys.dm_hadr_cluster_members
Se il nodo WSFC che ospita l'istanza locale Always On di SQL Server ha il quorum WSFC, restituisce una riga per ogni membro che costituisce il quorum e lo stato di ognuno di essi.

Nomi delle colonne: member_name, member_type, member_type_desc, member_state, member_state_desc, number_of_quorum_votes

sys.dm_hadr_cluster_networks
Restituisce una riga per ogni membro che partecipa alla configurazione della subnet di un gruppo di disponibilità. È possibile utilizzare questa DMV per convalidare l'indirizzo IP virtuale di rete configurato per ogni replica di disponibilità.

Nomi delle colonne: member_name, network_subnet_ip, network_subnet_ipv4_mask, network_subnet_prefix_length, is_public, is_ipv4

Chiave primaria: member_name + network_subnet_IP + network_subnet_prefix_length

sys.dm_hadr_instance_node_map
Per ogni istanza di SQL Server che ospita una replica di disponibilità che ha creato un join al gruppo di disponibilità Always On, restituisce il nome del nodo Windows Server Failover Clustering (WSFC) che ospita l'istanza del server. Questa DMV offre i seguenti utilizzi:

  • Questa DMV è utile per il rilevamento di un gruppo di disponibilità con più repliche di disponibilità ospitate nello stesso nodo WSFC. Si tratta di una configurazione non supportata che si potrebbe verificare dopo un failover dell'istanza del cluster di failover se il gruppo di disponibilità non è stato correttamente configurato.

  • Quando più istanze di SQL Server sono ospitate sullo stesso nodo WSFC, la DLL della risorsa utilizza questa DMV per determinare l'istanza di SQL Server a cui connettersi.

    : ag_resource_id, instance_name, node_name

    sys.dm_hadr_name_id_map
    Mostra il mapping dei gruppi di disponibilità Always On dove per l'istanza corrente di SQL Server è stato creato un join a tre ID univoci: un ID gruppo di disponibilità, un ID risorsa WSFC e un ID gruppo WSFC. Lo scopo di questo mapping è gestire lo scenario in cui il gruppo/risorsa WSFC viene rinominato.

    Nomi delle colonne: ag_name, ag_id, ag_resource_id, ag_group_id

Nota

Vedere anche sys.dm_hadr_availability_replica_cluster_nodes e sys.dm_hadr_availability_replica_cluster_states nella sezione Monitoraggio delle repliche di disponibilità e sys.availability_databases_cluster e sys.dm_hadr_database_replica_cluster_states nella sezione Monitoraggio dei database di disponibilità più avanti in questo argomento.

Per informazioni sui cluster WSFC e Gruppi di disponibilità Always OnAlways On availability groups, vedere WSFC (Windows Server Failover Clustering) con SQL Server e Clustering di failover e gruppi di disponibilità Always On (SQL Server).

Monitoraggio dei gruppi disponibilità

Per monitorare i gruppi di disponibilità per cui l'istanza del server ospita una replica di disponibilità, utilizzare le viste seguenti:

sys.availability_groups
Restituisce una riga per ogni gruppo di disponibilità per il quale l'istanza locale di SQL ServerSQL Server ospita una replica di disponibilità. Ogni riga contiene una copia memorizzata nella cache dei metadati del gruppo di disponibilità.

Nomi delle colonne: group_id, name, resource_id, resource_group_id, failure_condition_level, health_check_timeout, automated_backup_preference, automated_backup_preference_desc

sys.availability_groups_cluster
Restituisce una riga per ogni gruppo di disponibilità nel cluster WSFC. Ogni riga contiene i metadati del gruppo di disponibilità del cluster WSFC (Windows Server Failover Clustering).

Nomi delle colonne: group_id, name, resource_id, resource_group_id, failure_condition_level, health_check_timeout, automated_backup_preference, automated_backup_preference_desc

sys.dm_hadr_availability_group_states
Restituisce una riga per ogni gruppo di disponibilità che dispone di una replica di disponibilità sull'istanza locale di SQL ServerSQL Server. Ogni riga visualizza gli stati che definiscono l'integrità di un determinato gruppo di disponibilità.

: group_id, primary_replica, primary_recovery_health, primary_recovery_health_desc, secondary_recovery_health, secondary_recovery_health_desc, synchronization_health, synchronization_health_desc

Monitoraggio delle repliche di disponibilità

Per monitorare le repliche di disponibilità, utilizzare la funzione di sistema e le viste seguenti:

sys.availability_replicas
Restituisce una riga per ogni replica di disponibilità in ogni gruppo di disponibilità per il quale l'istanza locale di SQL ServerSQL Server ospita una replica di disponibilità.

: replica_id, group_id, replica_metadata_id, replica_server_name, owner_sid, endpoint_url, availability_mode, availability_mode_desc, failover_mode, failover_mode_desc, session_timeout, primary_role_allow_connections, primary_role_allow_connections_desc, secondary_role_allow_connections, secondary_role_allow_connections_desc, create_date, modify_date, backup_priority, read_only_routing_url

sys.availability_read_only_routing_lists
Viene restituita una riga per l'elenco di routing di sola lettura di ogni replica di disponibilità in un gruppo di disponibilità Always On nel cluster di failover WSFC.

: replica_id, routing_priority, read_only_replica_id

sys.dm_hadr_availability_replica_cluster_nodes
Restituisce una riga per ogni replica di disponibilità, indipendentemente dallo stato di join, dei gruppi di disponibilità Always On nel cluster WSFC (Windows Server Failover Clustering).

Nomi delle colonne: group_name, replica_server_name, node_name

sys.dm_hadr_availability_replica_cluster_states
Restituisce una riga per ogni replica, indipendentemente dallo stato del join, di tutti i gruppi di disponibilità Always On, indipendentemente dal percorso della replica, nel cluster WSFC (Windows Server Failover Clustering).

: replica_id, replica_server_name, group_id, join_state, join_state_desc

sys.dm_hadr_availability_replica_states
Restituisce una riga in cui viene mostrato lo stato di ogni replica di disponibilità locale e una riga per ogni replica di disponibilità remota nello stesso gruppo di disponibilità.

Nomi delle colonne: replica_id, group_id, is_local, role, role_desc, operational_state, operational_state_desc, connected_state, connected_state_desc, recovery_health, recovery_health_desc, synchronization_health, synchronization_health_desc, last_connect_error_number, last_connect_error_description e last_connect_error_timestamp

sys.fn_hadr_backup_is_preferred_replica
Determina se la replica corrente è la replica di backup preferita.

Nota

Per informazioni sui contatori delle prestazioni per le repliche di disponibilità (oggetto prestazioni SQLServer:Availability Replica), vedere SQL Server, replica di disponibilità.

Monitoraggio dei database di disponibilità

Per monitorare i database di disponibilità, utilizzare le viste seguenti:

sys.availability_databases_cluster
Contiene una riga per ogni database sull'istanza di SQL Server che fa parte di tutti i gruppi di disponibilità Always On nel cluster, indipendentemente dal fatto che il database della copia locale sia già stato aggiunto o meno al gruppo di disponibilità.

Nota

Quando un database viene aggiunto a un gruppo di disponibilità, viene automaticamente creato un join del database primario con il gruppo. È necessario preparare i database secondari su ogni replica secondaria prima di poterne creare un join al gruppo di disponibilità.

Nomi delle colonne: group_id, group_database_id, database_name

sys.databases
Contiene una riga per ogni database nell'istanza di SQL ServerSQL Server. Se un database appartiene a una replica di disponibilità, la riga per quel database contiene il GUID della replica e l'identificatore univoco del database all'interno del gruppo di disponibilità.

Nomi delle colonne Gruppi di disponibilità Always OnAlways On availability groups: replica_id, group_database_id

sys.dm_hadr_auto_page_repair
Restituisce una riga per ogni tentativo di correzione automatica della pagina in qualsiasi database di disponibilità in una replica di disponibilità ospitata per qualsiasi gruppo di disponibilità dall'istanza del server. Questa vista contiene le righe degli ultimi tentativi automatici di correzione automatica della pagina in un database primario o secondario, con un massimo di 100 righe per database. Non appena un database raggiunge il limite massimo, la riga per il tentativo successivo di correzione automatica della pagina sostituisce una delle voci esistenti.

Nomi delle colonne: database_id, file_id, page_id, error_type, page_status, modification_time

sys.dm_hadr_database_replica_states
Restituisce una riga per ogni database che partecipa a un qualsiasi gruppo di disponibilità per il quale l'istanza locale di SQL ServerSQL Server ospita una replica di disponibilità.

: database_id, group_id, replica_id, group_database_id, is_local, synchronization_state, synchronization_state_desc, is_commit_participant, synchronization_health, synchronization_health_desc, database_state, database_state_desc, is_suspended, suspend_reason, suspend_reason_desc, recovery_lsn, truncation_lsn, last_sent_lsn, last_sent_time, last_received_lsn, last_received_time, last_hardened_lsn, last_hardened_time, last_redone_lsn, last_redone_time, log_send_queue_size, log_send_rate, redo_queue_size, redo_rate, filestream_send_rate, end_of_log_lsn, last_commit_lsn, last_commit_time, low_water_mark_for_ghosts

sys.dm_hadr_database_replica_cluster_states
Restituisce una riga contenente informazioni relative all'integrità dei database nei database di disponibilità in ciascun gruppo di disponibilità nel cluster WSFC (Windows Server Failover Clustering). Questa DMV è utile per la pianificazione o la risposta a un failover o per comprendere quale replica secondaria di un gruppo di disponibilità trattiene il troncamento del log su un determinato database primario.

Nomi delle colonne: replica_id, group_database_id, database_name, is_failover_ready, is_pending_secondary_suspend, is_database_joined, recovery_lsn, truncation_lsn

Nota

Il percorso della replica primaria è l'origine autorevole per un gruppo di disponibilità.

Nota

Per informazioni sui contatori delle prestazioni di Gruppi di disponibilità Always OnAlways On availability groups per i database di disponibilità (oggetto prestazioni SQLServer:Database Replica), vedere SQL Server, replica di database. Per monitorare l'attività dei log delle transazioni dei database di disponibilità, usare i contatori seguenti dell'oggetto prestazioni SQLServer:Databases: Ora di scrittura scaricamento log (ms), Scaricamenti log/sec, Mancati riscontri cache del pool di log/sec, Letture disco del pool di log/sec e Richieste del pool di log/sec. Per altre informazioni, vedere SQL Server, Databases Object.

Monitoraggio dei listener del gruppo di disponibilità

Per monitorare i listener del gruppo di disponibilità sulle subnet del cluster WSFC, utilizzare le viste seguenti:

sys.availability_group_listener_ip_addresses
Restituisce una riga per ogni indirizzo IP virtuale conforme attualmente online per un listener del gruppo di disponibilità.

Nomi delle colonne: listener_id, ip_address, ip_subnet_mask, is_dhcp, network_subnet_ip, network_subnet_prefix_length, network_subnet_ipv4_mask, state, state_desc

sys.availability_group_listeners
Per un determinato gruppo di disponibilità, restituisce zero righe, cosa che indica che nessun nome di rete è associato al gruppo di disponibilità, oppure restituisce una riga per ogni configurazione del listener del gruppo di disponibilità nel cluster WSFC (Windows Server Failover Clustering).

Nomi delle colonne: group_id, listener_id, dns_name, port, is_conformant, ip_configuration_string_from_cluster

sys.dm_tcp_listener_states
Restituisce una riga contenente informazioni sullo stato dinamico per ogni listener TCP.

Nomi delle colonne: listener_id, ip_address, is_ipv4, port, type, type_desc, state, state_desc, start_time

Chiave primaria: listener_id

Per informazioni sui listener dei gruppi di disponibilità, vedere Listener del gruppo di disponibilità, connettività client e failover dell'applicazione (SQL Server).

Attività correlate

Attività di monitoraggio dei gruppi di disponibilità Always On:

Vedere anche

Gruppi di disponibilità Always On (SQL Server)
Panoramica di Gruppi di disponibilità Always On (SQL Server)
Monitoraggio di Gruppi di disponibilità (SQL Server)