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

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

팁

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

항목 내용:

  • 사용 권한

  • Transact-SQL을 사용하여 모니터링할 대상:  

    서버 인스턴스의 AlwaysOn 가용성 그룹 기능

    WSFC 클러스터의 가용성 그룹

    가용성 그룹

    가용성 복제본

    가용성 데이터베이스

    가용성 그룹 수신기

  • 관련 태스크

사용 권한

AlwaysOn 가용성 그룹 카탈로그 뷰를 사용하려면 서버 인스턴스에 대한 모든 정의 보기 권한이 필요합니다. AlwaysOn 가용성 그룹 동적 관리 뷰를 사용하려면 서버에 대한 서버 상태 보기 권한이 필요합니다.

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

서버 인스턴스의 AlwaysOn 가용성 그룹 기능을 모니터링하려면 다음 기본 제공 함수를 사용합니다.

  • SERVERPROPERTY 함수
    AlwaysOn 가용성 그룹을 사용할지 여부와 사용할 경우 서버 인스턴스에서 시작되었는지 여부에 대한 서버 속성 정보를 반환합니다.

    열 이름:  IsHadrEnabled, HadrManagerStatus

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

AlwaysOn 가용성 그룹에 사용되는 로컬 서버 인스턴스를 호스팅하는 WSFC(Windows Server 장애 조치(Failover) 클러스터링) 클러스터를 모니터링하려면 다음 뷰를 사용합니다.

  • sys.dm_hadr_cluster
    AlwaysOn 가용성 그룹을 사용하여 SQL Server 인스턴스를 호스팅하는 WSFC(Windows Server 장애 조치(Failover) 클러스터링) 노드에 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 클러스터 및 AlwaysOn 가용성 그룹에 대한 자세한 내용은 SQL Server의 WSFC(Windows Server 장애 조치(Failover) 클러스터링)장애 조치(Failover) 클러스터링 및 AlwaysOn 가용성 그룹(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 클러스터의 각 가용성 그룹에 대해 하나의 행을 반환합니다. 각 행에는 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.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, and last_connect_error_timestamp

  • sys.fn_hadr_backup_is_preferred_replica
    현재 복제본이 기본 백업 복제본인지 여부를 결정합니다.

[!참고]

가용성 복제본의 성능 카운터(SQLServer:Availability Replica 성능 개체)에 대한 자세한 내용은 SQL Server, 가용성 복제본을 참조하십시오.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위]

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

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

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

    [!참고]

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

    열 이름:  group_id, group_database_id, database_name

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

    AlwaysOn 가용성 그룹 열 이름:  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.dm_hadr_database_replica_cluster_states
    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

    [!참고]

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

[!참고]

가용성 데이터베이스의 AlwaysOn 가용성 그룹 성능 카운터(SQLServer:Database Replica 성능 개체)에 대한 자세한 내용은 SQL Serve, 데이터베이스 복제본을 참조하십시오. 또한 가용성 데이터베이스에서 트랜잭션 로그 작업을 모니터링하려면 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 개체를 참조하십시오.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[맨 위]

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

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)