Monitorar grupos de disponibilidade (Transact-SQL)

Para monitorar os grupos de disponibilidade e as réplicas e os bancos de dados associados usando o Transact-SQL, o Grupos de Disponibilidade AlwaysOn fornece um conjunto de exibições do catálogo e de gerenciamento dinâmico e propriedades de servidor. Usando as instruções SELECT Transact-SQL, é possível usar as exibições para monitorar grupos de disponibilidade e suas réplicas e bancos de dados. As informações retornadas a um determinado grupo de disponibilidade dependem de se você está conectado à instância do SQL Server que está hospedando a réplica primária ou uma réplica secundária.

DicaDica

Muitas dessas exibições podem ser unidas usando suas colunas de ID para retornar informações de várias exibições em uma única consulta.

Neste tópico:

  • Permissões

  • Usando Transact-SQL para monitorar:  

    Recurso de Grupos de Disponibilidade AlwaysOn em uma instância de servidor

    Grupos de disponibilidade no cluster do WSFC

    Grupos de disponibilidade

    Réplicas de disponibilidade

    Bancos de dados de disponibilidade

    Ouvintes de grupos de disponibilidade

  • Tarefas relacionadas

Permissões

As exibições do catálogo do Grupos de Disponibilidade AlwaysOn exigem a permissão VIEW ANY DEFINITION na instância do servidor. As exibições de gerenciamento dinâmico do Grupos de Disponibilidade AlwaysOn exigem a permissão VIEW SERVER STATE no servidor.

Monitorando o recurso de Grupos de Disponibilidade AlwaysOn em uma instância de servidor

Para monitorar o recurso Grupos de Disponibilidade AlwaysOn em uma instância de servidor, use a seguinte função interna:

  • função SERVERPROPERTY
    Retorna informações de propriedade de servidor sobre se o Grupos de Disponibilidade AlwaysOn está habilitado e, nesse caso, se ele está iniciado na instância de servidor.

    Nomes de colunas:  IsHadrEnabled, HadrManagerStatus

Monitorando grupos de disponibilidade no cluster do WSFC

Para monitorar o WSFC (Windows Server Failover Clustering) que hospeda uma instância do servidor local habilitada para Grupos de Disponibilidade AlwaysOn, use as exibições a seguir:

  • sys.dm_hadr_cluster
    Se o nó WSFC (Windows Server Failover Clustering) que hospeda uma instância do SQL Server com Grupos de Disponibilidade AlwaysOn habilitado tiver quorum de WSFC, sys.dm_hadr_cluster retornará uma linha que expõe o nome do cluster e informações sobre o quorum. Se o nó WSFC não tiver nenhum quorum, nenhuma linha será retornada.

    Nomes de colunas:  cluster_name, quorum_type, quorum_type_desc, quorum_state, quorum_state_desc

  • sys.dm_hadr_cluster_members
    Se o nó WSFC que hospeda a instância habilitada para AlwaysOn do SQL Server tiver quorum de WSFC, uma linha será retornada a cada um dos membros que constituem o quorum e o estado de cada um deles.

    Nomes de colunas:  member_name, member_type, member_type_desc, member_state, member_state_desc, number_of_quorum_votes

  • sys.dm_hadr_cluster_networks
    Retorna uma linha para cada membro que está participando da configuração de sub-rede de um grupo de disponibilidade. Você pode usar essa exibição de gerenciamento dinâmico para validar o IP virtual de rede configurado para cada réplica de disponibilidade.

    Nomes de colunas:  member_name, network_subnet_ip, network_subnet_ipv4_mask, network_subnet_prefix_length, is_public, is_ipv4

    Chave primária:  member_name + network_subnet_IP + network_subnet_prefix_length

  • sys.dm_hadr_instance_node_map
    Para toda instância do SQL Server que hospeda uma réplica de disponibilidade que é unida a seu grupo de disponibilidade AlwaysOn, retorna o nome do nó do WSFC (Windows Server Failover Clustering) que hospeda a instância do servidor. Esta exibição de gerenciamento dinâmico tem os seguintes usos:

    • Esta exibição de gerenciamento dinâmico será útil para detectar um grupo de disponibilidade com várias réplicas de disponibilidade que são hospedadas no mesmo nó do WSFC, que é uma configuração sem suporte que poderá ocorrer depois de um failover de FCI se o grupo de disponibilidade estiver configurado incorretamente.

    • Quando várias instâncias do SQL Server são hospedadas no mesmo nó do WSFC, a DLL de Recurso usa esta exibição de gerenciamento dinâmico para determinar a instância do SQL Server à qual se conectar.

    Nomes de coluna:  ag_resource_id, instance_name, node_name

  • sys.dm_hadr_name_id_map
    Mostra o mapeamento de grupos de disponibilidade AlwaysOn nos quais a instância atual do SQL Server ingressou para três IDs exclusivas: uma ID de grupo de disponibilidade, uma ID de recurso WSFC e uma ID de grupo WSFC. O objetivo desse mapeamento é manipular o cenário no qual o recurso/grupo WSFC é renomeado.

    Nomes de coluna:  ag_name, ag_id, ag_resource_id, ag_group_id

ObservaçãoObservação

Consulte também sys.dm_hadr_availability_replica_cluster_nodes e sys.dm_hadr_availability_replica_cluster_states na seção Monitorando réplicas de disponibilidade e sys.availability_databases_cluster e sys.dm_hadr_database_replica_cluster_states na seção Monitorando bancos de dados de disponibilidade posteriormente nesse tópico.

Para obter mais informações sobre clusters do WSFC e o Grupos de Disponibilidade AlwaysOn, consulte WSFC (Windows Server Failover Clustering) com o SQL Server e Clustering de failover e Grupos de Disponibilidade AlwaysOn (SQL Server).

Ícone de seta usado com o link Voltar ao Início[Início]

Monitorando grupos de disponibilidade

Para monitorar os grupos de disponibilidade para os quais a instância do servidor hospeda uma réplica de disponibilidade, use as exibições a seguir:

  • sys.availability_groups
    Retorna uma linha para cada grupo de disponibilidade para o qual a instância local do SQL Server hospeda uma réplica de disponibilidade. Cada linha contém uma cópia armazenada em cache dos metadados do grupo de disponibilidade.

    Nomes de colunas:  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
    Retorna uma linha para cada grupo de disponibilidade no cluster do WSFC. Cada linha contém os metadados do grupo de disponibilidade do cluster do WSFC (Windows Server Failover Clustering).

    Nomes de colunas:  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
    Retorna uma linha para cada grupo de disponibilidade que possui uma réplica de disponibilidade na instância local do SQL Server. Cada linha exibe os estados que definem a integridade de um determinado grupo de disponibilidade.

    Nomes de colunas:  group_id, primary_replica, primary_recovery_health, primary_recovery_health_desc, secondary_recovery_health, secondary_recovery_health_desc, synchronization_health, synchronization_health_desc

Ícone de seta usado com o link Voltar ao Início[Início]

Monitorando réplicas de disponibilidade

Para monitorar réplicas de disponibilidade, use as seguintes exibições e a função do sistema:

  • sys.availability_replicas
    Retorna uma linha para cada réplica de disponibilidade em cada grupo de disponibilidade para o qual a instância local do SQL Server hospeda uma réplica de disponibilidade.

    Nomes de colunas:  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
    Retorna uma linha para a lista de roteamento somente leitura de cada réplica de disponibilidade em um grupo de disponibilidade AlwaysOn do cluster de failover WSFC.

    Nomes de coluna:  replica_id, routing_priority, read_only_replica_id

  • sys.dm_hadr_availability_replica_cluster_nodes
    Retorna uma linha para cada réplica de disponibilidade (independentemente do estado de junção) dos grupos de disponibilidade AlwaysOn no cluster do WSFC (Windows Server Failover Clustering).

    Nomes de colunas:  group_name, replica_server_name, node_name

  • sys.dm_hadr_availability_replica_cluster_states
    Retorna uma linha para cada réplica (independentemente do estado de junção) de todos os grupos de disponibilidade AlwaysOn (independentemente do local da réplica) no cluster do WSFC (Windows Server Failover Clustering).

    Nomes de colunas:  replica_id, replica_server_name, group_id, join_state, join_state_desc

  • sys.dm_hadr_availability_replica_states
    Retorna uma linha que mostra o estado de cada réplica de disponibilidade local e uma linha para cada réplica de disponibilidade remota no mesmo grupo de disponibilidade.

    Nomes de colunas:  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 a réplica atual é a réplica de backup preferencial.

ObservaçãoObservação

Para obter informações sobre contadores de desempenho para réplicas de disponibilidade, (o objeto de desempenho SQLServer:Availability Replica ), consulte SQL Server, Réplica de Disponibilidade.

Ícone de seta usado com o link Voltar ao Início[Início]

Monitorando bancos de dados de disponibilidade

Para monitorar bancos de dados de disponibilidade, use as seguintes exibições:

  • sys.availability_databases_cluster
    Contém uma linha para cada banco de dados na instância do SQL Server que faz parte de todos os Grupos de Disponibilidade AlwaysOn no cluster, independentemente de se o banco de dados de cópia local foi unido ao grupo de disponibilidade.

    ObservaçãoObservação

    Quando um banco de dados é adicionado a um grupo de disponibilidade, o banco de dados primário é unido automaticamente ao grupo. Os bancos de dados secundários deve estar preparados em cada réplica secundária para poderem ser unidos ao grupo de disponibilidade.

    Nomes de coluna:  group_id, group_database_id, database_name

  • sys.databases
    Contém uma linha por banco de dados na instância do SQL Server. Se um banco de dados pertencer a uma réplica de disponibilidade, a linha daquele banco de dados exibirá o GUID da réplica e o identificador exclusivo do banco de dados dentro de seu grupo de disponibilidade.

    Nomes de colunas do Grupos de Disponibilidade AlwaysOn:  replica_id, group_database_id

  • sys.dm_hadr_auto_page_repair
    Retorna uma linha para cada tentativa de reparo automático de página em qualquer banco de dados de disponibilidade em uma réplica de disponibilidade hospedada para qualquer grupo de disponibilidade pela instância do servidor. Essa exibição contém linhas das últimas tentativas de reparo automático de página em um determinado banco de dados primário ou secundário, com um máximo de 100 linhas por banco de dados. Assim que o banco de dados atinge o máximo, a linha de sua próxima tentativa de conserto de página automático substitui uma das entradas existentes.

    Nomes de colunas:  database_id, file_id, page_id, error_type, page_status, modification_time

  • sys.dm_hadr_database_replica_states
    Retorna uma linha para cada banco de dados que está participando de qualquer grupo de disponibilidade para o qual a instância local do SQL Server hospeda uma réplica de disponibilidade.

    Nomes de colunas:  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
    Retorna uma linha que contém informações destinadas a fornecer uma visão da integridade dos bancos de dados de disponibilidade em cada grupo de disponibilidade no cluster do WSFC (Windows Server Failover Clustering). Essa exibição de gerenciamento dinâmico é útil ao planejar ou responder a um failover ou para descobrir qual réplica secundária em um grupo de disponibilidade está mantendo truncamento de log em um determinado banco de dados primário.

    Nomes de colunas:  replica_id, group_database_id, database_name, is_failover_ready, is_pending_secondary_suspend, is_database_joined, recovery_lsn, truncation_lsn

    ObservaçãoObservação

    O local da réplica primária é a origem autoritativa de um grupo de disponibilidade.

ObservaçãoObservação

Para obter informações sobre contadores de desempenho do Grupos de Disponibilidade AlwaysOn para bancos de dados de disponibilidade (o objeto de desempenho SQLServer:Database Replica), consulte SQL Server, Réplica de banco de dados. Além disso, para monitorar a atividade do log de transações em bancos de dados de disponibilidade, use os seguintes contadores do objeto de desempenho SQLServer:Databases: Log Flush Write Time (ms), Log Flushes/sec, Log Pool Cache Misses/sec, Log Pool Disk Reads/sec e Log Pool Requests/sec. Para obter mais informações, consulte SQL Server, objeto Databases.

Ícone de seta usado com o link Voltar ao Início[Início]

Monitorando ouvintes de grupo de disponibilidade

Para monitorar os ouvintes de grupo de disponibilidade em sub-redes do cluster do WSFC, use as seguintes exibições:

  • sys.availability_group_listener_ip_addresses
    Retorna uma linha para cada endereço IP virtual compatível que está online atualmente para um ouvinte de grupo de disponibilidade.

    Nomes de colunas:  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
    Para um determinado grupo de disponibilidade, retorna zero linhas indicando que nenhum nome de rede está associado ao grupo de disponibilidade ou retorna uma linha para cada configuração de ouvinte de grupo de disponibilidade no cluster do WSFC.

    Nomes de colunas:  group_id, listener_id, dns_name, port, is_conformant, ip_configuration_string_from_cluster

  • sys.dm_tcp_listener_states
    Retorna uma linha que contém informações de estado dinâmico para cada ouvinte de TCP.

    Nomes de colunas:  listener_id, ip_address, is_ipv4, port, type, type_desc, state, state_desc, start_time

    Chave primária:  listener_id

Para obter informações sobre os ouvintes dos grupos de disponibilidade, consulte Ouvintes de grupo de disponibilidade, conectividade de cliente e failover de aplicativo (SQL Server).

Ícone de seta usado com o link Voltar ao Início[Início]

Tarefas relacionadas

Tarefas de monitoração sobre grupos de disponibilidade AlwaysOn:

Referência do monitoramento de grupos de disponibilidade AlwaysOn (Transact-SQL):

Contadores de desempenho AlwaysOn:

Gerenciamento baseado em políticas para grupos de disponibilidade AlwaysOn

Ícone de seta usado com o link Voltar ao Início[Início]

Consulte também

Conceitos

Grupos de Disponibilidade AlwaysOn (SQL Server)

Visão geral de grupos de disponibilidade AlwaysOn (SQL Server)

Monitoramento de grupos de disponibilidade (SQL Server)