다음을 통해 공유


sp_replmonitorhelpsubscription(Transact-SQL)

적용 대상: SQL Server Azure SQL Managed Instance

게시자에서 하나 이상의 게시에 속하는 구독에 대한 현재 상태 정보를 반환하고 반환된 각 구독에 대해 하나의 행을 반환합니다. 복제 모니터링에 사용되는 이 저장 프로시저는 배포 데이터베이스의 배포자에서 실행됩니다.

Transact-SQL 구문 표기 규칙

구문

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수 있습니다.