sp_replmonitorhelpsubscription(Transact-SQL)
적용 대상: SQL Server Azure SQL Managed Instance
게시자에서 하나 이상의 게시에 속하는 구독에 대한 현재 상태 정보를 반환하고 반환된 각 구독에 대해 하나의 행을 반환합니다. 복제 모니터링에 사용되는 이 저장 프로시저는 배포 데이터베이스의 배포자에서 실행됩니다.
구문
sp_replmonitorhelpsubscription
[ [ @publisher = ] N'publisher' ]
[ , [ @publisher_db = ] N'publisher_db' ]
[ , [ @publication = ] N'publication' ]
[ , [ @publication_type = ] publication_type ]
[ , [ @mode = ] mode ]
[ , [ @topnum = ] topnum ]
[ , [ @exclude_anonymous = ] exclude_anonymous ]
[ , [ @refreshpolicy = ] refreshpolicy ]
[ ; ]
인수
[ @publisher = ] N'publisher'
모니터링 중인 게시자의 이름입니다. @publisher sysname이며 기본값은 .입니다NULL
. null이면 배포자를 사용하는 모든 게시자에 대한 정보가 반환됩니다.
[ @publisher_db = ] N'publisher_db'
게시된 데이터베이스의 이름입니다. @publisher_db sysname이며 기본값은 .입니다NULL
. 이면 NULL
게시자에서 게시된 모든 데이터베이스에 대한 정보가 반환됩니다.
[ @publication = ] N'publication'
모니터링되는 게시의 이름입니다. @publication sysname이며 기본값은 .입니다NULL
.
[ @publication_type = ] publication_type
발행물의 형식인 경우 @publication_type int이며 이러한 값 중 하나일 수 있습니다.
값 | 설명 |
---|---|
0 |
트랜잭션 게시입니다. |
1 |
스냅샷 게시. |
2 |
병합 게시 |
NULL (기본값) |
복제에서 게시 유형을 확인하려고 합니다. |
[ @mode = ] 모드
구독 모니터링 정보를 반환할 때 사용할 필터링 모드입니다. @mode int이며 이러한 값 중 하나일 수 있습니다.
값 | 설명 |
---|---|
0 (기본값) |
모든 구독을 반환합니다. |
1 |
오류가 있는 구독만 반환합니다. |
2 |
임계값 메트릭 경고를 생성하는 구독만 반환합니다. |
3 |
오류가 있거나 임계값 메트릭 경고를 생성하는 구독만 반환합니다. |
4 |
최악의 성능의 상위 25개 구독을 반환합니다. |
5 |
성능이 가장 낮은 50개의 구독을 반환합니다. |
6 |
현재 동기화 중인 구독만 반환합니다. |
7 |
현재 동기화되지 않는 구독만 반환합니다. |
[ @topnum = ] topnum
결과 집합을 반환된 데이터의 맨 위에 있는 지정된 수의 구독으로만 제한합니다. @topnum 기본값NULL
인 int입니다.
[ @exclude_anonymous = ] exclude_anonymous
익명 끌어오기 구독이 결과 집합에서 제외되는 경우 @exclude_anonymous 비트이며 기본값은 .입니다0
.
- 값
1
은 익명 구독이 제외됨을 의미합니다. - 값
0
은 포함됨을 의미합니다.
[ @refreshpolicy = ] refreshpolicy
정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
결과 집합
열 이름 | 데이터 형식 | 설명 |
---|---|---|
status |
int | 게시와 연결된 모든 복제 에이전트의 상태를 검사하고 다음 순서로 발견된 가장 높은 상태를 반환합니다.6 = 실패5 = 다시 시도2 = 중지됨4 = 유휴 상태3 = 진행 중1 = 시작됨 |
warning |
int | 게시에 속한 구독에 의해 생성된 최대 임계값 경고입니다. 이 경고는 이러한 값 중 하나 이상의 논리적 OR 결과일 수 있습니다.1 = expiration - 트랜잭션 게시에 대한 구독이 보존 기간 임계값 내에서 동기화되지 않았습니다.2 = latency - 트랜잭션 게시자에서 구독자에 데이터를 복제하는 데 걸린 시간이 임계값(초)을 초과합니다.4 = mergeexpiration - 병합 게시에 대한 구독이 보존 기간 임계값 내에서 동기화되지 않았습니다.8 = mergefastrunduration - 병합 구독의 동기화를 완료하는 데 걸리는 시간이 빠른 네트워크 연결을 통해 임계값(초)을 초과합니다.16 = mergeslowrunduration - 병합 구독의 동기화를 완료하는 데 걸리는 시간이 느린 네트워크 연결을 통해 임계값(초)을 초과합니다.32 = mergefastrunspeed - 병합 구독을 동기화하는 동안 행의 배달 속도가 빠른 네트워크 연결을 통해 초당 행 단위로 임계값을 유지하지 못했습니다.64 = mergeslowrunspeed - 병합 구독을 동기화하는 동안 행 배달 속도가 느린 네트워크 연결을 통해 초당 행 단위로 임계값을 유지하지 못했습니다. |
subscriber |
sysname | 구독자의 이름입니다. |
subscriber_db |
sysname | 구독에 사용되는 데이터베이스의 이름입니다. |
publisher_db |
sysname | 게시 데이터베이스의 이름입니다. |
publication |
sysname | 발행물의 이름입니다. |
publication_type |
int | 게시 유형으로 다음 값 중 하나일 수 있습니다.0 = 트랜잭션 게시1 = 스냅샷 게시2 = 병합 게시 |
subtype |
int | 다음 값 중 하나일 수 있는 구독 유형입니다.0 = 푸시1 = 끌어오기2 = 익명 |
latency |
int | 트랜잭션 게시에 대한 로그 판독기 또는 배포 에이전트 전파된 데이터 변경에 대한 가장 높은 대기 시간(초)입니다. |
latencythreshold |
int | 위의 경고가 발생하는 트랜잭션 게시의 최대 대기 시간입니다. |
agentnotrunning |
int | 에이전트가 실행되지 않은 시간(시간)입니다. |
agentnotrunningthreshold |
int | 경고가 발생하기 전에 에이전트가 실행되지 않은 시간(시간)입니다. |
timetoexpiration |
int | 동기화되지 않은 경우 구독이 만료되기 전의 시간(시간)입니다. |
expirationthreshold |
int | 구독이 만료되기 전 경고가 발생하는 시간(시간)입니다. |
last_distsync |
날짜/시간 | 배포 에이전트 마지막으로 실행한 날짜/시간입니다. |
distribution_agentname |
sysname | 트랜잭션 게시에 대한 구독에 대한 배포 에이전트 작업의 이름입니다. |
mergeagentname |
sysname | 병합 게시에 대한 구독에 대한 병합 에이전트 작업의 이름입니다. |
mergesubscriptionfriendlyname |
sysname | 구독에 지정된 이름입니다. |
mergeagentlocation |
sysname | 병합 에이전트 실행되는 서버의 이름입니다. |
mergeconnectiontype |
int | 다음 값 중 하나일 수 있는 병합 게시에 구독을 동기화할 때 사용되는 연결입니다.1 = LAN(로컬 영역 네트워크)2 = 전화 접속 네트워크 연결3 = 웹 동기화. |
mergePerformance |
int | 구독에 대한 모든 동기화 성능과 비교한 최근 동기화의 성능입니다. 최근 동기화의 배달 속도를 이전의 모든 배달 속도 평균으로 나눈 값을 기반으로 합니다. |
mergerunspeed |
float | 구독에 대한 마지막 동기화의 배달 속도입니다. |
mergerunduration |
int | 구독의 마지막 동기화를 완료하는 데 걸리는 시간입니다. |
monitorranking |
int | 결과 집합에서 구독을 정렬하는 데 사용되는 순위 값이며 다음 값 중 하나일 수 있습니다. 트랜잭션 게시의 경우: 60 = 오류56 = 경고: 성능 위험52 = 경고: 곧 만료되거나 만료됨50 = 경고: 초기화되지 않은 구독40 = 실패한 명령 다시 시도30 = 실행되지 않음(성공)20 = 실행 중(시작, 실행 또는 유휴)병합 게시인 경우 60 = 오류56 = 경고: 성능 위험54 = 경고: 장기 실행 병합52 = 경고: 곧 만료됨50 = 경고: 초기화되지 않은 구독40 = 실패한 명령 다시 시도30 = 실행 중(시작, 실행 또는 유휴)20 = 실행되지 않음(성공) |
distributionagentjobid |
binary(16) | 트랜잭션 게시 구독에 대한 배포 에이전트 작업의 ID입니다. |
mergeagentjobid |
binary(16) | 병합 게시에 대한 구독에 대한 병합 에이전트 작업의 ID입니다. |
distributionagentid |
int | 구독에 대한 배포 에이전트 작업의 ID입니다. |
distributionagentprofileid |
int | 배포 에이전트 사용하는 에이전트 프로필의 ID입니다. |
mergeagentid |
int | 구독에 대한 병합 에이전트 작업의 ID입니다. |
mergeagentprofileid |
int | 병합 에이전트에서 사용하는 에이전트 프로필의 ID입니다. |
반환 코드 값
0
(성공) 또는 1
(실패).
설명
sp_replmonitorhelpsubscription
는 모든 유형의 복제와 함께 사용됩니다.
sp_replmonitorhelpsubscription
는 값에 따라 결정되는 구독 상태의 심각도에 따라 결과 집합을 monitorranking
정렬합니다. 예를 들어 오류 상태의 모든 구독에 대한 행은 경고 상태의 구독에 대한 행 위에 정렬됩니다.
사용 권한
배포 데이터베이스에서 db_owner 또는 replmonitor 고정 데이터베이스 역할의 멤버만 실행할 sp_replmonitorhelpsubscription
수 있습니다.