다음을 통해 공유


sp_dbmmonitorresults (Transact-SQL)

적용 대상: SQL Server

데이터베이스 미러링 모니터링 기록이 저장된 상태 테이블에서 모니터링되는 데이터베이스의 상태 행을 반환하고 프로시저에서 최신 상태를 미리 가져올지 여부를 선택할 수 있습니다.

Transact-SQL 구문 표기 규칙

구문

sp_dbmmonitorresults
    [ @database_name = ] N'database_name'
    [ , [ @mode = ] mode ]
    [ , [ @update_table = ] update_table ]
[ ; ]

인수

[ @database_name = ] N'database_name'

미러링 상태를 반환할 데이터베이스를 지정합니다. @database_name sysname이며 기본값은 없습니다.

[ @mode = ] 모드

반환되는 행의 수량을 지정합니다. @mode int이며 이러한 값 중 하나일 수 있습니다.

설명
0 마지막 행
1 행은 2시간 동안 지속됩니다.
2 행이 4시간 동안 지속되었습니다.
3 지난 8시간 행
4 지난 날 행
5 지난 2일 행
6 최근 100개 행
7 최근 500개 행
8 최근 1,000개 행
9 최근 1,000,000개 행

[ @update_table = ] update_table

결과를 반환하기 전에 프로시저를 지정합니다. @update_table 기본값0인 int입니다.

  • 0 = 데이터베이스의 상태를 업데이트하지 않습니다. 결과는 마지막 두 개의 행만 사용하여 계산되고 두 행의 사용 기간은 상태 테이블의 새로 고침 시기에 따라 달라집니다.

  • 1 = 결과를 계산하기 전에 호출 sp_dbmmonitorupdate 하여 데이터베이스의 상태를 업데이트합니다. 그러나 이전 15초 내에 상태 테이블이 업데이트되었거나 사용자가 sysadmin 고정 서버 역할 sp_dbmmonitorresults멤버가 아닌 경우 상태를 업데이트하지 않고 실행됩니다.

반환 코드 값

없음

결과 집합

지정된 데이터베이스에 대해 요청된 기록 상태 행 수를 반환합니다. 각 행에는 다음 정보가 포함됩니다.

열 이름 데이터 형식 설명
database_name sysname 미러된 데이터베이스의 이름입니다.
role int 서버 인스턴스의 현재 미러링 역할:

1 = 보안 주체
2 = 미러
mirroring_state int 데이터베이스의 상태:

0 = 일시 중단됨
1 = 연결이 끊김
2 = 동기화 중
3 = 보류 중인 장애 조치(failover)
4 = 동기화됨
witness_status int 데이터베이스의 데이터베이스 미러링 세션에 있는 미러링 모니터 서버의 연결 상태는 다음과 같습니다.

0 = 알 수 없음
1 = 연결됨
2 = 연결이 끊김
log_generation_rate int 이 데이터베이스의 미러링 상태 업데이트 이후 생성된 로그의 양(KB/초)입니다.
unsent_log int 보안 주체의 송신 큐에 있는 보내지 않은 로그의 크기(킬로바이트)입니다.
send_rate int 보안 주체에서 미러로 로그 전송 속도(KB/초)입니다.
unrestored_log int 미러의 다시 실행 큐 크기(킬로바이트)입니다.
recovery_rate int 미러의 다시 실행 속도(KB/초)입니다.
transaction_delay int 모든 트랜잭션의 총 지연 시간(밀리초)입니다.
transactions_per_sec int 주 서버 인스턴스에서 초당 발생하는 트랜잭션 수입니다.
average_delay int 데이터베이스 미러링으로 인해 각 트랜잭션에 대한 주 서버 인스턴스의 평균 지연. 고성능 모드(즉, 속성이 SAFETY 설정된 OFF경우)에서 이 값은 일반적으로 0다음과 같습니다.
time_recorded 날짜/시간 데이터베이스 미러링 모니터가 행을 기록한 시간입니다. 이 값은 보안 주체의 시스템 클록 시간입니다.
time_behind 날짜/시간 미러 데이터베이스가 현재 catch되는 보안 주체의 대략적인 시스템 클록 시간입니다. 이 값은 주 서버 인스턴스에서만 의미가 있습니다.
local_time 날짜/시간 이 행이 업데이트된 로컬 서버 인스턴스의 시스템 시계 시간입니다.

설명

sp_dbmmonitorresults 는 데이터베이스의 msdb 컨텍스트에서만 실행할 수 있습니다.

사용 권한

sysadmin 고정 서버 역할 또는 데이터베이스의 dbm_monitor 고정 데이터베이스 역할의 msdb 멤버 자격이 필요합니다. dbm_monitor 역할을 사용하면 멤버가 데이터베이스 미러링 상태를 볼 수 있지만 업데이트하지는 않지만 데이터베이스 미러링 이벤트를 보거나 구성할 수는 없습니다.

참고 항목

처음 실행되면 sp_dbmmonitorupdate 데이터베이스에서 dbm_monitor 고정 데이터베이스 역할을 msdb 만듭니다. sysadmin 고정 서버 역할의 멤버는 모든 사용자를 dbm_monitor 고정 데이터베이스 역할에 추가할 수 있습니다.

예제

다음 예제에서는 데이터베이스의 상태를 업데이트하지 않고 이전 2시간 동안 기록된 행을 반환합니다.

USE msdb;
EXEC sp_dbmmonitorresults AdventureWorks2022, 2, 0;