sp_dbmmonitorresults (Transact-SQL)
적용 대상: SQL Server
데이터베이스 미러링 모니터링 기록이 저장된 상태 테이블에서 모니터링되는 데이터베이스의 상태 행을 반환하고 프로시저에서 최신 상태를 미리 가져올지 여부를 선택할 수 있습니다.
구문
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;