Monitorare Gruppi di disponibilità (Transact-SQL)

Per monitorare le repliche e i gruppi di disponibilità e i database associati tramite Transact-SQL, Gruppi di disponibilità AlwaysOn offre un set di viste del catalogo, di DMV e di proprietà del server. Tramite le istruzioni Transact-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 Server a cui si è connessi ospiti la replica primaria o una replica secondaria.

SuggerimentoSuggerimento

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

  • Utilizzo di Transact-SQL per monitorare:  

    Funzionalità Gruppi di disponibilità AlwaysOn su un'istanza del server

    Gruppi di disponibilità nel cluster WSFC

    Gruppi di disponibilità

    Repliche di disponibilità

    Database di disponibilità

    Listener del gruppo di disponibilità

  • Attività correlate

Autorizzazioni

Le viste del catalogo di Gruppi di disponibilità AlwaysOn richiedono l'autorizzazione VIEW ANY DEFINITION sull'istanza del server. Le DMV di Gruppi di disponibilità AlwaysOn richiedono l'autorizzazione VIEW SERVER STATE sul server.

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

Per monitorare la funzionalità Gruppi di disponibilità AlwaysOn 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à AlwaysOn è 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à AlwaysOn, 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à AlwaysOn abilitato dispone del 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 AlwaysOn di SQL Server dispone del 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à AlwaysOn, 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 sullo 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.

    Nomi della colonna:  ag_resource_id, instance_name, node_name

  • sys.dm_hadr_name_id_map
    Mostra il mapping dei gruppi di disponibilità AlwaysOn 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 della colonna:  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 su Gruppi di disponibilità AlwaysOn, vedere WSFC (Windows Server Failover Clustering) con SQL Server and Clustering di failover e gruppi di disponibilità AlwaysOn (SQL Server).

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

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 cui l'istanza locale di SQL 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 Server. Ogni riga visualizza gli stati che definiscono l'integrità di un determinato gruppo di disponibilità.

    Nomi delle colonne:  group_id, primary_replica, primary_recovery_health, primary_recovery_health_desc, secondary_recovery_health, secondary_recovery_health_desc, synchronization_health, synchronization_health_desc

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

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 Server ospita una replica di disponibilità.

    Nomi delle colonne:  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à AlwaysOn nel cluster di failover WSFC.

    Nomi della colonna:  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à AlwaysOn 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à AlwaysOn, indipendentemente dal percorso della replica, nel cluster WSFC (Windows Server Failover Clustering).

    Nomi delle colonne:  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, and 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à, l'oggetto prestazioni SQLServer:Availability Replica , vedere SQL Server, replica di disponibilità.

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

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à AlwaysOn 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 con il 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 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à.

    Gruppi di disponibilità AlwaysOn nomi delle colonne:  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 Server ospita una replica di disponibilità.

    Nomi delle colonne:  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à AlwaysOn per i database di disponibilità, l'oggetto prestazioni SQLServer:Database Replica, vedere SQL Server, replica di database. Inoltre, per monitorare l'attività dei log delle transazioni dei database di disponibilità, utilizzare 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 ulteriori informazioni, vedere SQL Server, oggetto di database.

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

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 ulteriori informazioni sui listener dei gruppi di disponibilità, vedere Listener del gruppo di disponibilità, connettività client e failover dell'applicazione (SQL Server).

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

Attività correlate

Attività di monitoraggio dei gruppi di disponibilità AlwaysOn:

Riferimento relativo al monitoraggio dei gruppi di disponibilità AlwaysOn (Transact-SQL):

Contatori delle prestazioni AlwaysOn:

Gestione basata su criteri per gruppi di disponibilità AlwaysOn

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

Vedere anche

Concetti

Gruppi di disponibilità AlwaysOn (SQL Server)

Panoramica di Gruppi di disponibilità AlwaysOn (SQL Server)

Monitoraggio di Gruppi di disponibilità (SQL Server)