가용성 그룹 모니터링(Transact-SQL)

Transact-SQL을 사용하여 가용성 그룹 및 복제본 및 관련 데이터베이스를 모니터링하기 위해 Always On 가용성 그룹은 카탈로그 및 동적 관리 뷰 및 서버 속성 집합을 제공합니다. Transact-SQL SELECT 문을 사용하여 뷰를 통해 가용성 그룹과 해당 복제본 및 데이터베이스를 모니터링할 수 있습니다. 지정된 가용성 그룹에 대해 반환되는 정보는 연결된 SQL Server 인스턴스가 주 복제본을 호스팅 중인지 아니면 보조 복제본을 호스팅 중인지에 따라 다릅니다.

ID 열로 뷰를 조인하여 한 번의 쿼리로 여러 뷰에서 정보를 반환할 수 있습니다.

사용 권한

Always On 가용성 그룹 카탈로그 뷰에는 서버 instance 대한 VIEW ANY DEFINITION 권한이 필요합니다. Always On 가용성 그룹 동적 관리 뷰에는 서버에 대한 VIEW SERVER STATE 권한이 필요합니다.

서버 인스턴스의 AlwaysOn 가용성 그룹 모니터링 기능

서버 instance Always On 가용성 그룹 기능을 모니터링하려면 다음 기본 제공 함수를 사용합니다.

SERVERPROPERTY 함수
Always On 가용성 그룹을 사용할 수 있는지 여부와 서버에서 시작되었는지 여부에 대한 서버 속성 정보를 instance.

열 이름: IsHadrEnabled, HadrManagerStatus

WSFC 클러스터의 가용성 그룹 모니터링

Always On 가용성 그룹에 대해 사용하도록 설정된 로컬 서버 instance 호스트하는 WSFC(Windows Server 장애 조치(failover) 클러스터링) 클러스터를 모니터링하려면 다음 보기를 사용합니다.

sys.dm_hadr_cluster
Always On 가용성 그룹을 사용하도록 설정된 SQL Server instance 호스트하는 WSFC(Windows Server 장애 조치 클러스터링) 노드에 WSFC 쿼럼이 있는 경우 sys.dm_hadr_cluster 클러스터 이름과 쿼럼에 대한 정보를 표시하는 행을 반환합니다. WSFC 노드에 쿼럼이 없으면 반환되는 행이 없습니다.

열 이름: cluster_name, quorum_type, quorum_type_desc, quorum_state, quorum_state_desc

sys.dm_hadr_cluster_members
SQL Server의 로컬 AlwaysOn 사용 인스턴스를 호스팅하는 WSFC 노드에 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
AlwaysOn 가용성 그룹에 조인된 가용성 복제본을 호스팅하는 SQL Server의 모든 인스턴스에 대해 서버 인스턴스를 호스팅하는 WSFC(Windows Server 장애 조치(Failover) 클러스터링) 노드의 이름을 반환합니다. 이러한 동적 관리 뷰는 다음과 같이 사용됩니다.

  • 이 동적 관리 뷰는 동일한 WSFC 노드에서 호스팅되는 여러 가용성 복제본이 포함된 가용성 그룹을 검색하는 데 유용합니다. 이러한 구성은 가용성 그룹이 잘못 구성된 경우 FCI 장애 조치(failover) 이후 발생 가능한 지원되지 않는 구성입니다.

  • 여러 SQL Server 인스턴스가 동일한 WSFC 노드에 호스팅되는 경우 리소스 DLL이 이 동적 관리 뷰를 사용하여 연결할 SQL Server의 인스턴스를 확인합니다.

열 이름: ag_resource_id, instance_name, node_name

sys.dm_hadr_name_id_map
현재 SQL Server 인스턴스가 세 가지 고유한 ID인 가용성 그룹 ID, WSFC 리소스 ID 및 WSFC 그룹 ID에 조인된 AlwaysOn 가용성 그룹의 매핑을 보여 줍니다. 이 매핑의 목적은 WSFC 리소스/그룹의 이름이 바뀐 시나리오를 처리하기 위한 것입니다.

열 이름: ag_name, ag_id, ag_resource_id, ag_group_id

참고

또한 나중에 이 항목에 있는 가용성 복제본 모니터링 섹션에서 sys.dm_hadr_availability_replica_cluster_nodessys.dm_hadr_availability_replica_cluster_states를 참조하고 가용성 데이터베이스 모니터링 섹션에서 sys.availability_databases_clustersys.dm_hadr_database_replica_cluster_states를 참조하세요.

WSFC 클러스터 및 Always On 가용성 그룹에 대한 자세한 내용은 SQL Server 및 장애 조치(failover) 클러스터링AlwaysOn 가용성 그룹(SQL Server)을 사용하여 WSFC(Windows Server 장애 조치(failover) 클러스터링)를 참조하세요.

가용성 그룹 모니터링

서버 인스턴스가 가용성 복제본을 호스팅하는 가용성 그룹을 모니터링하려면 다음 뷰를 사용합니다.

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 클러스터의 각 가용성 그룹에 대해 하나의 행을 반환합니다. 각 행에는 WSFC(Windows Server 장애 조치(Failover) 클러스터링) 클러스터의 가용성 그룹 메타데이터가 포함됩니다.

열 이름: 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.dm_hadr_availability_replica_cluster_states

가용성 복제본을 모니터링하려면 다음 뷰와 시스템 함수를 사용합니다.

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
WSFC 장애 조치(Failover) 클러스터의 AlwaysOn 가용성 그룹에서 각각의 가용성 복제본의 읽기 전용 라우팅 목록에 대한 행을 반환합니다.

열 이름: replica_id, routing_priority, read_only_replica_id

sys.dm_hadr_availability_replica_cluster_nodes
WSFC(Windows Server 장애 조치(Failover) 클러스터링) 클러스터에 있는 AlwaysOn 가용성 그룹의 모든 가용성 복제본(조인 상태에 상관없음)에 대해 하나의 행을 반환합니다.

열 이름: group_name, replica_server_name, node_name

sys.dm_hadr_availability_replica_cluster_states
WSFC(Windows Server 장애 조치(Failover) 클러스터링) 클러스터에 있는 모든 AlwaysOn 가용성 그룹(복제본 위치에 상관없음)의 각 복제본(조인 상태에 상관없음)에 대해 하나의 행을 반환합니다.

열 이름: 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, 가용성 복제본을 참조하세요.

가용성 데이터베이스 모니터링

가용성 데이터베이스를 모니터링하려면 다음 뷰를 사용합니다.

가용성 데이터베이스 모니터링
로컬 복사본 데이터베이스가 가용성 그룹에 조인되어 있는지 여부에 상관없이 클러스터의 모든 AlwaysOn 가용성 그룹의 일부인 SQL Server 인스턴스의 데이터베이스별로 하나의 행을 포함합니다.

참고

데이터베이스가 가용성 그룹에 추가되면 주 데이터베이스가 그룹에 자동으로 조인됩니다. 보조 데이터베이스를 가용성 그룹에 조인하려면 각 보조 복제본에서 보조 데이터베이스를 준비해야 합니다.

열 이름: group_id, group_database_id, database_name

sys.databases
SQL Server인스턴스의 각 데이터베이스당 한 개의 행을 포함합니다. 데이터베이스가 가용성 복제본에 속하는 경우 해당 데이터베이스의 행에 복제본의 GUID와 가용성 그룹 내의 데이터베이스에 대한 고유 식별자가 표시됩니다.

Always On 가용성 그룹 열 이름: replica_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.availability_databases_cluster
WSFC(Windows Server 장애 조치(Failover) 클러스터링) 클러스터의 각 가용성 그룹에 있는 가용성 데이터베이스의 상태를 파악하는 데 필요한 정보가 들어 있는 행을 반환합니다. 이 동적 관리 뷰는 장애 조치(failover)를 계획 또는 이에 응답하거나 지정된 주 데이터베이스의 로그 잘림을 보유 중인 가용성 그룹의 보조 복제본을 검색하는 데 유용합니다.

열 이름: replica_id, group_database_id, database_name, is_failover_ready, is_pending_secondary_suspend, is_database_joined, recovery_lsn, truncation_lsn

참고

주 복제본 위치는 가용성 그룹의 권한이 있는 원본입니다.

참고

가용성 데이터베이스에 대한 Always On 가용성 그룹 성능 카운터(SQLServer:Database Replica 성능 개체)에 대한 자세한 내용은 SQL Server 데이터베이스 복제본을 참조하세요. 또한 가용성 데이터베이스에서 트랜잭션 로그 작업을 모니터링하려면 SQLServer:Databases 성능 개체: Log Flush Write Time (ms) , Log Flushes/sec, Log Pool Cache Misses/sec, Log Pool Disk Reads/secLog Pool Requests/sec 카운터를 사용합니다. 자세한 내용은 SQL Server, Databases Object을 참조하세요.

가용성 그룹 수신기 모니터링

WSFC 클러스터의 서브넷에서 가용성 그룹 수신기를 모니터링하려면 다음 뷰를 사용합니다.

sys.availability_group_listener_ip_addresses
가용성 그룹 수신기에 대해 현재 온라인인 규칙에 부합하는 모든 가상 IP 주소에 대해 하나의 행을 반환합니다.

열 이름: 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
지정된 가용성 그룹에 대해 0개의 행을 반환하여 가용성 그룹에 연결된 네트워크 이름이 없음을 나타내거나 WSFC 클러스터의 각 가용성 그룹 수신기 구성에 대해 하나의 행을 반환합니다.

열 이름: group_id, listener_id, dns_name, port, 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

가용성 그룹 수신기에 대한 자세한 내용은 가용성 그룹 수신기, 클라이언트 연결 및 애플리케이션 장애 조치(failover)(SQL Server)를 참조하세요.

관련 작업

AlwaysOn 가용성 그룹 모니터링 태스크:

AlwaysOn 가용성 그룹 모니터링 참조(Transact-SQL):

AlwaysOn 성능 카운터:

AlwaysOn 가용성 그룹에 대한 정책 기반 관리

참고 항목

AlwaysOn 가용성 그룹(SQL Server)
AlwaysOn 가용성 그룹 개요(SQL Server)
가용성 그룹 모니터링(SQL Server)