sys.dm_hadr_availability_복제본(replica)_states(Transact-SQL)
적용 대상: SQL Server
로컬 복제본과 동일한 Always On 가용성 그룹의 각 원격 복제본에 대한 행 및 각 로컬 복제본에 대한 행을 반환합니다. 각 행에는 지정된 복제본의 상태에 대한 정보가 들어 있습니다.
Important
지정된 가용성 그룹의 모든 복제본에 대한 정보를 얻으려면 주 복제본을 호스팅하는 서버 인스턴스에서 sys.dm_hadr_availability_replica_states 쿼리합니다. 가용성 그룹의 보조 복제본을 호스팅 중인 서버 인스턴스에 대해 쿼리한 경우 이 동적 관리 뷰에는 가용성 그룹에 대한 로컬 정보만 반환됩니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
replica_id | uniqueidentifier | 복제본의 고유 식별자입니다. |
group_id | uniqueidentifier | 가용성 그룹의 고유한 식별자입니다. |
is_local | bit | 복제본이 로컬인지 여부는 다음 중 하나입니다. 0 = 주 복제본이 로컬 서버 인스턴스에서 호스팅되는 가용성 그룹의 원격 보조 복제본을 나타냅니다. 이 값은 주 복제본 위치에서만 발생합니다. 1 = 로컬 복제본을 나타냅니다. 보조 복제본에서 복제본이 속한 가용성 그룹에 사용할 수 있는 유일한 값입니다. |
역할 | tinyint | 로컬 복제본 또는 연결된 원격 복제본의 현재 Always On 가용성 그룹 역할( 다음 중 하나) 0 = 해결 중 1 = 기본 2 = 보조 Always On 가용성 그룹 역할에 대한 자세한 내용은 Always On 가용성 그룹 개요(SQL Server)를 참조하세요. |
role_desc | nvarchar(60) | 역할에 대한 설명, 다음 중 하나: 해결 PRIMARY SECONDARY |
operational_state | tinyint | 복제본의 현재 작동 상태( 다음 중 하나) 0 = 보류 중인 장애 조치(failover) 1 = 보류 중 2 = 온라인 3 = 오프라인 4 = 실패 5 = 실패, 쿼럼 없음 NULL = 복제본이 로컬이 아닙니다. 자세한 내용은 이 항목의 뒷부분에 있는 역할 및 운영 상태를 참조하세요. |
operational_state_desc | nvarchar(60) | 다음 중 하나인 operational_state 대한 설명입니다. PENDING_FAILOVER PENDING ONLINE OFFLINE 실패 FAILED_NO_QUORUM NULL |
recovery_health | tinyint | sys.dm_hadr_database_replica_states 동적 관리 뷰의 database_state 열 롤업 다음은 가능한 값 및 해당 설명입니다. 0 : 진행 중입니다. 하나 이상의 조인된 데이터베이스에 ONLINE 이외의 데이터베이스 상태가 있습니다(database_state 0이 아님). 1 : 온라인. 조인된 모든 데이터베이스의 데이터베이스 상태는 ONLINE입니다(database_state 0임). NULL : is_local = 0 |
recovery_health_desc | nvarchar(60) | 다음 중 하나인 recovery_health 대한 설명입니다. ONLINE_IN_PROGRESS ONLINE NULL |
synchronization_health | tinyint | 모든 조인된 가용성 데이터베이스(복제본이라고도 함)의 데이터베이스 동기화 상태(synchronization_state) 롤업 및 복제본의 가용성 모드(동기-커밋 또는 비동기 커밋 모드)를 반영합니다. 롤업은 복제본의 데이터베이스에 대한 최소 정상 누적 상태를 반영합니다. 다음은 가능한 값 및 해당 설명입니다. 0: 정상이 아닙니다. 조인된 데이터베이스가 하나 이상 NOT SYNCHRONIZING 상태입니다. 1: 부분적으로 정상입니다. 일부 복제본은 대상 동기화 상태가 아닙니다. 동기-커밋 복제본은 동기화되어야 하며 비동기-커밋 복제본은 동기화되어야 합니다. 2: 정상입니다. 모든 복제본은 대상 동기화 상태에 있습니다. 동기-커밋 복제본이 동기화되고 비동기 커밋 복제본이 동기화됩니다. |
synchronization_health_desc | nvarchar(60) | 다음 중 하나인 synchronization_health 대한 설명입니다. NOT_HEALTHY PARTIALLY_HEALTHY 정상 |
connected_state | tinyint | 보조 복제본이 현재 주 복제본에 연결되어 있는지 여부입니다. 가능한 값은 설명과 함께 아래에 나와 있습니다. 0: 연결이 끊어졌습니다. DISCONNECTED 상태에 대한 가용성 복제본의 응답은 해당 역할에 따라 달라집니다. 주 복제본에서 보조 복제본의 연결이 끊어지면 보조 데이터베이스가 주 복제본에서 NOT SYNCHRONIZED로 표시되어 보조 복제본이 다시 연결되기를 기다립니다. 보조 복제본에서 연결이 끊어진 것을 감지하면 보조 복제본이 주 복제본에 다시 연결하려고 시도합니다. 1: 연결됨. 각 주 복제본이 동일한 가용성 그룹의 모든 보조 복제본에 대한 연결 상태를 추적합니다. 보조 복제본은 주 복제본에 대해서만 연결 상태를 추적합니다. |
connected_state_desc | nvarchar(60) | 다음 중 하나인 connection_state 대한 설명입니다. DISCONNECTED CONNECTED |
last_connect_error_number | int | 마지막 연결 오류의 번호입니다. |
last_connect_error_description | nvarchar(1024) | last_connect_error_number 메시지의 텍스트입니다. |
last_connect_error_timestamp | 날짜/시간 | last_connect_error_number 오류가 발생한 시기를 나타내는 날짜 및 시간 타임스탬프입니다. |
역할 및 운영 상태
역할, 역할은 지정된 가용성 복제본의 상태와 운영 상태를 반영하며, operational_state 복제본이 가용성 복제본의 모든 데이터베이스에 대한 클라이언트 요청을 처리할 준비가 되었는지 여부를 설명합니다. 다음은 각 역할에 대해 가능한 작업 상태(RESOLVING, PRIMARY 및 SECONDARY)에 대한 요약입니다.
해결: 가용성 복제본이 RESOLVING 역할에 있는 경우 가능한 작업 상태는 다음 표와 같습니다.
작동 상태 | 설명 |
---|---|
PENDING_FAILOVER | 가용성 그룹에 대해 장애 조치(failover) 명령이 처리되고 있습니다. |
OFFLINE | 가용성 복제본에 대한 모든 구성 데이터는 WSFC 클러스터 및 로컬 메타데이터에서도 업데이트되었지만 현재 가용성 그룹에는 주 복제본이 없습니다. |
실패 | WSFC 클러스터에서 정보를 검색하려고 시도하는 동안 읽기 오류가 발생했습니다. |
FAILED_NO_QUORUM | 로컬 WSFC 노드에는 쿼럼이 없습니다. 유추된 상태입니다. |
주: 가용성 복제본이 주 역할을 수행하는 경우 현재 주 복제본입니다. 가능한 작업 상태는 다음 표와 같습니다.
작동 상태 | 설명 |
---|---|
PENDING | 일시적 상태이지만 작업자가 요청을 처리할 수 없는 경우 주 복제본이 이 상태에서 중단될 수 있습니다. |
ONLINE | 가용성 그룹 리소스가 온라인 상태이고 모든 데이터베이스 작업자 스레드가 선택되었습니다. |
실패 | 가용성 복제본은 WSFC 클러스터에서 읽거나 쓸 수 없습니다. |
보조: 가용성 복제본이 보조 역할을 수행하는 경우 현재 보조 복제본입니다. 가능한 작동 상태는 아래 표에 나와 있습니다.
작동 상태 | 설명 |
---|---|
ONLINE | 로컬 보조 복제본은 주 복제본에 연결됩니다. |
실패 | 로컬 보조 복제본은 WSFC 클러스터에서 읽거나 쓸 수 없습니다. |
NULL | 주 복제본에서 이 값은 행이 보조 복제본과 관련되어 있을 때 반환됩니다. |
사용 권한
서버에 대한 VIEW SERVER STATE 권한이 필요합니다.
SQL Server 2022 이상에 대한 사용 권한
서버에 대한 VIEW SERVER PERFORMANCE STATE 권한이 필요합니다.