다음을 통해 공유


sys.dm_database_replica_states (Azure SQL 데이터베이스)

적용 대상: Azure SQL 데이터베이스 Azure SQL Managed Instance

주 복제본과 보조 복제본에 참여하는 각 데이터베이스에 대한 상태 정보를 반환합니다. 보조 복제본에서 인스턴스의 모든 보조 데이터베이스에 대해 하나의 행을 반환합니다. 주 복제본에서 주 데이터베이스에 대해 한 행을 반환하고 각 보조 데이터베이스에 대해 추가 행을 반환합니다.

Important

작업 및 상위 수준 상태에 따라 데이터베이스 상태 정보를 사용할 수 없거나 최신 상태가 아닐 수 있습니다. 또한 값은 로컬 관련성만 있습니다.

열 이름 데이터 형식 설명(주 복제본)
database_id int 데이터베이스의 식별자입니다.

Azure SQL Database에서 값은 단일 데이터베이스 또는 탄력적 풀 내에서 고유하지만 논리 서버 내에는 고유하지 않습니다.
group_id uniqueidentifier 데이터베이스가 속한 가용성 그룹의 식별자입니다.
replica_id uniqueidentifier 가용성 그룹 내의 가용성 복제본 식별자입니다.
group_database_id uniqueidentifier 가용성 그룹 내의 데이터베이스 식별자입니다. 이 식별자는 이 데이터베이스가 조인된 모든 복제본에서 동일합니다.
is_local bit 가용성 데이터베이스가 로컬인지 여부는 다음 중 하나입니다.

0 = 데이터베이스가 SQL Server 인스턴스에 로컬이 아닙니다.

1 = 데이터베이스가 서버 인스턴스에 로컬입니다.
is_primary_replica bit 복제본이 주 복제본이면 1을 반환하고, 데이터베이스가 속한 가용성 그룹의 보조 복제본인 경우 0을 반환합니다. 분산 가용성 그룹 또는 활성 지역 복제 관계의 주 데이터베이스 또는 보조 데이터베이스를 참조하지 않습니다.

적용 대상: SQL Server 2014(12.x) 이상 버전.
synchronization_state tinyint 다음 값 중 하나인 데이터 이동 상태입니다.

0 = 동기화되지 않습니다. 주 데이터베이스의 경우 데이터베이스가 해당 보조 데이터베이스와 트랜잭션 로그를 동기화할 준비가 되지 않음을 나타냅니다. 보조 데이터베이스의 경우 연결 문제로 인해 데이터베이스가 로그 동기화를 시작하지 않았거나, 일시 중단 중이거나, 시작 또는 역할 스위치 중에 전환 상태를 거치고 있음을 나타냅니다.

1 = 동기화. 주 데이터베이스의 경우 데이터베이스가 보조 데이터베이스의 검사 요청을 수락할 준비가 되었음을 나타냅니다. 보조 데이터베이스의 경우 데이터베이스에 대해 활성 데이터 이동이 발생했음을 나타냅니다.

2 = 동기화됨. 주 데이터베이스는 SYNCHRONIZING 대신 SYNCHRONIZED를 표시합니다. 로컬 캐시에 데이터베이스가 장애 조치(failover)가 준비되고 동기화 중이라고 표시되면 동기 커밋 보조 데이터베이스가 동기화된 것으로 표시됩니다.

3 = 되돌리기. 보조 데이터베이스가 주 데이터베이스에서 페이지 가져오기를 현재 진행 중인 경우의 실행 취소 프로세스의 단계를 나타냅니다.

중요: 보조 복제본의 데이터베이스가 되돌리기 상태인 경우 보조 복제본으로 강제 장애 조치(failover)를 수행하면 데이터베이스가 주 데이터베이스로 시작할 수 없는 상태로 남게 됩니다. 데이터베이스를 보조 데이터베이스로 다시 연결해야 하거나 로그 백업에서 새 로그 레코드를 적용해야 합니다.

4 = 초기화. 보조 데이터베이스가 보조 복제본에 배송되고 강화되는 실행 취소 LSN을 따라잡는 데 트랜잭션 로그가 필요한 경우의 실행 취소 단계를 나타냅니다.

중요: 보조 복제본의 데이터베이스가 INITIALIZING 상태인 경우 보조 복제본으로 강제 장애 조치(failover)를 수행하면 데이터베이스를 주 데이터베이스로 시작할 수 없는 상태로 남게 됩니다. 데이터베이스를 보조 데이터베이스로 다시 연결해야 하거나 로그 백업에서 새 로그 레코드를 적용해야 합니다.
synchronization_state_desc nvarchar(60) 데이터 이동 상태에 대한 설명입니다. 다음 중 하나입니다.

- 동기화되지 않음
-동기화
-동기화
-되돌리기
-초기화
is_commit_participant bit 0 = 트랜잭션 커밋은 이 데이터베이스와 관련하여 동기화되지 않습니다.

1 = 트랜잭션 커밋이 이 데이터베이스와 관련하여 동기화됩니다.

비동기 커밋 가용성 복제본의 데이터베이스에 대해서는 이 값이 항상 0입니다.

동기-커밋 가용성 복제본의 데이터베이스의 경우 이 값은 주 데이터베이스에서만 정확합니다.
synchronization_health tinyint 가용성 복제본의 가용성 그룹에 조인된 데이터베이스의 동기화 상태와 가용성 복제본의 가용성 모드(동기-커밋 또는 비동기-커밋 모드) 다음 값 중 하나를 반영합니다.

0 = 정상이 아닙니다. synchronization_state 데이터베이스의 0(동기화 안 됨)입니다.

1 = 부분적으로 정상입니다. 동기-커밋 가용성 복제본의 데이터베이스는 1(SYNCHRONIZING)인 경우 synchronization_state 부분적으로 정상으로 간주됩니다.

2 = 정상입니다. 동기-커밋 가용성 복제본의 데이터베이스는 2(SYNCHRONIZED)인 경우 synchronization_state 정상으로 간주되며, 비동기 커밋 가용성 복제본의 데이터베이스는 1인 경우 synchronization_state 정상으로 간주됩니다(SYNCHRONIZING).
synchronization_health_desc nvarchar(60) 가용성 데이터베이스에 synchronization_health 대한 설명입니다.

- NOT_HEALTHY
- PARTIALLY_HEALTHY
-건전하다
database_state tinyint 0 = 온라인
1 = 복원
2 = 복구 중
3 = 복구 보류 중
4 = 용의자
5 = 응급 상황
6 = 오프라인

참고: 의 열과 state sys.databases동일합니다.
database_state_desc nvarchar(60) 가용성 복제본에 database_state 대한 설명입니다.

-온라인
-복원
-복구
- RECOVERY_PENDING
-용의자
-비상
-오프 라인

참고: 의 열과 state_desc sys.databases동일합니다.
is_suspended bit 데이터베이스 상태, 다음 중 하나:

0 = 다시 시작됨
1 = 일시 중지됨
suspend_reason tinyint 데이터베이스가 일시 중지된 경우 일시 중지된 상태의 원인이며 다음 중 하나입니다.

0 = 사용자 동작
1 = 파트너가 일시 중지
2 = 다시 실행
3 = 캡처
4 = 적용
5 = 다시 시작
6 = 실행 취소
7 = 유효성 재검사
8 = 보조 복제본 동기화 지점 계산에서 오류 발생
suspend_reason_desc nvarchar(60) 데이터베이스 일시 중단 상태 이유에 대한 설명입니다. 다음 중 하나입니다.

SUSPEND_FROM_USER = 사용자가 수동으로 데이터 이동을 일시 중단했습니다.

SUSPEND_FROM_PARTNER = 강제 장애 조치(failover) 후 데이터베이스 복제본이 일시 중단됨

SUSPEND_FROM_REDO = 다시 실행 단계에서 오류가 발생했습니다.

SUSPEND_FROM_APPLY = 로그를 파일에 쓸 때 오류가 발생했습니다(오류 로그 참조).

SUSPEND_FROM_CAPTURE = 주 복제본에서 로그를 캡처하는 동안 오류가 발생했습니다.

SUSPEND_FROM_RESTART = 데이터베이스를 다시 시작하기 전에 데이터베이스 복제본이 일시 중단되었습니다(오류 로그 참조).

SUSPEND_FROM_UNDO = 실행 취소 단계 중에 오류가 발생했습니다(오류 로그 참조).

SUSPEND_FROM_REVALIDATION = 재연결 시 로그 변경 사항 불일치가 검색되었습니다(오류 로그 참조).

SUSPEND_FROM_XRF_UPDATE = 공통 로그 지점을 찾을 수 없습니다(오류 로그 참조).
recovery_lsn numeric(25,0) 주 복제본에서 주 데이터베이스가 복구 또는 장애 조치(failover) 후 새 로그 레코드를 쓰기 전에 트랜잭션 로그의 끝입니다. 지정된 보조 데이터베이스의 경우 이 값이 현재 강화된 LSN()last_hardened_lsnrecovery_lsn보다 작으면 이 보조 데이터베이스를 다시 동기화해야 하는 값입니다(즉, 되돌리고 다시 초기화하기 위해). 이 값이 현재 강화된 LSN보다 크거나 같으면 다시 동기화가 필요하지 않으며 발생하지 않습니다.

recovery_lsn 는 0으로 패딩된 로그 블록 ID를 반영합니다. LSN(실제 로그 시퀀스 번호)이 아닙니다.
truncation_lsn numeric(25,0) 주 복제본에서 주 데이터베이스의 경우 모든 해당 보조 데이터베이스에서 최소 로그 잘림 LSN을 반영합니다. 로컬 로그 잘림이 차단되는 경우(예: 백업 작업) 이 LSN은 로컬 잘림 LSN보다 높을 수 있습니다.

지정된 보조 데이터베이스의 경우 해당 데이터베이스의 잘림 지점을 반영합니다.

truncation_lsn 0으로 패딩된 로그 블록 ID를 반영합니다. 실제 로그 시퀀스 번호가 아닙니다.
last_sent_lsn numeric(25,0) 주 데이터베이스에서 모든 로그 블록을 보낸 지점을 나타내는 로그 블록 식별자입니다. 가장 최근에 보낸 로그 블록의 ID가 아니라 전송될 다음 로그 블록의 ID입니다.

last_sent_lsn 는 0으로 패딩된 로그 블록 ID를 반영합니다. 실제 로그 시퀀스 번호가 아닙니다.
last_sent_time 날짜/시간 마지막 로그 블록을 보낸 시간입니다.
last_received_lsn numeric(25,0) 이 보조 데이터베이스를 호스팅하는 보조 복제본이 모든 로그 블록을 받은 지점을 식별하는 로그 블록 ID입니다.

last_received_lsn 는 0으로 패딩된 로그 블록 ID를 반영합니다. 실제 로그 시퀀스 번호가 아닙니다.
last_received_time 날짜/시간 마지막으로 받은 메시지의 로그 블록 ID가 보조 복제본에서 읽은 시간입니다.
last_hardened_lsn numeric(25,0) 보조 데이터베이스에서 마지막으로 강화된 LSN의 로그 레코드를 포함하는 로그 블록의 시작입니다.

비동기 커밋 주 데이터베이스 또는 현재 정책이 "지연"인 동기 커밋 데이터베이스에서 값은 NULL입니다. 다른 동기 커밋 주 데이터베이스의 경우 모든 보조 데이터베이스 last_hardened_lsn 에서 강화된 LSN의 최소값을 나타냅니다.

참고: last_hardened_lsn 0으로 패딩된 로그 블록 ID를 반영합니다. 실제 로그 시퀀스 번호가 아닙니다.
last_hardened_time 날짜/시간 보조 데이터베이스에서 마지막으로 강화된 LSN(last_hardened_lsn)에 대한 로그 블록 식별자의 시간입니다. 주 데이터베이스에서 확정된 최소 LSN에 해당하는 시간을 반영합니다.
last_redone_lsn numeric(25,0) 보조 데이터베이스에서 마지막으로 다시 실행된 로그 레코드의 실제 로그 시퀀스 번호입니다. last_redone_lsn 는 항상 .보다 last_hardened_lsn작습니다.
last_redone_time 날짜/시간 보조 데이터베이스에서 마지막 로그 레코드가 다시 실행된 시간입니다.
log_send_queue_size bigint 보조 데이터베이스로 전송되지 않은 주 데이터베이스의 로그 레코드 양(KB)입니다.
log_send_rate bigint 주 복제본 인스턴스가 마지막 활성 기간 동안 데이터를 보낸 평균 속도(KB)/초입니다.
redo_queue_size bigint 아직 다시 실행되지 않은 보조 복제본의 로그 파일에 있는 로그 레코드의 양(KB)입니다.
redo_rate bigint 지정된 보조 데이터베이스에서 로그 레코드를 다시 실행 중인 평균 속도(KB)/초입니다.

redo_rate 는 데이터베이스 엔진 시작 이후 다시 실행된 총 로그 바이트를 경과된 시간이 아니라 다시 실행 중일 때의 시간 범위로 나누어 계산됩니다. 다시 실행이 지속적으로 실행되지 않을 수 있으므로 결과 값이 성능 카운터 값 Database Replica:Redone Bytes/sec 과 다를 수 있습니다(더 높음).
filestream_send_rate bigint FILESTREAM 파일이 보조 복제본으로 전송되는 속도(KB)/초입니다.
end_of_log_lsn numeric(25,0) 로그 LSN의 로컬 끝입니다. 주 및 보조 데이터베이스의 로그 캐시에 있는 마지막 로그 레코드에 해당하는 실제 LSN입니다. 주 복제본에서 보조 행은 보조 복제본이 주 복제본에 보낸 최신 진행률 메시지의 로그 LSN 끝을 반영합니다.

end_of_log_lsn 는 0으로 패딩된 로그 블록 ID를 반영합니다. 실제 로그 시퀀스 번호가 아닙니다.
last_commit_lsn numeric(25,0) 트랜잭션 로그의 마지막 커밋 레코드에 해당하는 실제 로그 시퀀스 번호입니다.

주 데이터베이스에서 처리된 마지막 커밋 레코드에 해당합니다. 보조 데이터베이스의 행에는 보조 복제본이 주 복제본에 보낸 로그 시퀀스 번호가 표시됩니다.

보조 복제본에서 다시 실행된 마지막 커밋 레코드입니다.
last_commit_time 날짜/시간 마지막 커밋 레코드에 해당하는 시간입니다.

보조 데이터베이스에서 이 시간은 주 데이터베이스의 시간과 동일합니다.

주 복제본에서 각 보조 데이터베이스 행은 보조 데이터베이스를 호스트하는 보조 복제본이 주 복제본에 다시 보고한 시간을 표시합니다. 주 데이터베이스 행과 지정된 보조 데이터베이스 행 간의 시간 차이는 다시 실행 프로세스가 catch되고 진행률이 보조 복제본에 의해 주 복제본에 다시 보고되었다고 가정하는 RPO(복구 지점 목표)를 나타냅니다.
low_water_mark_for_ghosts bigint 주 데이터베이스에서 고스트 정리에 사용되는 낮은 워터 마크를 나타내는 데이터베이스의 단조로 증가하는 수입니다. 이 숫자가 시간이 지남에 따라 증가하지 않으면 고스트 정리가 발생하지 않을 수 있음을 의미합니다. 정리할 고스트 행을 결정하기 위해 주 복제본은 주 복제본을 포함한 모든 가용성 복제본에서 이 데이터베이스에 대한 이 열의 최소값을 사용합니다.
secondary_lag_seconds bigint 동기화 중에 보조 복제본이 주 복제본 뒤에 있는 시간(초)입니다.

적용 대상: SQL Server 2016(13.x) 이상 버전
quorum_commit_lsn numeric(25,0) 정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.
quorum_commit_time 날짜/시간 정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

사용 권한

데이터베이스에 대한 VIEW DATABASE STATE 권한이 필요합니다.

참고 항목