Share via


동적 관리 뷰 및 시스템 카탈로그 뷰(Always On 가용성 그룹)

적용 대상:SQL Server

이 토픽에서는 가용성 그룹을 모니터링 및 문제 해결하는 데 사용할 수 있는 Always On DMV(동적 관리 뷰)에 대한 몇 가지 일반 쿼리를 보여 줍니다.

Always On 대시보드에서 해당 테이블 헤더를 마우스 오른쪽 단추로 클릭하고 표시하거나 숨기려는 DMV를 선택해서 가용성 복제본(replica) 및 가용성 데이터베이스에 대한 많은 DMV를 표시해 주도록 GUI를 쉽게 만들 수 있습니다.

가용성 그룹 DMV에 대한 자세한 내용은 Always On 가용성 그룹 동적 관리 뷰 및 기능(Transact-SQL)을 참조하세요. 가용성 그룹 카탈로그 뷰에 대한 자세한 내용은 Always On 가용성 그룹 카탈로그 뷰(Transact-SQL)를 참조하세요.

WSFC 클러스터 노드의 구성 확인합니다

다음 T-SQL(Transact-SQL) 쿼리는 현재 WSFC(Windows Server 장애 조치 클러스터링) 클러스터에 있는 모든 노드의 상태를 검색합니다.

use master  
go  
select * from sys.dm_hadr_cluster_members  
go  

이러한 결과 집합은 현재 WSFC 클러스터의 각 멤버 노드의 상태를 보고합니다. 쿼럼이 노드 및 파일 공유 과반수정의되는 경우 파일 공유도 보고됩니다. 각 노드의 투표 가중치(number_of_quorum_votes 값)를 포함하여 각 노드의 상태를 확인할 수 있습니다.

클러스터 네트워크 탐색

다음 쿼리는 현재 WSFC 클러스터의 네트워크 구성을 검색합니다.

select * from sys.dm_hadr_cluster_networks  

결과 집합에는 WSFC 클러스터의 각 네트워크 어댑터에 대해 하나의 행을 포함합니다. 예를 들어 각 노드에 두 개의 네트워크 어댑터를 포함하고 있는 2개의 노드 클러스터에서 이 쿼리는 행 4개를 반환합니다.

가용성 그룹 살펴보기

다음 쿼리는 가용성 그룹에 관한 정보를 검색합니다.

select primary_replica, primary_recovery_health_desc, synchronization_health_desc from sys.dm_hadr_availability_group_states  
go  
select * from sys.availability_groups  
go  
select * from sys.availability_groups_cluster  
go  

DMVs sys.dm_hadr_availability_group_states(Transact-SQL), sys.availability_groups(Transact-SQL), sys.availability_groups_cluster는 모두 현재 WSFC 클러스터의 가용성 그룹에 관한 정보를 반환합니다. 사실 sys.availability_groups(Transact-SQL)sys.availability_groups_cluster는 같은 정보를 반환하는 것처럼 보입니다.

그러나 sys.availability_groups_cluster는 WSFC 클러스터에 저장된 가용성 그룹 메타데이터를 보고하는 반면, sys.availability_groups(Transact-SQL)는 SQL Server 프로세스 공간에 캐시된 가용성 그룹 메타데이터를 보고합니다. 또한 이 두 DMV는 구성 정보를 보고하는 반면에 sys.dm_hadr_availability_group_states(Transact-SQL)은 가용성 그룹의 현재 상태를 보고합니다.

Important

이러한 명명법은 가용성 복제본(replica) 및 가용성 데이터베이스를 문서화하는 DMV와 함께 전달됩니다.

가용성 복제본(replica) 살펴보기

다음 쿼리는 가용성 그룹에 정의된 가용성 복제본에 관한 정보를 검색합니다.

select replica_id, role_desc, connected_state_desc, synchronization_health_desc from sys.dm_hadr_availability_replica_states  
go  
select replica_server_name, replica_id, availability_mode_desc, endpoint_url from sys.availability_replicas  
go  
select replica_server_name, join_state_desc from sys.dm_hadr_availability_replica_cluster_states  
go  

가용성 그룹 DMV와 비슷하게 가용성 복제본(replica)에 관해서 보고하는 세 개의 DMV를 찾을 수 있습니다. sys.dm_hadr_availability_replica_states는 SQL Server에 로컬로 캐시된 가용성 복제본에 관한 상태 정보를 보고하며, sys.dm_hadr_availability_replica_cluster_states는 WSFC 클러스터의 가용성 복제본에 관한 상태 정보를 보고합니다. 끝으로 sys.availability_replicas는 SQL Server에 로컬로 캐시된 가용성 복제본에 관한 구성 데이터를 보고합니다.

가용성 복제본(replica) 상태 살펴보기

다음 쿼리는 가용성 복제본(replica)에 관한 현재의 상태 정보를 검색합니다.

select replica_id, role_desc, recovery_health_desc, synchronization_health_desc from sys.dm_hadr_availability_replica_states  
go  

주 복제본 및 보조 복제본에 관한 쿼리 결과를 비교해 보면 보조 복제본에 관한 상태 정보가 가용성 그룹의 다른 복제본에 대해서가 아닌 해당 복제본에 대해서만 보고된다는 것을 알 수 있습니다.

가용성 데이터베이스 살펴보기

다음 쿼리는 가용성 그룹에 정의된 가용성 복제본(replica)에 관한 정보를 검색합니다. 가용성 데이터베이스에서 데이터 이동을 일시 중단하기 전후의 쿼리 결과와 변화를 관찰해 볼 수 있습니다.

select * from sys.availability_databases_cluster  
go  
select group_database_id, database_name, is_failover_ready  from sys.dm_hadr_database_replica_cluster_states  
go  
select database_id, synchronization_state_desc, synchronization_health_desc, last_hardened_lsn, redo_queue_size, log_send_queue_size from sys.dm_hadr_database_replica_states  
go  

여기에서 다시, Always On DMD의 세 가지가 가용성 데이터베이스에 관해 보고합니다. sys.availability_databases_cluster는 WSFC 클러스터의 가용성 데이터베이스에 관한 구성 정보를 보고합니다. sys.dm_hadr_database_replica_cluster_states는 SQL Server에 로컬로 캐시 된 데이터베이스 복제본(replica)관한 상태 정보를 보고합니다. 즉, 가용성 복제본의 장애 조치(failover) 준비 상태 같은 몇 가지 중요한 상태 정보를 포함합니다. 마지막으로, sys.dm_hadr_database_replica_states는 기본 및 보조 데이터베이스 복제본(replica) 로그에 대한 LSN 진행률 정보와 같은 각 가용성 데이터베이스에 대한 ID 및 상태 정보를 보고하는 매우 상세한 결과 집합입니다.

가용성 데이터베이스 상태 살펴보기

다음 쿼리는 복제본에 있는 각 가용성 데이터베이스의 상태에 관한 정보를 검색합니다. 가용성 데이터베이스에서 데이터 이동을 일시 중단하기 전후의 쿼리 결과와 변화를 관찰해 볼 수 있습니다.

select dc.database_name, dr.database_id, dr.synchronization_state_desc,   
dr.suspend_reason_desc, dr.synchronization_health_desc  
from sys.dm_hadr_database_replica_states dr  join sys.availability_databases_cluster dc  
on dr.group_database_id=dc.group_database_id   
where is_local=1  
go