sp_replmonitorhelpsubscription(Transact-SQL)

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

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

sp_replmonitorhelpsubscription [ @publisher = ] 'publisher'
    [ , [ @publisher_db = ] 'publisher_db' ]
    [ , [ @publication = ] 'publication' ]
    [ , [ @publication_type = ] publication_type ] 
    [ , [ @mode = ] mode ]
    [ , [ @topnum = ] topnum ] 
    [ , [ @exclude_anonymous = ] exclude_anonymous ] 
    [ , [ @refreshpolicy = ] refreshpolicy ]

인수

  • [ @publisher = ] 'publisher'
    상태를 모니터링할 게시자의 이름입니다. publisher는 sysname이며 기본값은 NULL입니다. NULL인 경우 배포자를 사용하는 모든 게시자에 대한 정보가 반환됩니다.

  • [ @publisher_db = ] 'publisher_db'
    게시된 데이터베이스의 이름입니다. publisher_db는 sysname이며 기본값은 NULL입니다. NULL인 경우 게시자에 게시된 모든 데이터베이스에 대한 정보가 반환됩니다.

  • [ @publication = ] 'publication'
    모니터링할 게시의 이름입니다. publication은 sysname이며 기본값은 NULL입니다.

  • [ @publication_type = ] publication_type
    게시의 유형입니다. publication_type는 int이며 다음 값 중 하나일 수 있습니다.

    설명

    0

    트랜잭션 게시

    1

    스냅숏 게시

    2

    병합 게시

    NULL(기본값)

    복제에서 게시 유형을 확인하려고 합니다.

  • [ @mode = ] mode
    구독 모니터링 정보를 반환할 때 사용하는 필터링 모드입니다. mode는 int이며 다음 값 중 하나일 수 있습니다.

    설명

    0(기본값)

    모든 구독을 반환합니다.

    1

    오류가 있는 구독만 반환합니다.

    2

    생성된 임계값 메트릭 경고가 있는 구독만 반환합니다.

    3

    오류 또는 생성된 임계값 메트릭 경고가 있는 구독만 반환합니다.

    4

    가장 성능이 떨어지는 25개의 구독을 반환합니다.

    5

    가장 성능이 떨어지는 50개의 구독을 반환합니다.

    6

    현재 동기화 중인 구독만 반환합니다.

    7

    현재 동기화 중이 아닌 구독만 반환합니다.

  • [ @topnum = ] topnum
    반환된 데이터의 가장 위에서부터 지정한 수의 구독으로 결과 집합을 제한합니다. topnum은 int이며 기본값은 없습니다.

  • [ @exclude_anonymous = ] exclude_anonymous
    결과 집합에서 익명 끌어오기 구독을 제외할지 여부입니다. exclude_anonymous는 bit이며 기본값은 0입니다. 값 1은 익명 구독 제외를 의미하고 값 0은 익명 구독 포함을 의미합니다.

  • [ @refreshpolicy= ] refreshpolicy
    내부적으로만 사용됩니다.

결과 집합

열 이름

데이터 형식

설명

상태

int

게시와 연결된 모든 복제 에이전트의 상태를 검사하고 다음 순서로 발견된 가장 높은 상태를 반환합니다.

6 = 실패

5 = 다시 시도 중

2 = 중지됨

4 = 유휴 상태

3 = 진행 중

1 = 시작됨

경고

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

datetime

배포 에이전트가 마지막으로 실행된 날짜/시간입니다.

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을 실행할 수 있습니다.

참고 항목

개념

프로그래밍 방식으로 복제 모니터링