Отслеживание групп доступности (Transact-SQL)

Применимо к:SQL Server

Для мониторинга групп доступности, реплик доступности и связанных с ними баз данных с помощью инструкций Transact-SQL группы доступности Always On предоставляют набор представлений каталога, динамических административных представлений и свойств сервера. С помощью инструкций SELECT можно настроить эти представления для мониторинга групп доступности, их реплик и баз данных. Сведения, возвращаемые для данной группы доступности, зависят от того, подключены ли вы к экземпляру SQL Server, в котором размещается основная реплика или вторичная реплика.

Совет

Многие из этих представлений можно объединять с помощью их столбцов ID, что позволяет возвращать сведения из нескольких представлений в одном запросе.

Разрешения

Представления каталога групп доступности AlwaysOn требуют разрешения VIEW ANY DEFINITION на экземпляре сервера. Для групп доступности AlwaysOn для динамических административных представлений требуется разрешение VIEW SERVER STATE на сервере.

Мониторинг функции групп доступности AlwaysOn в экземпляре сервера

Чтобы отслеживать функцию групп доступности AlwaysOn на экземпляре сервера, используйте следующую встроенную функцию:

ФункцияSERVERPROPERTY
Возвращает сведения о том, включены ли группы доступности AlwaysOn и, если да, запущены ли они на экземпляре сервера.

Имена столбцов: IsHadrEnabled, HadrManagerStatus

Мониторинг групп доступности на кластере WSFC

Чтобы отслеживать кластер отказоустойчивой кластеризации Windows Server (WSFC), на котором размещен локальный экземпляр сервера, включенный для групп доступности AlwaysOn, используйте следующие представления:

sys.dm_hadr_cluster
Если узел отказоустойчивой кластеризации Windows Server (WSFC), на котором размещен экземпляр SQL Server с включенными группами доступности AlwaysOn, имеет кворум WSFC, sys.dm_hadr_cluster возвращает строку, которая предоставляет имя кластера и сведения о кворуме. Если узел WSFC не набирает кворум, строки не возвращаются.

Имена столбцов: cluster_name, quorum_type, quorum_type_desc, quorum_state, quorum_state_desc

sys.dm_hadr_cluster_members
Если на узле WSFC, где размещается локальный экземпляр SQL Server с включенной поддержкой AlwaysOn, имеется кворум WSFC, он возвращает строку для каждого из участников, составляющих кворум, и состояние каждого из них.

Имена столбцов: member_name, member_type, member_type_desc, member_state, member_state_desc, number_of_quorum_votes

sys.dm_hadr_cluster_networks
Возвращает по строке для каждого из элементов, участвующих в конфигурации подсети группы доступности. Это динамическое административное представление можно использовать для проверки виртуального сетевого IP-адреса, настроенного для каждой из реплик доступности.

Имена столбцов: member_name, network_subnet_ip, network_subnet_ipv4_mask, network_subnet_prefix_length, is_public, is_ipv4

Первичный ключ: member_name + network_subnet_IP + network_subnet_prefix_length

sys.dm_hadr_instance_node_map
Для каждого экземпляра SQL Server, где размещена реплика доступности, подключенная к группе доступности AlwaysOn, возвращается имя узла отказоустойчивой кластеризации Windows Server (WSFC), где размещен экземпляр сервера. Это динамическое административное представление может использоваться следующим образом.

  • Динамическое административное представление может оказаться полезным для обнаружения группы доступности с несколькими репликами доступности, размещенными на одном узле WSFC, поскольку такая конфигурация, которая может возникнуть после отработки отказа FCI в том случае, если группа доступности сконфигурирована неверно, не поддерживается.

  • Когда несколько экземпляров SQL Server размещаются на одном узле WSFC, DLL-библиотека ресурсов через это динамическое административное представление определяет экземпляр SQL Server, к которому следует подключаться.

Имена столбцов: ag_resource_id, instance_name, node_name

sys.dm_hadr_name_id_map
Показывает сопоставление групп доступности AlwaysOn, к которым подключен текущий экземпляр SQL Server, и трех уникальных идентификаторов: идентификатора группы доступности, идентификатора ресурсов WSCF и идентификатора группы WSFC. Цель такого сопоставления состоит в обработке сценария, в ходе которого ресурс/группа WSFC переименовывается.

Имена столбцов: ag_name, ag_id, ag_resource_id, ag_group_id

Примечание.

См. также описание команд sys.dm_hadr_availability_replica_cluster_nodes и sys.dm_hadr_availability_replica_cluster_states в разделе Мониторинг реплик доступности и описание команд sys.availability_databases_cluster и sys.dm_hadr_database_replica_cluster_states в разделе Мониторинг баз данных доступности далее в этой статье.

Сведения о кластерах WSFC и группах доступности Always On см. в статьях Отказоустойчивая кластеризация Windows Server с SQL Server и Отказоустойчивая кластеризация и группы доступности Always On (SQL Server).

Мониторинг групп доступности

Для мониторинга групп доступности, для которых на экземпляре сервера размещена реплика доступности, используются следующие представления.

sys.availability_groups
Возвращает по строке для каждой группы доступности, для которой в локальном экземпляре SQL Server размещена реплика доступности. Каждая строка содержит кэшированную копию метаданных группы доступности.

Имена столбцов: 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
Возвращает строку для каждой группы доступности в кластере WSFC. Каждая строка содержит метаданные группы доступности из отказоустойчивой кластеризации Windows Server (WSFC).

Имена столбцов: 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
Возвращает строку для каждой группы доступности, которая обладает реплика доступности в локальном экземпляре SQL Server. Каждая строка отображает состояния работоспособности определенной группы доступности.

Имена столбцов: group_id, primary_replica, primary_recovery_health, primary_recovery_health_desc, secondary_recovery_health, secondary_recovery_health_desc, synchronization_health, synchronization_health_desc

Мониторинг реплик доступности

Для мониторинга групп доступности используются следующие представления и системная функция.

sys.availability_replicas
Возвращает строку для каждой реплика доступности в каждой группе доступности, для которой локальный экземпляр SQL Server размещает реплика доступности.

Имена столбцов: 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
Возвращает строку для списка маршрутизации только для чтения для каждой реплики доступности в группе доступности AlwaysOn в отказоустойчивом кластере WSFC.

Имена столбцов: replica_id, routing_priority, read_only_replica_id

sys.dm_hadr_availability_replica_cluster_nodes
Возвращает по строке для каждой из реплик доступности (независимо от состояния соединения) в группах доступности AlwaysOn в отказоустойчивой кластеризации Windows Server (WSFC).

Имена столбцов: group_name, replica_server_name, node_name

sys.dm_hadr_availability_replica_cluster_states
Возвращает по строке для каждой из реплик (вне зависимости от состояния соединения) во всех группах доступности AlwaysOn (вне зависимости от расположения реплики) в отказоустойчивой кластеризации Windows Server (WSFC).

Имена столбцов: replica_id, replica_server_name, group_id, join_state, join_state_desc

sys.dm_hadr_availability_replica_states
Возвращает строку с состоянием каждой локальной реплики доступности и для каждой удаленной реплики доступности, входящей в ту же группу доступности.

Имена столбцов: 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 и last_connect_error_timestamp

sys.fn_hadr_backup_is_preferred_replica
Определяет, является ли текущая реплика предпочитаемой резервной репликой отработки.

Примечание.

Сведения о счетчиках производительности для реплик доступности (объект производительности SQLServer:Availability Replica) см. в разделе SQL Server, реплика доступности.

Мониторинг баз данных доступности

Для мониторинга баз данных доступности используйте следующие представления.

sys.availability_databases_cluster
Содержит одну строку для каждой базы данных в экземпляре SQL Server, которая является частью групп доступности AlwaysOn в кластере, независимо от того, присоединена ли база данных локальных копий к группе доступности или нет.

Примечание.

При добавлении базы данных в группу доступности база данных-источник автоматически присоединяется к группе. Базы данных-получатели необходимо подготовить на каждой из вторичных реплик до того, как их можно будет присоединить к группе доступности.

Имена столбцов: group_id, group_database_id, database_name

sys.databases
Содержит одну строку для каждой базы данных в экземпляре SQL Server. Если база данных принадлежит к реплике доступности, то в строке для этой базы данных отображается идентификатор GUID реплики и уникальный идентификатор базы данных внутри группы доступности.

Имена столбцов групп доступности AlwaysOn: реплика_id, group_database_id

sys.dm_hadr_auto_page_repair
Возвращает строку для каждой попытки автоматического восстановления страниц во всех базах данных доступности в реплике доступности, размещенной в группе доступности на экземпляре сервера. Это представление содержит строки, связанные с последними попытками автоматического восстановления страниц в определенной базе данных-источнике или получателе, количество которых ограничено числом в 100 строк на каждую базу данных. По достижении максимального значения строка для следующей попытки автоматического восстановления страниц заменяет одну из существующих записей.

Имена столбцов: database_id, file_id, page_id, error_type, page_status, modification_time

sys.dm_hadr_database_replica_states
Возвращает строку для каждой базы данных, которая участвует в любой группе доступности, для которой локальный экземпляр SQL Server размещает реплика доступности.

Имена столбцов: 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
Возвращает строку с информацией, помогающей составить представление о работоспособности баз данных доступности каждой из групп доступности в отказоустойчивой кластеризации Windows Server (WSFC). Динамическое административное представление удобно использовать при планировании или при отработке отказа либо при поиске вторичной реплики в группе доступности, которая не дает усекать журнал данной базы данных-источника.

Имена столбцов: replica_id, group_database_id, database_name, is_failover_ready, is_pending_secondary_suspend, is_database_joined, recovery_lsn, truncation_lsn

Примечание.

Расположение первичной реплики — авторитетный источник для группы доступности.

Примечание.

Сведения о счетчиках производительности групп доступности AlwaysOn для баз данных доступности (объект производительности реплики базы данных SQLServer:Database) см. в разделе SQL Server, реплика базы данных. Кроме того, чтобы отслеживать действия журнала транзакций в базах данных доступности, используйте следующие счетчики объекта производительности SQLServer:Database: Log Flush Write Time (ms), Log Flushes/sec, Log Pool Cache Misses/sec, Log Pool Disk Reads/sec и Log Pool Requests/sec. Дополнительные сведения см. в разделе SQL Server, объект Database.

Мониторинг прослушивателей группы доступности

Для мониторинга прослушивателей группы доступности в подсети кластера WSFC используйте следующие представления:

sys.availability_group_listener_ip_addresses
Возвращает строку для каждого совместимого виртуального IP-адреса, который в настоящее время включен для прослушивателя группы доступности.

Имена столбцов: listener_id, IP-адрес, ip_subnet_mask, is_dhcp, network_subnet_ip, network_subnet_prefix_length, network_subnet_ipv4_mask, state, state_desc

sys.availability_group_listeners
Для любой выбранной группы доступности возвращает либо ноль строк, указывая, что с группой доступности не связано ни одного сетевого имени, либо отдельную строку для каждой конфигурации прослушивателя группы доступности в кластере WSFC.

Имена столбцов: group_id, listener_id, dns_name, порт, is_conformant, ip_configuration_string_from_cluster

sys.dm_tcp_listener_states
Возвращает строку, содержащую сведения о динамическом состоянии для каждого прослушивателя TCP.

Имена столбцов: listener_id, ip_address, is_ipv4, port, type, type_desc, state, state_desc, start_time

Первичный ключ: listener_id

Сведения о прослушивателях групп доступности см. в разделе Прослушиватели группы доступности, подключения клиентов и отработка отказа приложений (SQL Server).

Связанные задачи

Задачи по мониторингу групп доступности AlwaysOn:

Справочник по мониторингу групп доступности AlwaysOn (Transact-SQL):

Счетчики производительности AlwaysOn:

Управление на основе политик для групп доступности AlwaysOn

См. также

Группы доступности AlwaysOn (SQL Server)
Обзор групп доступности Always On (SQL Server)
Мониторинг групп доступности (SQL Server)